块到层
- (defun c:BTLay ( / mklay LunL aDoc layers lklst)
- (vl-load-com)
- (defun mklay (nm c laycoll / x)
- (if (not (tblsearch "Layer" nm))
- (setq x (vla-add laycoll nm))
- )
- [b][color="blue"](vla-put-color (vla-item laycoll nm) c)[/color][/b])
- (defun LunL (lc lst / llst)
- (if lst (foreach n lst
- (vla-put-lock (vla-item lc n) :vlax-true))
- (vlax-for a lc
- (if (eq (vla-get-lock a) :Vlax-true)
- (progn
- (setq llst (cons (vla-get-name a) llst))
- (vla-put-lock a :vlax-false)))))
- llst
- )
- (setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object))
- Layers (vla-get-layers aDoc))
- (Setq lklst (lunl layers nil))
- (vlax-for layout (vla-get-layouts aDoc)
- (vlax-for i (vla-get-block layout)
- (if (and
- (= (vla-get-ObjectName i) "AcDbBlockReference")
- (not (vlax-property-available-p i 'Path))
- )
- (progn
- (mklay (setq bn (vlax-get i [b][color="blue"](if (vlax-property-available-p i 'Effectivename)
- 'EffectiveName 'Name))) [/color][/b]3 layers)
- (vla-put-layer i bn))
- )
- )
- )
- (lunl layers lklst)
- (princ)
- )
命令:BTlay
编辑:vlax-property-available-p并更新现有图层的颜色。 |