找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: abc498091367

[求助] 加帮忙修改一下代码,非常感谢

[复制链接]

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-19 08:36:55 | 显示全部楼层
麻烦高人看看下面代码哪里不对,其实运行不会错,就是有时输出的圆坐标变行...一般不会哦而会。

(defun c:cnc()
(setvar "CMDECHO" 0)
(princ "\n请选要输出的圆[提示:不要的层最好关闭]")
(if (and (setq n (getint "\n<1=默认大小>,2=手动输入: "))
            (setq ss (ssget '((0 . "CIRCLE"))))) (progn
  (command ".UNDO" "BE")
  (setq i -1  cirlst (list))
  (repeat (sslength ss)
   (setq r (cdr (assoc 40 (entget (setq en (ssname ss (setq i (1+ i))))))))
   (if (assoc r cirlst)
(setq cirlst (subst (cons r (1+ (cdr (assoc r cirlst)))) (assoc r cirlst) cirlst))
    (setq cirlst (cons (cons r 1) cirlst))
   )
  )
  (setq i -1 cirlst (reverse cirlst) cclist (list))
  (setq cirlst (vl-sort cirlst (function (lambda (e1 e2) (> (car e1) (car e2))))))
  (repeat (length cirlst)
   (setq r (car (nth (setq i (1+ i)) cirlst)))
   (command "select" ss "")
   (setq ss1 (ssget "P" (list (cons 0 "CIRCLE") (cons 40 r))))
   (if (/= n 2) (progn
   (setq r1 (getdist (strcat "\n输入新直径<" (rtos (+ r r) 2 2) "> :")))
   (setq r (if r1 (* r1 0.5) r))
   ))
   (setq j 0 clist (list r))
   (repeat (sslength ss1)
    (setq ent (entget(ssname ss1 j)))
    (setq j (1+ j))
    (setq pc (cdr(assoc 10 ent)))
    (setq clist (append clist (list (list (car pc) (cadr pc)))))
   )
   (setq cclist (cons clist cclist))
  )
  (setq nm (if nm nm ""))
  (if (setq nm (getfiled "输出钻孔文件的目录" nm "rot" 1)) (progn
   (setq fp (open nm "w"))
   (princ "M48\nMETRIC,LZ\nVER,1\nFMAT,2\n" fp)
   (repeat (setq i (length cclist))
    (setq r (car(nth (setq i (1- i)) cclist)))
    (princ (strcat "T" (if (< i 10) "0" "") (itoa i) "C" (rtos (+ r r) 2 3) "F42B423S6H2000\n") fp)
   )
   (princ "DETECT,ON\nATC,ON\n%\n" fp)
   (repeat (setq i (length cclist))
    (setq clist (nth (setq i (1- i)) cclist))
    (princ (strcat "T" (if (< i 10) "0" "") (itoa i) "\n") fp)
    (setq j 0 clist (cdr clist))
    (repeat (length clist)
     (setq pc (nth j clist) j (1+ j))
     (princ (strcat "X" (rtos (car pc) 2 3) "Y" (rtos (cadr pc) 2 3) "\n") fp)
    )
   )
   (princ "M30\n" fp)
   (close fp)
  ))
  (command ".UNDO" "E")
))
(setvar "CMDECHO" 1)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-8-19 08:41:44 来自手机 | 显示全部楼层
你把变行的结果贴上来才好查

点评

DWG文件,我也上传了,图片也可以看出  详情 回复 发表于 2014-8-19 08:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-19 08:52:53 | 显示全部楼层
csharp 发表于 2014-8-19 08:41
你把变行的结果贴上来才好查


DWG文件,我也上传了,图片也可以看出


QQ图片20140819084704.jpg QQ图片20140819084629.jpg
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:1111.zip 
下载次数:2  文件大小:77.65 KB 
下载权限: 不限 以上  [免费赚D豆]

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:1111.zip 
下载次数:2  文件大小:77.65 KB 
下载权限: 不限 以上  [免费赚D豆]


请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:1111.zip 
下载次数:2  文件大小:77.65 KB 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-8-19 09:14:16 来自手机 | 显示全部楼层
转出的文件呢

点评

右键可以记事本查看,可以看到坐标位置。  详情 回复 发表于 2014-8-19 09:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-19 09:31:44 | 显示全部楼层

右键可以记事本查看,可以看到坐标位置。
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:zz.zip 
下载次数:5  文件大小:391 Bytes 
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-8-19 09:37:57 来自手机 | 显示全部楼层
这个写一个grid对话框,显示半径、数量,原半径后面增加一列用来修改输出半径会更方便

点评

开始显示这些 M48 METRIC,LZ VER,1 FMAT,2 T01C0.3F42B423S6H2000 T02C0.5F42B423S6H2000 T03C1.5F42B423S6H2000 T04C1.78F42B423S6H2000 T05C6F42B423S6H2000 T06C6.2F42B423S6H2000 DETECT,ON ATC,ON  详情 回复 发表于 2014-8-19 09:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-19 09:50:43 | 显示全部楼层
本帖最后由 abc498091367 于 2014-8-19 09:52 编辑
csharp 发表于 2014-8-19 09:37
这个写一个grid对话框,显示半径、数量,原半径后面增加一列用来修改输出半径会更方便

开始显示这些
M48
METRIC,LZ
VER,1
FMAT,2
T01C0.3F42B423S6H2000
T02C0.5F42B423S6H2000
T03C1.5F42B423S6H2000
T04C1.78F42B423S6H2000
T05C6F42B423S6H2000
T06C6.2F42B423S6H2000
DETECT,ON
ATC,ON
%

是机器加工要求的基本数据,T01C,T02C这些是加工的刀具大小和序号。

T01
X82Y-39.244
X-82Y77
X82Y77
T02
X-60.7Y40.884
X-50.092Y50.547
X45.205Y-48.985
T03

这些是加工刀具对应序号的圆坐标.还有个数:X...Y...                                                                       x...y....



这程序输出的坐标是拿来机器加工的。
如果按你的方法可以用对话框来显示那肯定最好,但是这些都不重要;需要的就是输出G代码,机器要加工。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-8-19 10:19:24 来自手机 | 显示全部楼层
对外行来说理解了这些格式才能写好代码

点评

恩,所以需要时间,现在程序可以运行,就是有时输出的时候变形,让人很头痛. 还得麻烦高人们帮下忙,不然输出出去变形,加工出来就报废。  详情 回复 发表于 2014-8-19 10:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-19 10:46:22 | 显示全部楼层
csharp 发表于 2014-8-19 10:19
对外行来说理解了这些格式才能写好代码

恩,所以需要时间,现在程序可以运行,就是有时输出的时候变形,让人很头痛.


还得麻烦高人们帮下忙,不然输出出去变形,加工出来就报废。

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-19 22:55:14 | 显示全部楼层
今天又报废了,请高人帮忙
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10246个

财富等级: 富甲天下

发表于 2014-8-20 08:05:38 | 显示全部楼层
abc498091367 发表于 2014-8-19 22:55
今天又报废了,请高人帮忙

可能组码210为(210 -1 0 0)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-20 09:37:15 | 显示全部楼层
zxq0220 发表于 2014-8-20 08:05
可能组码210为(210 -1 0 0)

什么位置?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10246个

财富等级: 富甲天下

发表于 2014-8-20 20:08:16 | 显示全部楼层

在每组实体组码的尾部。因这个组码使得X坐标为负值。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 60个

财富等级: 招财进宝

 楼主| 发表于 2014-8-20 22:04:59 | 显示全部楼层
zxq0220 发表于 2014-8-20 20:08
在每组实体组码的尾部。因这个组码使得X坐标为负值。

是在代码上修改吗?能帮我改下吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-8-21 00:20:19 | 显示全部楼层
本帖最后由 st788796 于 2014-8-21 00:22 编辑

加个 ODCL 对话框就是这样,没有写输出部分

1 输出半径可以点击修改
2 输出半径列标题点击会按由大到小或由小到大重新排序

  1. (defun c:tt (/ ss lst str $row $col tf GetGridRadius)
  2.   (defun GetGridRadius (/ nl)
  3.     (repeat (dcl_grid_getrowcount circleout_form1_grid)
  4.       (setq
  5.         nl (cons (list (dcl_grid_getcelltext circleout_form1_grid 0 1)
  6.                        (dcl_grid_getcelltext circleout_form1_grid 0 2)
  7.                  )
  8.                  nl
  9.            )
  10.       )
  11.     )
  12.   )
  13.   (defun c:circleout_Form1_OnCancel (/)
  14.     (dcl_form_close circleout_form1)
  15.     (princ)
  16.   )
  17.   (defun c:circleout_Form1_Cancel_OnClicked (/)
  18.     (dcl_form_close circleout_form1)
  19.     (princ)
  20.   )
  21.   (defun c:circleout_Form1_Ok_OnClicked        (/ nd)
  22.     (setq nd (GetGridRadius))
  23.     (dcl_form_close circleout_form1)
  24.     ;;
  25.     (princ)
  26.   )
  27.   (defun c:circleout_Form1_Grid_OnColumnClick (Column / i)
  28.     (dcl_control_settext circleout_form1_textbox1 "")
  29.     (dcl_control_setvisible circleout_form1_textbox1 nil)
  30.     (if        (= column 2)
  31.       (progn
  32.         (setq i 0)
  33.         (dcl_Grid_SortTextCells
  34.           circleout_form1_grid
  35.           2
  36.           (setq tf (not tf))
  37.         )
  38.         (princ (dcl_grid_getrowcount circleout_form1_grid))
  39.         (repeat        (dcl_grid_getcolumncount circleout_form1_grid)
  40.           (dcl_grid_setcelltext
  41.             circleout_form1_grid
  42.             i
  43.             0
  44.             (itoa (1+ i))
  45.           )
  46.           (setq i (1+ i))
  47.         )
  48.       )
  49.     )
  50.   )
  51.   (defun c:circleout_Form1_TextBox1_OnEditChanged (NewValue /)
  52.     (dcl_grid_setcelltext
  53.       circleout_form1_grid
  54.       $row
  55.       $col
  56.       newvalue
  57.     )
  58.     (princ)
  59.   )
  60.   (defun c:circleout_Form1_Grid_OnSelChanged (row column /)
  61.     (setq $row row
  62.           $col column
  63.           rw   (+ (car (dcl_control_getpos circleout_form1_grid))
  64.                   (dcl_Grid_GetColumnWidth circleout_form1_grid 0)
  65.                   (dcl_grid_getcolumnwidth circleout_form1_grid 1)
  66.                )
  67.     )
  68.     (if        (= column 2)
  69.       (progn
  70.         (dcl_control_setpos
  71.           circleout_form1_textbox1
  72.           rw
  73.           (+ (cadr (dcl_control_getpos circleout_form1_grid))
  74.              (* (1+ row) 24)
  75.           )
  76.         )
  77.         (dcl_control_setvisible circleout_form1_textbox1 t)
  78.         (dcl_control_setwidth
  79.           circleout_form1_textbox1
  80.           (dcl_grid_getcolumnwidth circleout_form1_grid 2)
  81.         )
  82.         (dcl_control_settext
  83.           circleout_form1_textbox1
  84.           (dcl_grid_getcelltext circleout_form1_grid row column)
  85.         )
  86.         (dcl_Control_SetFocus circleout_Form1_TextBox1)
  87.         (dcl_TextBox_SetSel circleout_Form1_TextBox1 0 -1)
  88.       )
  89.       (progn
  90.         (dcl_control_settext circleout_form1_textbox1 "")
  91.         (dcl_control_setvisible circleout_form1_textbox1 nil)
  92.       )
  93.     )
  94.     (princ)
  95.   )
  96.   (defun c:circleout_Form1_OnInitialize        (/ i)
  97.     (setq i 1)
  98.     (foreach x lst
  99.       (dcl_grid_addrow
  100.         circleout_form1_grid
  101.         (itoa i)
  102.         (vl-princ-to-string (car x))
  103.         (vl-princ-to-string (cadr x))
  104.         (itoa (length (cdr x)))
  105.       )
  106.       (setq i (1+ i))
  107.     )
  108.     (princ)
  109.   )
  110.   (if (setq ss (ssget '((0 . "CIRCLE"))))
  111.     (progn
  112.       (setq lst        (mapcar        '(lambda (x)
  113.                            (list (xdrx_getpropertyvalue x "Radius")
  114.                                  x
  115.                            )
  116.                          )
  117.                         (xdrx_pickset->ents ss)
  118.                 )
  119.             lst        (vl-sort (XD::List:GroupByIndex lst 1e-6)
  120.                          '(lambda (x1 x2) (< (car x1) (car x2)))
  121.                 )
  122.             tf        t
  123.             lst        (mapcar '(lambda (x) (cons (car x) x)) lst)
  124.             str        '("YWt6AyETAADCBRMzBuKTKTUSMh9qQE3YreFoK/om9jk7/azYuyo6OkOcLytdX4/mTk3bhGyP5qaq"
  125.                   "PNwmSlxvv7T88wnCHDdc0iYnN8Kh9Gucrw+wQU2JwYEpRK3sXA/tgaCBxZmiDbCB4Q3ABRGBBgXi"
  126.                   "7N0J5hQXTfvX4NyqOiUXdQf2ljBILxHA9DS/alTZZPSuJOSy3eb0ZtGtxva0hiI920J1jkLeGS3X"
  127.                   "+tjOEHOhVxnDHEghtAnLtcYmcs7NbKjgtKlM6GjPAPoLvaQcV91M4PfBLGAcLxI6hhD6D3fh3QLZ"
  128.                   "+sxWOfI0ukdsk24sYIwsjB4vqCIgqhgUHiML7Ywt7Nr0JDRADGPUJ+WsuXXwKptlYp7nxBLOqMF2"
  129.                   "hmyedf7BZAFcLsVXpXcogvPI/ImH6SFxYxaDItMQJ4k3a2TFU2ypSYzZsswCJubYL7nC+LYSOPbU"
  130.                   "1u9UBvVlJ1m0JJTWG/2qSL6pBskzltqQ/wLF+/kZZL0CYMtS15smlIfC/QvroR2lgHzAHEioO07s"
  131.                   "L9Ci5Ps7nuW5YBXHFgAqfCAsMAQgRzUynukY5UE1BOR/hfLAMBnr72l0QHCXkH3Gr3RNyez8Svy5"
  132.                   "eOPuBOCxmI0ELJmfRyknVDeBvjrRFEUPC27KMX5gkgQkuGz9CfTLFP2NOgBh4MF/OwNyCJNLapVm"
  133.                   "jsmmnhyPyW6SU3widwZ/HhLwz27R1SdI98GrLjJH/mFYtDbOURe9Q6pNJWD5PUM2Du9dEfEFJakC"
  134.                   "crQLPw4pNnQs5ERHiRD0oKDR0CZPahqsQtfcMMsMbRUQG+ey2++8KjmUF+QmYdvvwd4/EEdglEdz"
  135.                   "kiqAusihP4Cm6DGZbw9zq2kMbTQ9NIswkG3GcA79LXXgcczAWO4ResJwgst+IHAGcZ4D/ol8sM2O"
  136.                   "ltCZQ9bH3PxHPdYCQ13Yxyue27OX7noQSdWqa4NoKIO4B1NbDn9CgbCS3OJKg4icNyE/be4Awyss"
  137.                   "9xfWyXQ2vBHlFvJjINewvKWEYp6QrNX1MPm0DTbeULyqIX9QvCI8QV6yMHYO1rlYvm+KZXauqyVE"
  138.                   "oFBunDK/x6MHDalHuu1cZSMEJ46YQH3bBnSOF75ZBca/zz8F1CuEd5SuVACV9ZKpJJgQztufERbn"
  139.                   "iRrJsl/MJRh7g41TTVTt6A/ZiAGVCs0Luh0BP03OC6pMoLtmkYRSoI3mgpGfANilwQBoULJa2ZZN"
  140.                   "76lH4jOH2//JjKGI02wzjdMMeg5xASvWZI7p+HBZf8trgYKhQKOx5dit0CyZfh0xdkAdVMMUgsg3"
  141.                   "In+OrXerFIcGJvn1BB0aLRHgLpd63rxcvp2+gAu+UJTAXAZaLpk6XYGqgnnWw2Kck/qky6I7k1Xs"
  142.                   "qZHYL/HC"
  143.                  )
  144.       )
  145.       (dcl_project_import str)
  146.       (dcl_form_show circleout_form1)
  147.     )
  148.     (princ)
  149.   )
  150. )

20140821001856.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 20:34 , Processed in 0.249521 second(s), 65 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表