pmxcad 发表于 2022-7-6 08:52:40

复制多行属性数据

你好
我正在寻找一个lisp,它从块中复制TAG1中的多行属性数据,并将其粘贴到命令行/promt。
 
谢谢
 
庄信万丰

Lee Mac 发表于 2022-7-6 08:57:55

以下是一个函数,用于从多行文字属性、属性、多行文字或文字实体返回textstring:
 
(defun _gettextstring ( ename )
   (apply 'strcat
       (apply 'append
         (mapcar
               (function
                   (lambda ( pair )
                     (if (member (car pair) '(1 3))
                           (list (cdr pair))
                     )
                   )
               )
               (entget ename)
         )
       )
   )
)
 
使用“command”功能将文本提交到命令行。

Tharwat 发表于 2022-7-6 08:59:20

大概
 

(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

Tharwat 发表于 2022-7-6 09:05:09

多个标签还有一个。。。。。
 

(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)
)

 
塔瓦特

Lee Mac 发表于 2022-7-6 09:07:49

你为什么要钻研区块定义Tharwat?

Tharwat 发表于 2022-7-6 09:11:38

 
嗨,李。
 
我正在挖掘区块,因为OP提到(区块中的TAG1)。我把他们搞错了还是没抓住重点?

pmxcad 发表于 2022-7-6 09:13:32

对不起,这不是我想要的。
我想用te标签“TAG1”将脚本(txt)存储在属性中的块中。运行lisp,选择该块并运行脚本。属性“TAG1”不可见。
因此,运行lisp,选择包含脚本的块,然后运行该脚本,将多行属性“TAG1”中的txt数据粘贴到命令promt。
 
庄信万丰

Tharwat 发表于 2022-7-6 09:16:58

这是否意味着您想用选择属性块后已有的文本替换TAG1?

pmxcad 发表于 2022-7-6 09:20:49

TAG1是块中的属性。好的,让我们把属性命名为SCR。在图形中插入块(块是正方形)后,用文本(=脚本)填充SCR属性,并填充该块的其他属性,如该块的描述。我想创建一种可以运行脚本的按钮,将其放置在该块的SCR属性中。SCR属性不可见。
 
庄信万丰

Tharwat 发表于 2022-7-6 09:21:37

你可以上传一个dwg显示之前和之后的过程?
页: [1] 2
查看完整版本: 复制多行属性数据