我现在明白了,我的错误是把属性值放在一个列表中,而没有考虑属性位置的顺序,这导致了重命名不有序,无论如何,因为pBe的例程按需要为您工作,pBe的出色工作值得称赞
祝你好运 您好,如果您正在阅读本文。你的代码自创建以来一直在为我工作,再次感谢。
不幸的是,我刚刚遇到了一个以前从未遇到的问题。
如果您添加了一个新的布局选项卡,然后运行RENLAY lisp,它会用(1)后缀重命名现有选项卡,如下图所示
如果您有时间看一看,我们将不胜感激。现在,因为它只是一个奇怪的选项卡,我正在手动重命名新的选项卡。 这是一个故障保护,我嵌入了这种情况下的例行程序。在运行RENLAY之前,用户必须确保“源”标题栏没有重复的数字,从结果中可以确定哪个布局选项卡包含重复的标记值
你好
我想知道我们是否可以通过重命名AutoCAD 2014布局选项卡,从特定图纸标题栏字段中提取信息来实现这一点?
纸张空间中每张纸上的标题栏“Block”为“AnaeCo_Title”
例如,布局选项卡将在包含A1图纸的第1页上显示为。。。。
第1-A1页
例如,布局选项卡将在包含A2图纸的第2页上显示为。。。。
第2-A2页
例如,布局选项卡将在包含A2图纸的第3页上显示为。。。。
第3-A2页
布局选项卡(例如,在包含A3图纸的第4页上)将显示为。。。。
第4页-A3页。。。。。。。。。。。。对于每个图纸选项卡,依此类推。
标签的位置(如所示):
SHT-板材
每一张纸都可能会有变化。。。当然,关于板材数量,也可能是板材尺寸。
这个lisp可以用来适应上述情况吗?
这一切仍在学习者许可证上。。。。
干杯
DP 尝试以下快速代码:
(defun c:relay ( / a e i l n p s x )
(if (setq s (ssget "_X" '((0 . "INSERT") (66 . 1) (2 . "AnaeCo_Title") (410 . "~Model"))))
(progn
(repeat (setq i (sslength s))
(setq e (entnext (ssname s (setq i (1- i))))
x (entget e)
a nil
)
(while (= "ATTRIB" (cdr (assoc 0 x)))
(setq a (cons (cons (strcase (cdr (assoc 2 x))) (cdr (assoc 1 x))) a)
e (entnext e)
x (entgete)
)
)
(setq l (cons (cons (cdr (assoc 410 (entget (cdr (assoc 330 x))))) a) l))
)
(vlax-for x (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
(if
(and
(setq a (cdr (assoc (vla-get-name x) l)))
(setq n (cdr (assoc "SHEET_NUM" a)))
(setq p (cdr (assoc "SIZE" a)))
)
(vl-catch-all-apply 'vla-put-name (list x (strcat "SHT " n " - " p " SHEET")))
)
)
)
(princ "\nNo \"AnaeCo_Title\" blocks found.")
)
(princ)
)
(vl-load-com) (princ)
李,也许是Tabsort的一些插件??? 明亮的
真是太棒了!
然而,上面的海报评论是相当有效的,如果标签是无序的,这个lisp可以重新排序时,更新标签信息?
干杯
DP
大概
太好了,不客气。
我相信mdbdesign是指我现有的TabSort程序-该程序将使您能够根据需要对选项卡进行排序。 啊。。。。明白了。
我必须说你写了一些很好的“东西”。。。!
还有,这里有一些非常有才华的人。
大家干杯
DP 谢谢DP
页:
1
[2]