sergiu_ciuhnenc 发表于 2022-7-5 17:49:25

将多个属性链接到

再次需要你的帮助!!!
需要一个lisp,它可以将多个属性链接到文本。。。在我附上的图纸中,你会明白我的意思!!!
很容易,一个接一个地选择属性,然后单击文本,并在它们之间用逗号粘贴链接的属性。
提前感谢!!!!!
这是一个看起来完全相同的互联网链接,但只是复制了属性的文本:
http://forums.augi.com/showthread.php?146818-LISP需要复制属性并粘贴为单行文本
帮助图纸

sergiu_ciuhnenc 发表于 2022-7-5 17:57:02

我发现了另一个Lisp程序,看起来大致相同,但需要稍作修改
我在这个lisp中看到了这个论坛的名字(pBe)。。。
ConstructField2(1)-副本。LSP

Tharwat 发表于 2022-7-5 18:07:26

你好
 
我在您的附图中找不到属性块名称。
您想从程序中收集不可见的属性到最终的文本字符串中吗?
 
程序步骤:
[列表]
[*]选择属性块。
[*]然后选择文本对象,将其字符串替换为以前选择的属性化文本字符串(用逗号分隔)。
[/列表]
 
这适合你的需要吗?

sergiu_ciuhnenc 发表于 2022-7-5 18:12:44

嗨Tharwat!
块名为“vcBlockPos_TIGP”
属性名称为“pozitia”
你提到的步骤正是我需要的!!!但也应该联系起来

Tharwat 发表于 2022-7-5 18:23:05

好的,试一试,让我知道。
 
注意:无论块名是什么,这个程序都会根据标记名收集字符串。
 

(defun c:Test(/ u app l ss i lst s)
;;====================================;;
;; Tharwat - 12.Apr.2016                ;;
;; Gathering attributes' text strings        ;;
;; into a text as a filed object        ;;
;; separated by a comma.                ;;
;;                                        ;;
;;====================================;;
(if (setq u   (vla-get-Utility
               (vla-get-ActiveDocument (vlax-get-acad-object))
               )
         app (vlax-method-applicable-p u 'GetObjectIdString)
         l   ""
         ss(ssget '((0 . "INSERT") (66 . 1))))
   (repeat (setq i (sslength ss))
   (mapcar '(lambda (x)
                (if (eq (vla-get-tagstring x) "Pozitia")
                  (setq lst (cons x lst))
                  )
                )
             (vlax-invoke
               (vlax-ename->vla-object (ssname ss (setq i (1- i))))
               'getattributes))
   )
   )
(if lst
   (if (< 1 (length lst))
   (foreach x(reverse lst)
       (setq
         l (strcat "%<\\AcObjProp Object(%<\\_ObjId "
                   (if app
                     (vla-GetObjectIdString u x :vlax-false)
                     (itoa (vla-get-ObjectId x)))
                   ">%).TextString>%"
                   ","
                   l))
       )
   (setq l
            (strcat "%<\\AcObjProp Object(%<\\_ObjId "
                  (if app
                      (vla-GetObjectIdString u (car lst) :vlax-false)
                      (itoa (vla-get-ObjectId (car lst))))
                  ">%).TextString>%"))
   )
   )
(if (and l
          (/= l "")
          (setq s (car (entsel "\nSelect text to add fields :")))
          (wcmatch (cdr (assoc 0 (entget s))) "*TEXT")
          )
   (vla-put-textstring
   (vlax-ename->vla-object s)
   (vl-string-trim "," l))
   )
(princ)
)(vl-load-com)

sergiu_ciuhnenc 发表于 2022-7-5 18:32:04

不要工作!
选择块后无法选择文本
allready尝试了几次

Tharwat 发表于 2022-7-5 18:35:10

重新复制代码,然后重试。

sergiu_ciuhnenc 发表于 2022-7-5 18:42:45

现在工作正常。。。
再次感谢THARWAT!!!!

Tharwat 发表于 2022-7-5 18:55:41

不客气。
页: [1]
查看完整版本: 将多个属性链接到