dnovember99 发表于 2022-7-5 15:11:00

按列表删除图层

因此,我看到了很多不同的层删除lisp例程,我对所有这些仍然是如此陌生,我不知道该去哪里。我试图实现的是能够键入命令,并具有预先确定的图层名称列表,选择这些图层,删除该图层上的所有对象,然后清除图形。
 
原因是我们在一个程序风格的项目中与一个架构师合作,所有层通常都是相同的。
 
我们也有一个lisp,我们运行它来清理所有的绘图。也许这是我可以补充的东西?让我知道你的想法。或者,如果您认为可以对当前的lisp进行修改,使其更好。
 

(defun c:explodable () (load "explodable") (C:explodable) )   explodable
(defun c:XRU () (load "XRU") (C:XRU) )   XRU
(defun c:burstall () (load "burstall") (C:burstall) )   burstall
(defun c:ibase () (load "ibase") (C:ibase) )   ibase
(defun c:DeMask () (load "DeMask") (C:DeMask) )   DeMask

(defun c:clean0 ()
;    (getstring "\nClean0 Begin: tempoverrides set to 0")
(setvar "tempoverrides" 0)
;    (getstring "\nClean0 Begin: Pickstyle to 0")
(setvar "pickstyle" 0)
;    (getstring "\nClean0 Begin: UCS Reset to 0")
(Command "ucsfollow" "0")
;    (getstring "\nClean0 Begin: UCS set to World")
(Command "ucs" "w")
;    (getstring "\nClean0 Begin: INSBase subr")
(c:ibase)
;    (getstring "\nClean0 Begin: UCS Reset to 0")
(Command "ucsfollow" "0")
;    (getstring "\nClean0 Begin: UCS set to World")
(Command "ucs" "w")
;    (getstring "\nClean0 Begin: INSBase subr")
(c:ibase)
;    (getstring "\nClean0 Begin: PLAN")
(Command "PLAN" "w")
;    (getstring "\nClean0 Begin: angbase")
(Command "angbase" "0")
;    (getstring "\nClean0 Begin: snapang")
(Command "snapang" "0")
;    (getstring "\nClean0 Begin: ZoomExt")
(c:ze)
;    (getstring "\nClean0 Begin: s0")
(c:s0)
;    (getstring "\nClean0 Begin: Visretain Set to 1")
            (setvar "VISRETAIN" 1)
;    (getstring "\nClean0 Begin: Unload all xrefs")
(C:XRU)
;    (getstring "\nClean0 Begin: Thaw All")
(c:ta)
;    (getstring "\nClean0 Begin: Turn all on")
(c:ON)
;    (getstring "\nClean0 Begin: Make objects explodable")
(c:explodable)
;    (getstring "\nClean0 Begin: Burstall")
(c:burstall)
;    (getstring "\nClean0 Begin: ConstraintInfer set to 0")
(command "CONSTRAINTINFER" "0")
;    (getstring "\nClean0 Begin: Thaw all")
(c:ta)
;    (getstring "\nClean0 Begin: Turn all on")
(c:on)
;    (getstring "\nClean0 Begin: Zoom Ext")
(c:ze)
;    (getstring "\nClean0 Begin: Set Elev to 0")
(C:ELEV0)
;    (getstring "\nClean0 Begin: Select All")
(c:ai_selall)
;    (getstring "\nAll M Text to without Mask")
(c:DeMask)
;    (getstring "\nClean0 Begin: Change all Selected to Color by Layer")
(c:ccby)
;    (getstring "\nClean0 Begin: Create a group of points")
(setq ss (ssget "_x" '((0 . "point"))))
;    (getstring "\nClean0 Begin: Erase a group of points")
(Command "erase" "p" "")
;    (getstring "\nClean0 Begin: Create a group of wipeouts")
(setq ss (ssget "_x" '((0 . "wipeout"))))
;    (getstring "\nClean0 Begin: Erase a group of wipeouts")
(Command "erase" "p" "")
;    (getstring "\nClean0 Begin: Superpurge")
(c:purge3x)
;    (getstring "\nClean0 Begin: ZoomExt")
(c:ze)

)

BIGAL 发表于 2022-7-5 16:05:54

我用这层删除它有能力做你想做的看看这2条新的线
 
 

(setq lst (list "Outside" "inside" "left "right" "22"))
(fx-rm-layer lst)

删除图层。lsp

rlx 发表于 2022-7-5 16:33:40

唯一的缺点是你不能删除一些层时,他们已经感染了块。在这种情况下,您必须使用LAYMRG。
页: [1]
查看完整版本: 按列表删除图层