明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10659|回复: 104

[源码] 快速更改图块名

    [复制链接]
发表于 2015-6-5 19:44 | 显示全部楼层 |阅读模式
本帖最后由 荒野孤行 于 2015-6-7 09:53 编辑

在做某些项目衍生版时,因只有部分变更,所以直接复制原来的图进行了修改,但两份图档里面块的名称一样。将这两份图进行对比时,若直接复制到一份图档里,那么块会被同名块替换掉,故此写了此功能:直接给块名加前后缀。这样图块名就不会重名了,直接复制到另外的图里面对比就不会有块被替换的情况。好吧!又可以偷懒了。

此功能只针对不匿名的图块,若是要对匿名的图块有效,则需要重新修改,需用到vla-put-name

(defun c:t1 (/ ent)
  (setvar "osmode" 15359)
  (setvar "cmdecho" 0)
  (setvar "delobj" 1)
  (princ "\n请选取图块:")
  (setq ss (ssget '((0 . "INSERT"))))
  (if (not ss)
    (progn (princ "\n提示:未选取图块,程序退出") (exit))
  )
  (setq i 0)
  (setvar "qaflags" 1)
(command "undo" "be")
  (setq        num        (sslength ss)
        namlist        nil
        i        0
  )
  (princ (strcat "\n已选择了" (itoa num) "个块。"))
  (setq        frontnam
         (getstring "\n请输入要加入的前缀名[回车表示不修改]:")
  )
  (setq        backnam
         (getstring "\n请输入要加入的后缀名[回车表示不修改]:")
  )
  (repeat num
    (setq entdat  (entget (ssname ss i))
          entnam  (cdr (assoc 2 entdat))
          namlist (if (member entnam namlist)
                    namlist
                    (cons entnam namlist)
                  )
          i          (+ i 1)
    )
  )
  (if (and frontnam backnam)
    (progn
      (foreach mz namlist
        (progn
          (setq entna (strcat frontnam mz backnam))
          (command "rename" "b" mz entna)
        )
      )
      (alert "\n提示:图块名已更改完成。")
    )
    (alert "\n提示:未输入前缀名及后缀名,故不更改图块名。")
  )
  (command "undo" "e")
  (setvar "qaflags" 0)
  (princ)

)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 3明经币 +3 收起 理由
zhangcan0515 + 1 很给力!
ucuc2003 + 1 程序名字改为“批量给块名增加前后缀”合适.
zctao1966 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2019-5-29 13:59 | 显示全部楼层
本身图中有同名块怎么改成不同的块名加上1、2、3。。。。以示区别?
发表于 2019-6-15 22:50 | 显示全部楼层
楼主,能否增加一个选项,可以自动选择图中所有的块?
发表于 2022-11-29 09:45 | 显示全部楼层
工作常会用到的、、、、、
发表于 2024-3-26 09:14 | 显示全部楼层
不错呢~
感谢分享~
发表于 2022-11-25 21:22 | 显示全部楼层
谢谢你的分享
发表于 2022-11-25 14:44 | 显示全部楼层
來學習學習
发表于 2016-1-25 13:51 | 显示全部楼层
块内的块有没好办法
发表于 2016-1-24 16:21 | 显示全部楼层
针对不匿名的图块
发表于 2016-1-15 07:50 | 显示全部楼层
批量更改,块内的块有没好办法呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 05:44 , Processed in 0.343491 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表