删除重复属性T
我有数百个重复属性的图形。我不能浏览每一张图纸,给巴特曼打电话,然后一个接一个地删除它们。我需要一种自动化过程的方法。重复项总是出现在EATTE中,大部分时间出现在BATTMAN中。我需要一个lisp,将发现并删除红色显示的重复,而保留原稿原封不动。有人能帮忙吗?
试试这个:
注:上述代码正在修改具有重复属性标记的所有块的块定义,因此不会检查属性值是否也重复。 谢谢这似乎起到了作用,但属性仍会显示在增强的属性编辑器中,并且在同步时其值会丢失。你知道怎么处理吗?如果没有,那么无论如何谢谢你的Lisp程序? 李,希望你不介意参与这个帖子。
对于lisp来说,这似乎是一个非常有趣的想法,你能上传一个属性块的副本吗?
谢谢 希望这一个,你正在寻找。。。。
(defun c:Test (/ e i n sn ss strings)(vl-load-com)
;;; Tharwat 28. march. 2012 ;;;
(if (setq ss (ssget "_:L" '((0 . "INSERT") (66 . 1))))
(repeat (setq i (sslength ss))
(setq sn (ssname ss (setq i (1- i))))
(setq n (entnext sn))
(while (not (eq (cdr (assoc 0 (setq e (entget n)))) "SEQEND" )
)
(if (not (member (strcase (cdr (assoc 1 e))) strings))
(setq strings (cons (strcase (cdr (assoc 1 e))) strings ))
(vla-delete (vlax-ename->vla-object n))
)
(setq n (entnext n))
)
(setq strings nil)
)
(princ)
)
(princ)
)
在发布之前的简短测试中,一切似乎都正常工作-AttSync之后,应该从块的所有引用中删除属性。 某些属性标记名称相同,但下面列出的名称不同。基本上,我只需要一种方法来将信息从属性的值从旧值传递到新值。如果只有几张图,我会用巴特曼来消除重复,并一次更改一个名称,应用和同步。这很管用,但我有数百张画,一次画一张并不实用
旧_边框(COUNT)新_边框(COUNT)
04-16-90(2)开始日期(1)
04-17-90(2)CHKD_日期(1)
04-18-90(2)APPD_日期(1)
F、 T.D.(2)由(1)绘制
C、 B.(2)由(1)检查
APP(2)APPD_BY(1)
DES-0(1)DESC-0(1)
DES-1(1)DESC-1(1)
DES-2(1)DESC-2(1)
DES-3(1)DESC-3(1)
DES-4(1)DESC-4(1)
以下标签在两个边框中相同,但在旧边框中重复。因此,当我将旧的重命名为新的并重新定义它时,我在EATTEDIT和图形中有多个实例。当我同步它们时,它们的值会丢失。
DWGNO(3)
标题1(2)
标题2(2)
边框。图纸 在Lee之前,我遇到了同样的问题,关于更改属性宽度的代码。但在某些情况下,属性会从其默认位置移动,更改块定义会将其还原到其原始位置。所以我最终使用了一个选择集。但不确定这里的情况是否相同
2 谢谢Tharwat!我发现如果我运行RenAttrib。lsp并重命名和重新定义边界,然后同步工作。RenAttrib。lsp需要键入或编写脚本才能工作。正文如下。我附上了Lisp程序,如果有人想要一个副本供自己使用。
再次感谢。
收件人0
属性0
-插入
old\u border=C:\mike\autocad\RenAttrib\old\u border。图纸
25,0
1.
(RenAttrib“old_border”“04-16-90”“START_DATE”)
(RenAttrib“old_border”“04-17-90”“CHKD_DATE”)
(RenAttrib“old_border”“04-18-90”“APPD_DATE”)
(RenAttrib“old_border”“F.T.D.”绘制人)
(RenAttrib“old_border”“C.B.”检查人)
(RenAttrib“old_border”“APP”“APPD_BY”)
(RenAttrib“old_border”“DES-0”“DESC-0”)
(RenAttrib“old_border”“DES-1”“DESC-1”)
(RenAttrib“old_border”“DES-2”“DESC-2”)
(RenAttrib“old_border”“DES-3”“DESC-3”)
(RenAttrib“old_border”“DES-4”“DESC-4”)
-清除
A.
*
N
-清除
A.
*
N
-清除
A.
*
N
-清除
A.
*
N
-重命名
B
old_边框
新建_边框
-插入
new\u border=C:\mike\autocad\RenAttrib\new\u border。图纸
25,0
1.
attsync n new_边框
附件1
属性1
雷纳特里卜。lsp Tharwat的lisp有效,但它删除了属性标记“BY-0”和“DATE-0”的值。这可能与对齐或宽度因子有关吗?
也失去了“04-18-90”值。
页:
[1]
2