highflybir 发表于 2007-2-6 09:35:00

【飞鸟集】一个通用的更改块名的程序!

一个更改块名的程序.能针对匿名块!
(prompt "在命令行中输入命令: CCC!")
;;;测试程序
(defun C:ccc (/ *APP *DOC EntNam NewNam)
(vl-load-com)
(setq *APP (vlax-get-acad-object))
(setq *DOC (vla-get-activeDocument *APP))
(if (setq EntNam (car (entsel "\n请选择块: ")))
    (if (setq NewNam (getstring "\n请输入新块名<字符规范,不要重名>: "))
      (change-block-name EntNam NewNam)
      (princ "\n你没有输入新块名!")
    )
    (princ "\n你没有选择物体!")
)
(princ)
)
;;;改块名程序
(defun change-block-name (EntNam NewNam / obj blocks BlkNam block)
(setq obj (vlax-ename->vla-object EntNam))
(setq blocks (vla-get-blocks *DOC))
(if (=(vla-get-objectname obj) "AcDbBlockReference")
    (if (tblsearch "block" NewNam)
      (princ "\n和已有块名重复!")
      (progn
      (setq BlkNam (vla-get-name obj))
      (setq block(vla-item blocks BlkNam))
      (vla-put-name block NewNam)
      (if (= (substr BlkNam 1 2) "*U")
          (progn
            (princ "\n这是一个匿名块.")
            (vla-auditinfo *Doc :vlax-true)
            (vla-put-name block NewNam)
          )
      )
      (princ "\n块名已经更改成\"")
      (princ NewNam)
      (princ "\"")
      )
    )
    (princ "\n所选物体不是块!")
)
)

orange_uo1be 发表于 2019-12-2 20:15:29

zheng209 发表于 2014-7-10 21:53
一个块复制几个,改其中一个的块名,其它的也会跟着改,有什么办公不让其它的也改呢

复制块到一个新文件,修改块名后再复制回去即可

Nico 发表于 2018-1-12 19:22:33

zheng209 发表于 2014-7-10 21:53
一个块复制几个,改其中一个的块名,其它的也会跟着改,有什么办公不让其它的也改呢

炸开再重组成块

GILES.LEI 发表于 2016-9-30 16:35:08

动作块改名不还没完善,只是生成一个普通块改名,原来的动作块还在,而且没有改得名字

Ea 发表于 2007-2-6 09:47:00

命令: -rename 输入要重命名的对象类型<br/>[块(B)/标注样式(D)/图层(LA)/线型(LT)/材质(M)/样式(S)/表格样式(T)/UCS(U)/视图(VI)/视口(VP)]: b<br/><br/>输入旧块名: 1<br/><br/>输入旧块名: *取消*

highflybir 发表于 2007-2-6 13:17:00

本帖最后由 作者 于 2007-2-6 13:23:30 编辑 <br /><br /> <p>To <font face="Verdana" color="#da2549"><strong>Ea</strong><font color="#000000">:</font></font></p><p><font face="Verdana">&nbsp; 谢谢Ea!并非我不知道有个rename命令,我这个程序是与rename不同的。</font></p><p><font face="Verdana">&nbsp; 它可以改无名块的块名,可以不用对话框而直接选择改块名,比用rename方便。</font></p><p><font face="Verdana">&nbsp; 关于对匿名块的具体讨论,可以参见:</font></p><p><a href="http://www.mjtd.com/BBS/dispbbs.asp?boardid=3&amp;replyid=94752&amp;id=9545&amp;page=1&amp;skin=0&amp;Star=2">http://www.mjtd.com/BBS/dispbbs.asp?boardid=3&amp;replyid=94752&amp;id=9545&amp;page=1&amp;skin=0&amp;Star=2</a></p><p><a href="http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=519029&amp;perpage=15&amp;display=&amp;pagenumber=1">http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=519029&amp;perpage=15&amp;display=&amp;pagenumber=1</a></p><p><a href="http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=143804&amp;perpage=15&amp;display=&amp;pagenumber=1">http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=143804&amp;perpage=15&amp;display=&amp;pagenumber=1</a></p><p></p><p></p><p></p><br/>

chamous 发表于 2007-2-7 20:46:00

加载后输入CCC,显示"未知命令",是我的CAD安装有问题吗,还请楼主给予解答一下,小弟在此谢谢!

qly007 发表于 2007-2-9 18:45:00

刚才下载试用了,相当的不错,我是刚开始学习AutoLisp的,想用楼主的来分析做为学习的样本。谢谢你!

tcsl9621 发表于 2007-2-14 23:25:00

我也编过这种程序,只是我只将块名加后缀使其与其它图中的块不重名。

longer1000 发表于 2011-11-23 14:35:42

tcsl9621 发表于 2007-2-14 23:25 static/image/common/back.gif
我也编过这种程序,只是我只将块名加后缀使其与其它图中的块不重名。

麻烦兄弟将图块加后缀的程序传我一份,邮箱longer1000@sina.com

谢谢

还是永不在线吧 发表于 2013-11-27 23:14:20

这个程序号,找了好久了,一堆的随机名字的块终于有救了

tester005 发表于 2014-3-26 22:58:37

不错 不错很不错

zheng209 发表于 2014-7-10 21:53:36

一个块复制几个,改其中一个的块名,其它的也会跟着改,有什么办公不让其它的也改呢
页: [1] 2
查看完整版本: 【飞鸟集】一个通用的更改块名的程序!