在口齿不清的情况下帮助爆发
可以用我写的Lisp程序的语言给我指出正确的方向吗。由于对lisp还不熟悉,我看不出哪里出了错
下面的第一个很好用
(Defun C:girder1 (/ sel1)
(setq sel1 (ssget))
(sssetfirst sel1 sel1)
(command "explode" sel1)
(alert "1")
)
(command "layer" "freeze" "*" "" )(command "layer" "thaw" "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23" "" )
(alert "2")
(setq sel2 (ssget))
(alert "3")
(command "erase" sel2 "")
(alert "4")
(command "layer" "thaw" "*" "" )
)
下一个使流程更加流线型的方法在爆炸后失败了,我不明白为什么,因为到目前为止它与上面的方法相同
(Defun C:girder3 (/ sel1)
(setq sel1 (ssget))
(alert "1")
(command "explode" sel1))
(alert "2")
(command "-layer" "lock" "1,22" "")
(alert "3")
(command "erase" "p" "")
(alert "4")
(command "-layer" "unlock" "1,22" "")
(alert "5")
)
我的目标是取几个块分解它们,并删除块中除第1层和第22层之外的所有层上的项目。但我必须为其他dxf块保留层。基本上,我只是试图在我的一些dxf块上提取第1层和第22层的信息。
我只是添加了警报以查看它在哪里失败。
谢谢 您有:
(command "explode" sel1))
但这应该是:
(command "explode" sel1) 非常感谢Roy
我已经完成了代码,一切都很好。我必须将QAFLAGS变量设置为1,以使lisp例程能够同时分解多个块。然后在最后重置它。QAFLAGS似乎没有很好的记录。有人了解这个变量吗
现在,我只需点击几下,就可以选择几个块,分解并删除除1和22之外的所有层中的所有信息。快乐的日子
页:
[1]