更改实体和块t
试图找到一个lisp例程,将现有设备更改为虚拟层和颜色,但希望保留线型。一些设备被堵塞,一些设备爆炸。希望选项选择或窗口周围的区域,并将其更改为选定的图层和颜色,但保留线型。
有人能提出一种干净的方法来更改块和实体吗? 对于非块,您可以使用下面的
(defun C:chCL(/ whc sset ent sellist color layer)
(defun FiltLayer(sset pst)
(setq whc 0 newSet(ssadd))
(while(< whc (sslength sset))
(setq ent(ssname sset whc))
(setq sellist(entget ent))
(if(= pst (cdr(assoc 8 sellist)))
(ssadd ent newSet)
)
(setq whc(+ whc 1))
)
newSet
)
(setvar "cmdecho" 0)
(setq color(acad_colordlg 1 nil))
(setq layer(getstring "\n Layer: "))
(setq sset
(ssget "X"
(list
(cons -4 "<OR")
(cons 0 "ARC")
(cons 0 "CIRCLE")
(cons 0 "ELLIPSE")
(cons 0 "LINE")
(cons 0 "LWPOLYLINE")
(cons 0 "POLYLINE")
(cons 0 "INSERT")
(cons -4 "OR>")
)
)
)
(if(and sset(> (sslength sset) 0))(setq sset(FiltLayer sset "LAYER NAME OF xploded BLOCKs")))
(if (and sset (> (sslength sset) 0))
(progn
(command "change" sset "" "Properties" "Color" color "")
(command "change" sset "" "Properties" "LAyer" layer "")
(command "setbylayer" "P" "")
)
)
(setvar "cmdecho" 1)
(princ)
)
对于块,编辑每个块>保存它们>在工具选项板中拖动它们>并使用工具选项板中的重定义命令更新块。
也可以使用VVA lisp进行块。
在这里:http://www.cadtutor.net/forum/showthread.php?533-所有层和块的Lisp颜色变化/第2页 我一直在用refedit命令编辑块,但当你有很多块,项目的35%是现有设备,我需要有灯光层,但在幻影层。将现有设备换成不同的层,并保持线路类型和LTscale不变,这很费时。
非常耗时。我以前从未创建过lisp例程,大部分是脚本,但我尝试编辑它以使其工作。
谢谢 为您编辑了上述例程,请尝试一下。
页:
[1]