把图内所有的块名都改为大写
本帖最后由 作者 于 2007-2-14 23:00:45 编辑把图内所有的块名都改为大写,后来发现这个功能太局限了,我想把指定的几个块名如 Gtjh Duant acfgw hhK不改请问又改怎么处理呢?
(DEFUN C:kdx(/ BName1 BName2 ENT I i0 BName ENT ss)
(setq ss (ssget "x"(list (cons 0"INSERT"))));
(IF(/= SS NIL)
(PROGN
(SETQ I -1)
(setq n (if ss (sslength ss) 0))
(REPEAT n
(SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I)))))
(setq BName (cdr (assoc 2 ENT)))
(setq BName1 (strcase BName))
(setq BName2 (strcat BName1 "d"))
(command "rename" "b" BName BName2)
(command "rename" "b" BName2 BName1)
(ENTMOD ENT)
(setq i0 (+ i 1))
(print i0)
)
)
(PRINC "\n 图形内没有块!")
)
(PRINC)
)
;;By LUCAS<br/>(defun C:KDX (/ BLOCKS NAME)<br/> (setq BLOCKS (vla-get-blocks<br/> (vla-get-activedocument (vlax-get-acad-object))<br/> )<br/> )<br/> (vlax-for BLK BLOCKS<br/> (if (not (wcmatch (setq NAME (strcase (vla-get-name BLK)))<br/> "*'**,*|*,GTJH,DUANT,ACFGW,HHK"<br/> )<br/> )<br/> (vla-put-name BLK NAME)<br/> )<br/> )<br/> (princ)<br/>)<br/> 谢谢<strong><font face="Verdana" color="#da2549">龙龙仔,新年快乐!</font></strong> 龙龙仔 发表于 2007-2-16 12:49 static/image/common/back.gif
;;By LUCAS(defun C:KDX (/ BLOCKS NAME) (setq BLOCKS (vla-get-blocks (vla-get- ...
这个程序有个问题,就是经常在当前图形里面会有外部参照的文件,外部参照文件没卸载的话,用这个程序会出现错误。错误提示是:“Automation 错误。 输入无效” 本帖最后由 toproc 于 2012-11-11 20:50 编辑
(defun C:KDX ()
(setq BLOCKS (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
)
(vlax-for BLK BLOCKS
(if (and (not (wcmatch (setq NAME (strcase (vla-get-name BLK)))
"*'**,*|*"
)
)
(/= (vla-get-IsXRef BLK) :vlax-true)
)
(vla-put-name BLK NAME)
)
)
(princ)
)
代码修改了下,增加判断块是否是外部参照块。
页:
[1]