怎么批量获取块的属性文字内容?
怎么批量获取块的属性文字内容? 本帖最后由 自贡黄明儒 于 2023-8-14 11:51 编辑nentsel
程序用(entnext e) (defun getatts(blk);|获取块参照图元(对象)的属性参照,返回值((属性标记 属性值 属性对象)...)以便进一步修改指定标记的属性值|;
(if(equal(VL-CATCH-ALL-APPLY'vlax-get-property(list(setq blk(if(=(type blk)'ename)(vlax-ename->vla-object blk)blk))'HasAttributes)):vlax-true)
(mapcar(function(lambda(x)(list(strcase(vlax-get-property'TagString))(vlax-get-property x'TextString)x)))
(vlax-safearray->list(vlax-variant-value(vlax-invoke-method blk'GetAttributes))))))
(defun putatts(enblk lst / a);|enblk属性块图元或对象,lst((标记 值)(标记 值)(标记 值)...)|;
(and(setq a(getatts enblk))
(vl-some(function(lambda(x / b)(and(setq b(assoc(strcase(car x))a))(vlax-put-property(caddr b)'TextString(cadr x)))))lst))) 标签:是属性块里的标签,要修的属性值标签要对应,不然无法修改。
自贡黄明儒 发表于 2023-8-14 11:49
nentsel
程序用(entnext e)
感谢大佬。 :lol感谢大佬 zhangcan0515 发表于 2023-8-14 11:50
标签:是属性块里的标签,要修的属性值标签要对应,不然无法修改。
你好,没看懂怎么使用,标签:说是跟属性块里的一致才能使用,是这个意思吧,也就是定义属性和标签一致才能使用,但是标签无法输入中文,只能是英文输入,就算切到中文输入法也不行。。。还是输入的英文,能否说明下操作步骤吗 weimeng555 发表于 2024-5-5 00:42
你好,没看懂怎么使用,标签:说是跟属性块里的一致才能使用,是这个意思吧,也就是定义属性和标签一致才 ...
可以啊,标签可以中文,可以英文,可以数字。 感谢大佬。
页:
[1]