查找和替换自动化--N
大家好,我画的是一系列不同的部分,这些部分逐渐增加。我手动放置它们,并用1-1-K001这样的标签对它们进行编号,下一个将是1-1-K002。问题是,有时会插入一个部分,而所有后续部分都需要增加一个。我正在搜索一个Lisp程序,但没有找到一个这样做。最好有一个Lisp,它可以同时查找和替换所有50个部分,并将数字提高1位,或者可以引用一个excel文件,该文件在“查找值”列中有一个列表,后面有一个替换值列。
任何帮助都将不胜感激。
这里有一个类似的帖子:
http://www.cadtutor.net/forum/showthread.php?t=43306&highlight=INCREMENT 试试这个(当然是在图纸副本上):
(defun c:BumpUp (/ ELST ENT I NUM SEARCH SS STR)
(setq search "1-1-K*")
(if (setq i -1 ss (ssget "_X" '((0 . "TEXT,MTEXT"))))
(while (setq ent (ssname ss (setq i (1+ i))))
(if (wcmatch
(strcase
(setq str
(cdr (assoc 1 (setq eLst (entget ent))))))
(strcase search))
(progn
(if (setq num (atoi (substr str 6)))
(progn
(setq num (itoa (1+ num)))
(while (< (strlen num) 3)
(setq num (strcat "0" num)))
(entmod
(subst
(cons 1 (strcat (substr str 1 (- (strlen str) 3)) num))
(assoc 1 eLst) eLst))))))))
(princ))
非常感谢。
您发布的Lisp可以完美地增加整个图形的数字。如果我需要有选择地去做,我该怎么做呢。例如,在1-1-K035处插入零件,我只需要放大1-1-K035及以上的零件。数字也是增强属性的一部分。上面的lisp似乎只适用于文本。
谢谢 试试这个:
(defun c:BumpUp (/ ELST ENT I NUM SEARCH SS STR)
(setq search "1-1-K*")
(if (setq i -1 ss (ssget "_:L" '((-4 . "<OR")
(0 . "TEXT,MTEXT")
(-4 . "<AND")
(0 . "INSERT")
(66 . 1)
(-4 . "AND>")
(-4 . "OR>"))))
(while (setq ent (ssname ss (setq i (1+ i))))
(cond ((eq "INSERT" (cdr (assoc 0 (entget ent))))
(while (not (eq "SEQEND"
(cdr (assoc 0 (entget
(setq ent
(entnext ent)))))))
(if (wcmatch
(strcase
(setq str
(cdr (assoc 1 (setq eLst (entget ent))))))
(strcase search))
(if (setq num (atoi (substr str 6)))
(progn
(setq num (itoa (1+ num)))
(while (< (strlen num) 3)
(setq num (strcat "0" num)))
(entupd
(cdr (assoc -1
(entmod
(subst
(cons 1 (strcat
(substr str 1
(- (strlen str) 3)) num))
(assoc 1 eLst) eLst))))))))))
(t (if (wcmatch
(strcase
(setq str
(cdr (assoc 1 (setq eLst (entget ent))))))
(strcase search))
(if (setq num (atoi (substr str 6)))
(progn
(setq num (itoa (1+ num)))
(while (< (strlen num) 3)
(setq num (strcat "0" num)))
(entupd
(cdr (assoc -1
(entmod
(subst
(cons 1 (strcat (substr str 1 (- (strlen str) 3)) num))
(assoc 1 eLst) eLst))))))))))))
(princ))
伙计,这真是太好了。非常感谢你。
我会尽我所能支持该网站。
不客气,Jamathi,谢谢
页:
[1]