fengyu6913 发表于 2024-6-19 10:50:22

求助:图层名+后缀

点选图形,再点选文字,将图形的图层名+文字后缀,详见样图所述.

Leolaputa 发表于 2024-6-19 10:50:23

(defun C:TCXG(/ #layerdata1 #newlayername #pickdata1 #pickdata2 #picklayer1 #pickname1 #pickname2 #picktxt2)
        ;获取需要修改图层名的对象的信息
        (princ "\n点选需要修改图层名的对象")
        (setq #pickname1 (car (entsel)))
        (setq #pickdata1 (entget #pickname1))
        (setq #picklayer1 (cdr (assoc 8 #pickdata1)));获取对象图层名
        ;获取原图层信息
        (setq #layerdata1 (tblsearch "layer" #picklayer1))
        ;获取后缀文本对象的信息
        (princ "\n点选后缀文本")
        (setq #pickname2 (car (entsel)))
        (setq #pickdata2 (entget #pickname2))
        (setq #picktxt2 (cdr (assoc 1 #pickdata2)))
        ;组合文本
        (setq #newlayername (strcat #picklayer1 "--" #picktxt2))
        ;创建新图层
        (entmake
                (list
                        '(0 . "LAYER")
                        '(100 . "AcDbSymbolTableRecord")
                        '(100 . "AcDbLayerTableRecord")
                        (cons 2 #newlayername);图层名
                        (assoc 70 #layerdata1);获取原打印状态
                        (assoc 62 #layerdata1);获取原颜色
                        (assoc 6 #layerdata1);获取原线型
                );end list
        );end entmake
        ;合并新旧图层
        (command "_.-LAYMRG" "N" #picklayer1 "" "N" #newlayername "Y")
);end TCXG

fengyu6913 发表于 2024-6-19 12:20:04

Leolaputa 发表于 2024-6-19 11:34
(defun C:TCXG(/ #layerdata1 #newlayername #pickdata1 #pickdata2 #picklayer1 #pickname1 #pickname2 #p ...

感谢大佬帮忙
页: [1]
查看完整版本: 求助:图层名+后缀