Travaci 发表于 2022-7-5 16:41:06

复制带有字段的标记

嗨,大家好。İ想要复制带有字段的标记。我已经这么做了,但我在做这件事时遇到了一个问题,我不想使用“command”和“regen”。这可能吗?
 
(defun c:axx (/ *error* ss ob n at pn pv) (vl-load-com)
(defun *error* (msg)
   (if (not (wcmatch (strcase msg t) "*cancel*,*exit*"))
   (princ (strcat "\nError: " msg)))
   (if ss (redraw (ssname ss 0) 4)) (princ))
(if (setq ss (ssget ":s" (list (cons 0 "insert"))))
   (progn (redraw (ssname ss 0) 3)
   (if (setq ob (ssget (list (cons 0 "insert"))))
       (progn
         (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))               
         (repeat (setq n (sslength ob)) (setq n (1- n))
         (foreach at (vlax-invoke (vlax-ename->vla-object (ssname ss 0)) 'Getattributes)
             (setq pn (vlax-get-property at 'TagString)
                   pv (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vlax-get-property at 'ObjectId)) ">%).TextString>%"))
             (foreach at (vlax-invoke (vlax-ename->vla-object (ssname ob n)) 'GetAttributes)
               (if (eq (vla-get-TagString at) pn) (vlax-put-property at "TextString" pv))))
          (vl-cmdf "._updatefield" (ssname ob n) "")
         )
         (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
         (redraw (ssname ss 0) 4)
       )
   )
   )
) (if ss (redraw (ssname ss 0) 4)) (princ)
)

Travaci 发表于 2022-7-5 18:20:52

现在没钱了?
页: [1]
查看完整版本: 复制带有字段的标记