复制多行属性数据
你好我正在寻找一个lisp,它从块中复制TAG1中的多行属性数据,并将其粘贴到命令行/promt。
谢谢
庄信万丰 以下是一个函数,用于从多行文字属性、属性、多行文字或文字实体返回textstring:
(defun _gettextstring ( ename )
(apply 'strcat
(apply 'append
(mapcar
(function
(lambda ( pair )
(if (member (car pair) '(1 3))
(list (cdr pair))
)
)
)
(entget ename)
)
)
)
)
使用“command”功能将文本提交到命令行。 大概
(defun c:test (/ acdoc ss sset nme)
(vl-load-com)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
(if (setq ss (ssget "+.:S" '((0 . "INSERT")(66 . 1))))
(progn
(setq sset (ssname ss 0))
(setq nme (cdr (assoc 2 (entget sset))))
(vlax-for x (vla-item (vla-get-blocks acdoc) nme)
(if (eq (vla-get-objectname x) "AcDbAttributeDefinition")
(princ (vla-get-tagstring x))
)
)
)
(princ)
)
(princ)
)
Tharwat 多个标签还有一个。。。。。
(defun c:test (/ acdoc ss strngs)
(vl-load-com)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
(if (setq ss (ssget "+.:S" '((0 . "INSERT") (66 . 1))))
(vlax-for x (vla-item (vla-get-blocks acdoc)
(cdr (assoc 2 (entget (ssname ss 0))))
)
(if (eq (vla-get-objectname x) "AcDbAttributeDefinition")
(setq strngs (cons (vla-get-tagstring x) strngs))
)
)
(princ)
)
(print strngs)
(princ)
)
塔瓦特 你为什么要钻研区块定义Tharwat?
嗨,李。
我正在挖掘区块,因为OP提到(区块中的TAG1)。我把他们搞错了还是没抓住重点? 对不起,这不是我想要的。
我想用te标签“TAG1”将脚本(txt)存储在属性中的块中。运行lisp,选择该块并运行脚本。属性“TAG1”不可见。
因此,运行lisp,选择包含脚本的块,然后运行该脚本,将多行属性“TAG1”中的txt数据粘贴到命令promt。
庄信万丰 这是否意味着您想用选择属性块后已有的文本替换TAG1? TAG1是块中的属性。好的,让我们把属性命名为SCR。在图形中插入块(块是正方形)后,用文本(=脚本)填充SCR属性,并填充该块的其他属性,如该块的描述。我想创建一种可以运行脚本的按钮,将其放置在该块的SCR属性中。SCR属性不可见。
庄信万丰 你可以上传一个dwg显示之前和之后的过程?
页:
[1]
2