CAD lisp 如何获取外部参照的所有图层集合

CAD制图时经常需要参照其他专业的图纸,把图纸xr(即外部参照)进来以后还需要把这张图的图层颜色全部改成8号色(灰色)。所以,有没有大神编一个lisp,点击某一外部参照图纸就能一步将该图纸全部变成灰色。我的想法是:键入lisp命令-->点取外部参照-->获取该外部参照的所有图层信息-->将这些图层颜色改为8号色-->结束命令
欢迎喜欢cad lisp开发的同学帮忙解答。谢谢!

(defun c:ff()
(setvar "cmdecho" 0)
(setq en1(entsel))
(setq en1_data (entget (car en1)))
(setq tuceng1 (assoc 2 en1_data))
(setq tuceng3 (cdr tuceng1))
(setq tuceng (strcat tuceng3 "*" ))
(command "-layer" "c" "8" tuceng "")
(princ tuceng)
(setvar "cmdecho" 1)
(princ)
)

逻辑上:
1获取选择对象的外部参照名称,赋予变量“canzhaotuceng1”;
2将变量canzhaotuceng1和"*"组合,赋予变量"canzhaotuceng";
3使用(command "-layer" "c" "8" canzhaotuceng "")
因为这些图层的特点就是前面都有参照名
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-09
cad自带的图层管理器就有改色的功能,你安装shift选批量选中之后改色就OK了。追问

你说的这个但凡会cad的都懂,我说的是lisp,cad二次开发,懂否???

本回答被网友采纳
第2个回答  2021-05-10
1、获取参照图层path;
2、
(setq APP (vlax-get-acad-object))
(setq doc (vla-open (vla-get-documents APP) dwgname))
;;;;;;;;;;;;;中间程序开始
(setq msp (vla-get-ModelSpace doc))
(vlax-for ENT msp (vlax-dump-object ent))
;;此处以此修改所有图层颜色
;;;;;;;;;;;;;;中间程序结束
(vla-close doc :vlax-false)
(vlax-release-object doc)
(vlax-release-object APP)
)
3;更新外部参照
相似回答