06czy 发表于 2012-5-12 11:59:29

请问autolisp程序里面调用(c:yx_sl)命令时需要选择图元,我可以集成到我的程序里面吗

本帖最后由 06czy 于 2012-5-12 12:02 编辑

请问autolisp程序里面调用(c:yx_sl)命令时需要选择图元,我可以集成到我的程序里面吗?以下是我编的多段线或直线转样条曲线的程序,
其中(c:yx_sl)是燕秀工具箱里样条曲线转圆弧的命令其中我真正的目的是想把碎线条转换成圆弧,
但是市场上没有这样的命令,只有燕秀工具箱里有样条曲线转圆弧的命令
所以我想借助该命令,先把碎线条转换成样条曲线,然后调用(c:yx_sl)达到我的目的。
(defun C:dza (/ )
(setvar "cmdecho" 0)
(setq s0 (entlast))(setq s (ssget));新建选集
(command "EXPLODE" s "");爆炸选集
(setq s1 (entnext s0) s2 s1 ss (ssadd) )
(while s2   
(setq ss (ssadd s2 ss))   
(setq s2 (entnext s2))    )
(setq s0 (entlast))
(if (= s1 nil)   
(command "PEDIT" "m" s "" "" "j" "" "")   
(progn (command "PEDIT" "m" ss "" "" "j" "" "")         
(command "PEDIT" "m" s "" "" "j" "" "")      )    )
(setq ss (ssadd) s1 (entnext s0)      ss (ssadd s1 ss) s2 (entnext s1))
(while s2   
(setq ss (ssadd s2 ss)      s2 (entnext s2))    )
(setq n0 (sslength ss) n1 (- n0 1) n 0)
(repeat n0   
(setq s1 (ssname ss n))   
(command "PEDIT" "m" s1 "" "s" "")   
(command "_splinedit" s1 "")   
(setq n (+ n 1))    )
我想在这里加上加上一行代码,就像cad界面里一样聚焦ss选集,这样调用下面(c:yx_sl)程序时,我就可以不用在cad界面里另外选图元了
(c:yx_sl);该程序需要选择样条曲线
(setvar "cmdecho" 1)(prin1)      )
这样整个程序我只要框选一次选集就可以了,不要在(c:yx_sl)调用时再选择选集求助,谢谢

Andyhon 发表于 2012-5-12 12:18:23

没用燕秀工具箱...
试试在(c:yx_sl)之前调用 sssetfirst

06czy 发表于 2012-5-12 12:30:15

谢谢,我试试,

chpmould 发表于 2012-12-18 18:41:21

这工具中有这样的功能,并且转换速度很快...

页: [1]
查看完整版本: 请问autolisp程序里面调用(c:yx_sl)命令时需要选择图元,我可以集成到我的程序里面吗