属性更改wro
大家好,所有LSP专家请帮助我起初,这个LSP代码是有效的,我用了很长时间使用auto cad 2012。但现在LSP代码不起作用了
代码标签:
请参阅附件,
出了什么问题?
我用这个LSP做scr。对于多个图形,它非常有用。
查特里布。LSP 奶酪是怎么错的? 该函数没有任何问题,但如果块名是动态块,则不会工作。 @Tharwat如何知道块是否为动态块? 这是我使用CHATTRIB LSP时得到的
dwg和lsp见附件
查特里布。LSP
样品图纸
ENT获取块的实体名称,然后搜索DXF 2的cdr值,如果它以*U开头,则表示动态块,否则不是。 对不起,我真的不知道如何知道我的区块是否是动态的
我试图输入Entget,但autocad说未知
我已附上我的。图纸和。我上一条消息中的lsp。
请介意上传,并提出一些建议,如何使我的LSP再次工作。 将以下代码行复制并粘贴到命令行中,然后按Enter键开始,因此选择一个块,如果它以*U开头,则它是动态的,否则它不是。
(cdr (assoc 2 (entget (car (entsel "\n Select a Block :"))))) 无论如何,试试这个修改,让我知道。
注意:将函数changeAttribValue添加到以下例程中。
(defun C:CHATTRIB(/ ss sn a attag bname oldval newval)
(and (/= "" (setq bname (getstring "\nBlock name: ")))
(/= "" (setq attag (getstring T "\nTag: ")))
(/= "" (setq oldval (getstring T "\nOld value: ")))
(/= "" (setq newval (getstring T "\nNew value: ")))
(setq ss (ssget "_X"
(list '(0 . "INSERT")
'(66 . 1)
(cons 2 (strcat "`*U*," bname)))))
(repeat (setq a (sslength ss))
(if (eq (vla-get-effectivename
(vlax-ename->vla-object
(setq sn (ssname ss (setq a (1- a))))))
bname)
(changeAttribValue
sn
attag
oldval
newval)
))
)
(princ)
)(vl-load-com)
页:
[1]
2