求写一个删除指定图层的图元的程序,希望大家帮减轻负担。
本帖最后由 ninja37 于 2020-11-8 20:31 编辑求写一个删除指定图层的图元的程序,希望大家帮减轻负担。也不是想不劳而获,年纪也不小了,脑子也不太灵活 ,只能看懂最简单的程序。能用用就不错了。
1,要求输入命令,建立一个选择集,选择框选删除掉autocut这个图层的所有图元。
2 ,不考虑当前图层 ,但是autocu图层一定要是打开的 ,最好是图层全开的。否则看不到这个图层的图元也没法删除
3 ,最好是有判断的程序如果当前图档没有autocut层 会生成一个.
4,要框选删除而不是删除整个autocut层的图元,直接用erase命令的框选就可以了原生的命令好用不需要指定first point ,secong poing之类的两个点。
这样的程序对大家来说很简单的对我来说有难度希望大家帮帮忙。
本帖最后由 xj6019 于 2020-11-8 21:14 编辑
(defun c:TT()
(setvar "CMDECHO" 0)
(setq old_lay (getvar "clayer"))
(command "layer" "u" "*" "")
(command "layer" "on" "*" "")
(if (not (tblsearch "layer" "autocut"))
(command "-layer" "m" "autocut" "c" "3" "" ""))
(setvar "clayer" "0")
(command "_.erase" (ssget ":s"'((8 . "autocut"))) "")
(setvar "clayer" old_lay)
(setvar "CMDECHO" 1)
) (defun c:et (/ e)
(if (not (tblsearch "layer" "autocut"))
(entmake (list '(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
'(70 . 0)
'(290 . 1)
(cons 2 "autocut")
)
)
)
(command "openalllayer")
(setq e (ssget ":L" '((8 . "autocut"))))
(command "erase" e "")
(princ)
) 直接发码就变成论坛表情了,试试这个
xj6019 发表于 2020-11-8 21:08
(defun c:TT()
(setvar "CMDECHO" 0)
(setq old_lay (getvar "clayer"))
已经在用了,谢谢,程序很好用 Yruz 发表于 2020-11-8 21:08
直接发码就变成论坛表情了,试试这个
你好 谢谢你帮忙写程序。这个程序能用,只是在cad2004下面会显示这几个字e123aopenalllayer [未知命令openalllayer] ninja37 发表于 2020-11-11 12:44
你好 谢谢你帮忙写程序。这个程序能用,只是在cad2004下面会显示这几个字e123aopenalllayer [未知命 ...
04还没有 (command "openalllayer")
等效(command "layer" "on" "*" "")即可 Yruz 发表于 2020-11-11 14:48
04还没有 (command "openalllayer")
等效(command "layer" "on" "*" "")即可
谢谢 现在也可以用力,谢谢了 厉害厉害,, 留个脚印,看看学习一下。谢谢
页:
[1]
2