使用2 tit重命名布局选项卡
我使用了我在这些论坛中发现的单属性拉取版本,但我真的很想知道在重命名中拉取2个属性是否可行。我需要图纸编号(附件“DRAWINGNO.”)以及修订(附件“REV”)如
图纸编号abc123
修订版B
将布局选项卡重命名为abc123B
外面有什么吗。我把300个PDF重命名为RSI
我知道图纸集可能会这样做,但我们不使用它们。
感谢所有帮助和指导。 欢迎来到Cadtutor
1-保存用于重命名布局的属性的属性块的名称是什么?
2-每个属性的两个标记名是什么?
塔瓦特 感谢您的回复:
块为“A1边框”,无引号
属性标记为“DRAWINGNO”和“REV”再次没有引用。
如果它们可以用下划线分隔,那将是理想的。。。但现在一切都会很好。
干杯
J 希望这对你有用,试试看,让我知道
(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)
)
@塔瓦特
如果您要使用布局列表
(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)
) 用dxf 410很好地捕捉到了pBe。
非常感谢。
干杯伙计 伙计们,
谢谢你在这方面花时间。tharwat-很抱歉,我昨天晚上一次没有回复机器。
pBe公司
RENLAYLisp程序很好地工作
我现在可以休息我的手指和休息轻松,我的pdf的将被正确命名。如果我记得在出版之前把它们放回原处。
雅特
我的代码对你有用吗? 嗨,塔尔瓦特。
它只重命名了相邻的布局选项卡(不是我当前使用的布局选项卡,也不是其他布局选项卡),还将rev放在drawingno之前。以相反的方式命名。
pBe修改后的代码起到了作用。所以你们之间是一针见血的。
谢谢
页:
[1]
2