向图层名称添加文字
我试图通过lisp将文字添加到图层名称中,但通过我的研究,我找不到任何有关这方面的信息。有人能给我指一下正确的方向吗? 单向:(defun c:test ( / LAy LAYN LAYNAME)
(if (setq layname (cdr (assoc 8 (entget (car (entsel "\nSelect an object to change the LayerName: "))))))
(progn
(vlax-for lay (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq layn (vla-get-name lay))
(if (and (wcmatch layn layname)
(/= layn "0")
(/= layn "Defpoints")
);; and
(vla-put-Name lay "My-Test-Layer")
);; if
);; vlax-for
);; progn
);; if
(princ)
);; test
要将文字添加到图层名,请执行以下操作:
(vla-put-Name lay (strcat layname "your text to add"))
HTH公司
亨里克 谢谢你的回复。这是visual lisp,对吗?我正在努力学习Autolisp。有没有办法用Autolisp来代替? 可能是这样的:
(defun c:test ( / LAYNAME)
(if (and (setq layname (cdr (assoc 8 (entget (car (entsel "\nSelect an object to change the LayerName: "))))))
(/= layname "0")
(/= layname "Defpoints")
);; and
(command "._rename" "_Layer" layname (strcat layname "your text to add"))
);; if
(princ)
);; test
亨里克 非常感谢。“strcat”是我需要的。 不客气!
很高兴我能帮忙
亨里克
亨里克,
由于(entget nil)将出错,if语句变得冗余,因为在任何情况下,测试表达式都将返回nil,而程序不会返回错误。
只是一个提示!
李
李,
一如既往地正确,这是一个很好的提示!
但是,太晚了,我几乎睡着了。。。
亨里克 别担心,亨里克!
页:
[1]