图层控制,用VLA方法很容易!
现提供两个函数,一个是批量图层加前缀函数,一个是根据前缀开关图层!
有了这两个函数,剩下的就是根据自己需求写出自己需要的程序来了!这个需要你自己来写!
- ;;当前图形所有图层添加前缀,参数 prefix = 前缀字串
- (defun addprefixAll (prefix / name)
- (vlax-for lay (vla-get-layers
- (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- (if (/= "0" (setq name (vla-get-name lay)))
- (vla-put-name lay (strcat prefix name)) ;_ 添加前缀
- )
- )
- )
- ;;关闭/打开所有前缀图层,参数 prefix = 前缀字串 flag = t 打开图层 = nil 关闭图层
- (defun prefixlayeron (prefix flag)
- (if flag
- (setq flag :vlax-true) ;_ 打开图层
- (setq flag :vlax-false) ;_ 关闭图层
- )
- (setq prefix (strcase prefix))
- (vlax-for lay (vla-get-layers
- (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- (if (WCMATCH (strcase (vla-get-name lay)) (strcat prefix "*"))
- (vla-put-layeron lay flag)
- )
- )
- )
|