JohnM 发表于 2022-7-6 07:55:32

2012年第一期ssget

任何人对autocad 2012上的ssget“i”有疑问
它将返回选择集,但当我使用命令函数跟随它时,命令函数会给我一个错误,例如命令结构错误。
它在2004年和2006年工作
 
例子:
 


(defun c:test ()


(setq ss (ssget "i"))


(command "move" "previous" "")


)

 
我出错了
命令:测试
需要点或选项关键字。
; 错误:功能已取消
当它需要一个基点时。
 
如果我删除ssget,它可以正常工作。

MSasu 发表于 2022-7-6 08:13:28

也许 吧:
(defun c:test1 ()
(if (ssget "_I")
(command "_MOVE" pause pause)
)
)

JohnM 发表于 2022-7-6 08:30:40

谢谢你的回复
不管我做什么,“ssget”i都会导致任何编辑命令出现问题。移动复制更改旋转
所有这些命令都要求选择一个对象
这就是我在命令中使用前一个选项的原因。这就是它出错的地方。
我使用ssget i隐含选择(PICKFIRST生效时选择的对象
验证用户是否在屏幕上选择了某些内容
然后运行命令。
 
在x层上画几条线,让程序将层更改为0层
你画线
然后选择线条
然后运行程序
 
这是可行的。它查找上一个集合
这不起作用
我得到这个错误:
需要点或选项关键字。
; 错误:功能已取消

pBe 发表于 2022-7-6 08:37:07

4

MSasu 发表于 2022-7-6 08:53:44

如果在调用例程时有一个隐含的选择,那么这将影响命令调用的行为;在我之前的示例中,您似乎没有注意到这一点。
5

JohnM 发表于 2022-7-6 08:55:53

谢谢你的回复。
我只是将程序改为使用visual lisp函数,并去掉了命令函数。
现在一切正常
谢谢
JMH公司
页: [1]
查看完整版本: 2012年第一期ssget