以大卫的例子为基础。。。这使用ActiveX:
- (defun SetLayer2 (layerName / activeDoc layerTable layerItem)
- (vl-load-com)
- (vla-startundomark
- (setq activeDoc (vla-get-activedocument (vlax-get-acad-object))))
- (if (= 'STR (type layerName))
- (if (not (vl-string-search "|" layerName))
- (progn
- (setq layerTable (vla-get-layers activeDoc))
- (if (tblsearch "layer" layerName)
- (progn
- (setq layerItem (vla-item layerTable layerName))
- (vla-put-freeze layerItem :vlax-false))
- (vla-put-layeron layerItem :vlax-true)
- (vla-put-lock layerItem :vlax-false)
- (setq layerItem (vla-add layerTable layerName)))
- (vla-put-activelayer activeDoc layerItem))
- (prompt "\n <!> Cannot Set to Xref Dependent Layer <!> "))
- (progn
- (prompt "\n <!> Invalid Argument - ")
- (prin1 name)
- (prompt " <!> ")))
- (vla-endundomark activeDoc)
- (princ))
|