Cad船长 发表于 2018-5-5 20:10:30

CAD直接输入命令和用command运行命令,可选参数不一样是怎么回事



   在弄一个画云线的lisp,CAD2016版更新了画云线命令 revcloud ,可以框一个矩形范围出来画上云线很方便 ,我本来想实现,运行自己的程序会自动切换到云线图层上,然后执行画云线命令,用R参数改为矩形框选画云线,画完再自动切换回当前图层。
结果发现,直接输入命令 revcloud 有R参数可以改为矩形画,但是 用lisp(command "revcloud" ) 执行命令,却没有这个参数,参数无效.
难道是直接输入命令 和 command 调用的命令在CAD底层是两套不同的程序,桌子公司更新命令功能参数时只更新了直接输入命令的那一套程序,command 调用的命令还是跟老版的一样没做更新?
如果是这样,如何才能实现,lisp如何模拟在命令栏输入命令后的效果?暂时不考虑参数问题,只需要实现lisp里直接调用或模拟在命令栏输入某个命令并运行即可.



命令: _revcloud
最小弧长: 200.0000   最大弧长: 200.0000   样式: 普通   类型: 徒手画
指定第一个点或 [弧长(A)/对象(O)/矩形(R)/多边形(P)/徒手画(F)/样式(S)/修改(M)] <对象>: R


命令: (command "revcloud" )
最小弧长: 200.0000   最大弧长: 200.0000   样式: 普通   类型: 徒手画nil
指定起点或 [弧长(A)/对象(O)/样式(S)] <对象>:




(defun c:cloud()
(setq old_lay(getvar "clayer"))   ;[保存当前图层]
(setvar "clayer" "Cloud Mark")

(command "revcloud" )
(while (= 1 (getvar "cmdactive"))
(command pause)
   )

(setvar "clayer" old_lay); [恢复当前图层]   
(princ)
)




张大锤 发表于 2018-5-7 14:43:40

可以试一试
(command "_revcloud" )

我的CAD是可以没问题的 希望能帮到你

Cad船长 发表于 2018-5-8 19:54:11

张大锤 发表于 2018-5-7 14:43
可以试一试
(command "_revcloud" )



---------------------------------------------------------
命令: (command "_revcloud" )
最小弧长: 300   最大弧长: 300   样式: 普通   类型: 徒手画nil
指定起点或 [弧长(A)/对象(O)/样式(S)] <对象>:
--------------------------------------------------------
命令: _revcloud
最小弧长: 300   最大弧长: 300   样式: 普通   类型: 徒手画
指定第一个点或 [弧长(A)/对象(O)/矩形(R)/多边形(P)/徒手画(F)/样式(S)/修改(M)] <对象>:
--------------------------------------------------------
CAD2016 X64 版实测还是不行,用command执行命令还是缺少矩形/多边形 这些参数选项
页: [1]
查看完整版本: CAD直接输入命令和用command运行命令,可选参数不一样是怎么回事