求输入tt,点击图块,把图块的数值型 A 的值 复制到粘贴板
本帖最后由 664571221 于 2023-9-18 14:47 编辑求输入tt,点击图块,把图块的数值型 A的值 复制到粘贴板
http://bbs.mjtd.com/thread-188597-1-1.html
组合下 (Defun lm-get-attribute (ty sx / lstattrs lstvar tagstring textstring vn0)
(setq vn (vlax-ename->vla-object ty))
(setq lstVar (vla-getattributes vn))
(setq lstAttrs (vlax-safeArray->list (vlax-variant-value lstVar)))
(setq TextString nil)
(foreach attr lstAttrs
(setq TagString (vla-get-TagString attr))
(if (equal TagString sx) ;此处为你想要的元素
(setq TextString (vla-get-TextString attr))
)
)
TextString
)
(defun set-clip-string (str / html result)
(and (= (type str) 'str)
(setq html (vlax-create-object "htmlfile"))
(setq result (vlax-invoke (vlax-get (vlax-get html 'parentwindow) 'clipboarddata ) 'setdata "text" str))
(vlax-release-object html)
)
)
(set-clip-string (lm-get-attribute(car(entsel"\n选择属性块:")) "A")) 飞雪神光 发表于 2023-9-18 15:14
lm-get-attribute 里边 foreach宜用vl-some
(defun getattrib(blk tag)
(if(and(equal(VL-CATCH-ALL-APPLY(function vlax-get-property)
(list(setq blk(if(=(type blk)'ename)(vlax-ename->vla-object blk)blk))'HasAttributes)):vlax-true)
(=(type tag)'str)
(setq tag(strcase tag)))
(vl-some(function(lambda(a)(if(=(strcase(vlax-get-property a"TagString"))tag)a)))
(vlax-safearray->list(vlax-variant-value(vlax-invoke-method blk'getattributes))))))
(set-clip-string(VL-CATCH-ALL-APPLY(function vlax-get-property)(list(getattrib(car(entsel""))"A")"TextString"))) llsheng_73 发表于 2023-9-18 17:29
lm-get-attribute 里边 foreach宜用vl-some
这个好 换了之后简洁好多 感谢大佬分享~ llsheng_73 发表于 2023-9-18 17:29
lm-get-attribute 里边 foreach宜用vl-some
怎么能把程序变成可以直接运行的程序呢,用一个命令 edsion24 发表于 2023-9-19 08:28
怎么能把程序变成可以直接运行的程序呢,用一个命令
我也不清楚,你问问大佬,你是做啥行业的兄弟 飞雪神光 发表于 2023-9-18 15:14
谢谢大佬分享 llsheng_73 发表于 2023-9-18 17:29
lm-get-attribute 里边 foreach宜用vl-some
谢谢大佬分享
页:
[1]