JADT 发表于 2022-7-6 00:40:10

使用2 tit重命名布局选项卡

我使用了我在这些论坛中发现的单属性拉取版本,但我真的很想知道在重命名中拉取2个属性是否可行。我需要图纸编号(附件“DRAWINGNO.”)以及修订(附件“REV”)

图纸编号abc123
修订版B
将布局选项卡重命名为abc123B
 
外面有什么吗。我把300个PDF重命名为RSI
我知道图纸集可能会这样做,但我们不使用它们。
感谢所有帮助和指导。

Tharwat 发表于 2022-7-6 00:46:35

欢迎来到Cadtutor
 
1-保存用于重命名布局的属性的属性块的名称是什么?
2-每个属性的两个标记名是什么?
 
塔瓦特

JADT 发表于 2022-7-6 00:49:05

感谢您的回复:
块为“A1边框”,无引号
属性标记为“DRAWINGNO”和“REV”再次没有引用。
如果它们可以用下划线分隔,那将是理想的。。。但现在一切都会很好。
干杯
J

Tharwat 发表于 2022-7-6 00:51:19

希望这对你有用,试试看,让我知道
 

(defun c:Test (/ outs spc s)
(vl-load-com)
;; --- Tharwat 16. May. 2013 --- ;;
(setq outs (vla-get-layouts
            (vla-get-ActiveDocument (vlax-get-acad-object))
            )
       spc(getvar 'ctab)
)
(foreach l (layoutlist)
   (setvar 'ctab l)
   (if (setq s (ssget "_X" (list '(0 . "INSERT") (cons 2 "A1 Border")(cons 410 l))))
   (progn
       ((lambda (j / sn e ent nm lst)
          (while (setq e (ssname s (setq j (1+ j))))
            (setq lst nil)
            (while (/= (cdr (assoc 0 (entget (setq e (entnext e)))))
                     "SEQEND"
                   )
            (if
                (and
                  (eq (cdr (assoc 0 (setq ent (entget e)))) "ATTRIB")
                  (or (eq (cdr (assoc 2 ent)) "DRAWINGNO.")
                      (eq (cdr (assoc 2 ent)) "REV")
                  )
                  (snvalid (cdr (assoc 1 ent)))
                )
               (setq lst (cons (cdr (assoc 1 ent)) lst))
            )
            )
            (if (eq 2 (length lst))
            (if (and (setq nm (strcat (car lst) "_" (cadr lst)))
                     (not (member nm (layoutlist))
                     )
                  )
                (vla-put-name (vla-item outs l) nm)
            )
            )
          )
      )
         -1
       )
   )
   )
)
(setvar 'ctab spc)
(princ)
)

pBe 发表于 2022-7-6 00:53:15

@塔瓦特
 
如果您要使用布局列表
(setq s (ssget "_X" (list '(0 . "INSERT")'(2 . "A1 Border")(cons 410 l))))

(setvar 'ctab spc)
 
如果您碰巧在paperspace选项卡中启动,则会导致错误;
 
IMO无需通过布局列表,并在每个选项卡上选择“A1边框”
 
 
我会这样做:
 
(defun C:renlay (/ Layout ss n e ltn ltnlist nm Attlist)
(vl-load-com)
;;;        pBe 17MAy2013        ;;;
(setq
   Layout (vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
)
(if (setq ss (ssget "_x"
                     '((0 . "INSERT")
                     (2 . "A1 Border")
                     (-4 . "<NOT")
                     (410 . "Model")
                     (-4 . "NOT>")
                      )
            )
   )
   (repeat (setq i (sslength ss))
   (setq n   0
         e   (ssname ss (setq i (1- i)))
         ltn (cdr (assoc 410 (entget e)))
   )
   (if (and (not (member ltn ltnlist))
            (setq AttVal
                     (mapcar
                     '(lambda (k)
                        (list (vla-get-tagstring k) (vla-get-textstring k))
                        )
                     (vl-remove-if-not
                         '(lambda (j)
                            (member (vla-get-tagstring j) '("DRAWINGNO." "REV"))
                        )
                         (vlax-invoke (vlax-ename->vla-object e) 'GetAttributes)
                     )
                     )
            )
         )
       (progn
         ;;        In case the attribute sequence is out ot whack             
         (setq ltnlist (cons ltn ltnlist)
               nm      (Strcat (cadr (assoc "DRAWINGNO." Attval))
                               "_"
                               (cadr (assoc "REV" Attval))
                     )
         )
;;;        In case there are equal values                 ;;;
         (while (member nm (layoutlist))
         (setq nm (strcat nm " (" (itoa (setq n (1+ n))) ")"))
         )
         (vla-put-name (Vla-item Layout ltn) nm)
       )
   )
   )
)
(princ)
)

Tharwat 发表于 2022-7-6 00:56:18

用dxf 410很好地捕捉到了pBe。
 
非常感谢。

pBe 发表于 2022-7-6 01:00:49

 
干杯伙计

JADT 发表于 2022-7-6 01:03:52

伙计们,
谢谢你在这方面花时间。tharwat-很抱歉,我昨天晚上一次没有回复机器。
pBe公司
RENLAYLisp程序很好地工作
我现在可以休息我的手指和休息轻松,我的pdf的将被正确命名。如果我记得在出版之前把它们放回原处。
雅特

Tharwat 发表于 2022-7-6 01:06:51

 
我的代码对你有用吗?

JADT 发表于 2022-7-6 01:09:42

嗨,塔尔瓦特。
它只重命名了相邻的布局选项卡(不是我当前使用的布局选项卡,也不是其他布局选项卡),还将rev放在drawingno之前。以相反的方式命名。
 
pBe修改后的代码起到了作用。所以你们之间是一针见血的。
谢谢
页: [1] 2
查看完整版本: 使用2 tit重命名布局选项卡