eechenchun 发表于 2024-7-28 22:31:26

能不能直接在cad命令行输入命令执行

比如我 要删除整个图像里面的a1图层a2图层a3图层,包含这三个图层里所有的对象全部删除

只知道lisp这样可以删除

[*](defunc:tt()
[*](setq s (ssget "x" '((8 . "BoltMark,Bolt*"))))
[*](command "erase"s "")
[*])

我现在想有没有办法直接在 cad的命令行 输入什么可以删除指定的图层和里面的对象。

e2002 发表于 2024-7-29 11:45:07

命令:laydel

eechenchun 发表于 2024-7-29 12:43:59

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 "")
改成这样加载插件就提示输入的列表有缺陷。

eechenchun 发表于 2024-7-28 23:16:28

现在我用了这样一个命令(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里面能正常图区到这个内容,但是不会删除这两个图层,而是提示列表错误

kozmosovia 发表于 2024-7-28 22:52:27

选取其中一个对象,右键选择类似对象,然后erase
或者selectsimilar+erase

eechenchun 发表于 2024-7-28 22:59:04

我是想直接在命令行输入

自贡黄明儒 发表于 2024-7-28 23:05:37

accoreconsole.exe

eechenchun 发表于 2024-7-28 23:13:26

accoreconsole.exe这个东西 第一次听说

kozmosovia 发表于 2024-7-29 00:03:02

'((8 . tc))要换成(list (cons 8 tc))
如果图层名是确定的,直接写死在代码里就可以,何必多此一举保存在注册表再读一次?

MZ_li 发表于 2024-7-29 09:11:41

楼上正解:lol

eechenchun 发表于 2024-7-29 12:29:09

kozmosovia 发表于 2024-7-29 00:03
'((8 . tc))要换成(list (cons 8 tc))
如果图层名是确定的,直接写死在代码里就可以,何必多此一举保存在 ...

就是图层不固定
页: [1] 2
查看完整版本: 能不能直接在cad命令行输入命令执行