对块重新编号?
有人有口齿不清可以用来按顺序重新编号块吗?我有一大堆网格引用,作为属性插入,从1开始,到76结束,我需要按顺序重新编号。
为任何帮助干杯。
**** Hidden Message ***** 这是我写的一个旧的,用于读取多个块,但欢迎您根据需要进行修改和更新。
我可以给你我的新工具,但它是更大程序的一部分,所以会更困难。
用法:
它要求一个参考块(需要具有正确的数字值),然后您根据需要选择每个块重新编号。当您选择一个块时,数量会增加一个。
HTH,
(vl-load-com)
(defun att (atts / num)
(foreach for-item (vlax-safearray->list
(vlax-variant-value
(vla-getattributes
(vlax-ename->vla-object atts)
)
)
)
(cond ((or (= (vla-get-tagstring for-item) "ROOM#")
(= (vla-get-tagstring for-item) "DOOR#")
(= (vla-get-tagstring for-item) "240-DOOR#")
(= (vla-get-tagstring for-item) "999")
(= (vla-get-tagstring for-item) "1")
)
(setq num (vla-get-textstring for-item))
)
)
)
num
)
(defun attup (atts num)
(foreach for-item (vlax-safearray->list
(vlax-variant-value
(vla-getattributes
(vlax-ename->vla-object atts)
)
)
)
(cond ((or (= (vla-get-tagstring for-item) "ROOM#")
(= (vla-get-tagstring for-item) "DOOR#")
(= (vla-get-tagstring for-item) "240-DOOR#")
(= (vla-get-tagstring for-item) "999")
(= (vla-get-tagstring for-item) "1")
)
(vla-put-textstring for-item num)
)
)
)
(vla-update (vlax-ename->vla-object atts))
)
(defun c:numinc (/ ent sel cnt)
(setq ent (car (entsel "\nSelect reference block:")))
(cond ((not ent) (princ "\nNothing selected.*INVALID*"))
(T (setq cnt (att ent)))
)
(while ent
(setvar "ErrNo" 0)
(cond
((not
(setq sel (car (entsel "\nSelect attribute to update:")))
)
(if (/= 52 (getvar "ErrNo"))
(princ "\nNo object selected, please try again: ")
(progn
(princ "\nRight click detected - Terminate program. ")
(setq ent nil)
)
)
)
(T (attup sel (itoa (1+ (atoi cnt)))))
)
)
(princ)
)
非常感谢,我修改了它,它工作得很好。
页:
[1]