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

请问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))
)
;(command "line" (list 0 0) (list 0.1 0.1) "")
(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))
)
[b]我想在这里加上加上一行代码,如想cad界面里一样聚焦ss选集,这样调用下面(c:yx_sl)程序时,
我就可以不用在cad界面里另外选图元了[/b]
(c:yx_sl);该程序需要选择样条曲线
(setvar "cmdecho" 1)
(prin1)
)
这样整个程序我只要框选一次选集就可以了,不要在(c:yx_sl)调用时再选择选集
求助,谢谢

如果你能得到 (yx_sl)这个程式的源代码,就把它Copy一份到你的程式后面,改个名字,直接在你的程式中调用...追问

就是没有源代码啊,因为这个命令是燕秀工具箱里面的命令啊
有别的方法吗?

追答

命令行键入命令:flatten,按提示选择你要转换的样条曲线即可。
注意:flatten命令是Express扩展工具包中的命令,使用前先确认你已经安装了这个扩展工具。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答