GATTE带多行文字(或替代文字)
大家好,我制作了一个简单的LISP来调用使用gatte命令的脚本。目的是调整标题栏字段。一切都很好,除了mtext这个属性有时不起作用。
我已经发现,当属性值中有足够的文本到达第二行时,gatte命令不会改变它。如果属性值跨越两行,然后减少到一行,它仍然不起作用。打开图形时,该值只能为一行。
无论如何,说到这里。。。
我需要一种方法将块“BLOCK123”中属性“ATT123”的值更改为“AS build”。ATT123的值是多行文字,必须保持这种状态。
有什么建议吗?
谢谢
洛辛斯基 您是否能够发布代码和包含具有该属性的块的示例dwg? 我已经把它贴在这个帖子上了。
LISP调用以下脚本来更改属性的值:
关贸总协定
块
“NP标题栏信息”
REVDESC版本
竣工
Y
测试图纸。图纸 试试这个吧?
(defun c:test ()
(setq sel (nentsel "\nSelect Object: "))
(if sel
(progn
(setq ent (car sel))
(setq obj (vlax-ename->vla-object ent))
(vlax-put-property obj 'TextString "AS BUILT")
)
(princ "\nNothing was Selected:")
)
(princ)
) 这很有效,但我需要自动选择。
区块名称:block123
属性名称:revdesc123
您可以调整lisp以适应这种情况吗?
谢谢
洛辛斯基 可以试试这个
(defun c:test ()
(setq ss (ssget "X" '((0 . "INSERT")(2 . "NP TITLEBLOCK INFO"))))
(setq sslen (sslength ss))
(setq n 0)
(repeat sslen
(setq ent (ssname ss n))
(setq obj (vlax-ename->vla-object ent))
(setq att (vlax-invoke-method obj 'GetAttributes))
(setq att (vlax-safearray->list (vlax-variant-value att)))
(foreach attref att
(if (= "REVDESC" (vlax-get-property attref 'TagString))
(vlax-put-property attref 'TextString "ASBUILT"))
)
(setq n (+ 1 n))
)
(princ)
) 就这样,干得好!
谢谢
洛辛斯基 很高兴我能帮忙!
页:
[1]