明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1996|回复: 4

把图内所有的块名都改为大写

[复制链接]
发表于 2007-2-14 22:59:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-2-14 23:00:45 编辑

把图内所有的块名都改为大写,后来发现这个功能太局限了,我想把指定的几个块名如 Gtjh Duant acfgw hhK不改请问又改怎么处理呢?
  1. (DEFUN C:kdx(/ BName1 BName2 ENT I i0 BName ENT ss)
  2.    (setq ss (ssget "x"(list (cons 0  "INSERT"))));
  3.    (IF  (/= SS NIL)
  4.     (PROGN
  5.     (SETQ I -1)
  6.     (setq n (if ss (sslength ss) 0))
  7.     (REPEAT n            
  8.            (SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I)))))
  9.            (setq BName (cdr (assoc 2 ENT)))
  10.            (setq BName1 (strcase BName))
  11.            (setq BName2 (strcat BName1 "d"))
  12.            (command "rename" "b" BName BName2)
  13.            (command "rename" "b" BName2 BName1)
  14.            (ENTMOD ENT)
  15.            (setq i0 (+ i 1))
  16.            (print i0)
  17.     )
  18.    )
  19.     (PRINC "\n 图形内没有块!")
  20.    )
  21.    (PRINC)
  22. )
发表于 2007-2-16 12:49:00 | 显示全部楼层
;;By LUCAS
(defun C:KDX (/ BLOCKS NAME)
  (setq BLOCKS (vla-get-blocks
   (vla-get-activedocument (vlax-get-acad-object))
        )
  )
  (vlax-for BLK BLOCKS
    (if (not (wcmatch (setq NAME (strcase (vla-get-name BLK)))
        "*'**,*|*,GTJH,DUANT,ACFGW,HHK"
      )
 )
      (vla-put-name BLK NAME)
    )
  )
  (princ)
)
 楼主| 发表于 2007-2-16 13:53:00 | 显示全部楼层
谢谢龙龙仔,新年快乐!
发表于 2012-11-11 16:49:20 | 显示全部楼层
龙龙仔 发表于 2007-2-16 12:49
;;By LUCAS(defun C:KDX (/ BLOCKS NAME)  (setq BLOCKS (vla-get-blocks   (vla-get- ...

这个程序有个问题,就是经常在当前图形里面会有外部参照的文件,外部参照文件没卸载的话,用这个程序会出现错误。错误提示是:“Automation 错误。 输入无效”
发表于 2012-11-11 20:45:27 | 显示全部楼层
本帖最后由 toproc 于 2012-11-11 20:50 编辑
  1. (defun C:KDX ()
  2.   (setq        BLOCKS (vla-get-blocks
  3.                  (vla-get-activedocument (vlax-get-acad-object))
  4.                )
  5.   )
  6.   (vlax-for BLK        BLOCKS
  7.     (if        (and (not (wcmatch (setq NAME (strcase (vla-get-name BLK)))
  8.                            "*'**,*|*"
  9.                   )
  10.              )
  11.              (/= (vla-get-IsXRef BLK) :vlax-true)
  12.         )
  13.       (vla-put-name BLK NAME)
  14.     )
  15.   )
  16.   (princ)
  17. )

代码修改了下,增加判断块是否是外部参照块。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-5 08:27 , Processed in 0.159874 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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