能不能直接在cad命令行输入命令执行
比如我 要删除整个图像里面的a1图层a2图层a3图层,包含这三个图层里所有的对象全部删除只知道lisp这样可以删除
[*](defunc:tt()
[*](setq s (ssget "x" '((8 . "BoltMark,Bolt*"))))
[*](command "erase"s "")
[*])
我现在想有没有办法直接在 cad的命令行 输入什么可以删除指定的图层和里面的对象。
命令:laydel kozmosovia 发表于 2024-7-29 00:03
'((8 . tc))要换成(list (cons 8 tc))
如果图层名是确定的,直接写死在代码里就可以,何必多此一举保存在 ...
(setq tc (vl-registry-read "HKEY_CURRENT_USER\\Software\\a" "sctc"))
(print tc)
;(setq s (ssget "x" '((8 . "BoltMark,Bolt*"))))
(setq s (ssget "x" ((list (cons 8tc))))
(command "erase"s "")
改成这样加载插件就提示输入的列表有缺陷。 现在我用了这样一个命令(defunc:cesctc()
(setq tc (vl-registry-read "HKEY_CURRENT_USER\\Software\\a" "tc"))
(print tc)
(setq s (ssget "x" '((8 . tc))))
(command "erase"s "")
)
执行命令之前先把要删除的图层放在注册表,再来执行命令,命令能正常取到注册表的内容,但是老是提示列表错误,我写了两个图层在注册表 是这样写的 0,bolt
cad里面能正常图区到这个内容,但是不会删除这两个图层,而是提示列表错误
选取其中一个对象,右键选择类似对象,然后erase
或者selectsimilar+erase 我是想直接在命令行输入
accoreconsole.exe accoreconsole.exe这个东西 第一次听说 '((8 . tc))要换成(list (cons 8 tc))
如果图层名是确定的,直接写死在代码里就可以,何必多此一举保存在注册表再读一次?
楼上正解:lol kozmosovia 发表于 2024-7-29 00:03
'((8 . tc))要换成(list (cons 8 tc))
如果图层名是确定的,直接写死在代码里就可以,何必多此一举保存在 ...
就是图层不固定
页:
[1]
2