找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1177|回复: 2

[LISP程序]:复选修正图块名称

[复制链接]
发表于 2007-4-6 07:37:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
引用
作者:highflybir  
來源:http://www.mjtd.com/Codes/ArticleShow.asp?ArticleID=1191
程序


[PHP]
;;;改块名程序
(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)
   (PROGN
    (PRINC "\n 和现有图块名重复!")
    (IF
     (= (SETQ KEY (KEY_NAME_YN "CHANG_BLACK_YN" "是否更换图块名!"))
        "Y"
     )
     (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 "\"")
     )
    )
   )
   (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所选物体不是块!")
)
)

(defun c:LOK ( /  entnam i newnam ss)
(prompt "\n**<用途:更新图块名称.1>**")
(vl-load-com)
(setq *APP (vlax-get-acad-object))
(setq *DOC (vla-get-activeDocument *APP))
(SETQ NewNam (GETSTRING "\n请输入新块名:"))
(setq ss (ssget '((0 . "INSERT"))))
(SETQ i 0)
(REPEAT        (SSLENGTH ss)
(SETQ EntNam (SSNAME ss i))
(change-block-name EntNam NewNam)
(SETQ i (1+ I))
)
(prin1))

[/PHP]
使用命令 LOK
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8121个

财富等级: 富甲天下

发表于 2007-4-6 09:30:04 | 显示全部楼层
你这个程序是抄过来的吧。
http://www.mjtd.com/Codes/ArticleShow.asp?ArticleID=1191

  1. (prompt "在命令行中输入命令: CCC!")
  2. ;;;测试程序
  3. (defun C:ccc (/ *APP *DOC EntNam NewNam i l)
  4.   (vl-load-com)
  5.   (setq *APP (vlax-get-acad-object))
  6.   (setq *DOC (vla-get-activeDocument *APP))
  7.   ;;(vla-auditinfo *Doc :vlax-true)
  8.   (prompt "\n请选择块: ")
  9.   (if (setq SS (ssget '((0 . "INSERT"))))
  10.     (progn
  11.       (setq l (sslength ss))
  12.       (setq i 0)
  13.       (while (< i l)
  14.         (setq EntNam (ssname ss i))
  15.         (if (setq NewNam (getstring "\n请输入新块名<字符规范,不要重名>: "))
  16.           (change-block-name EntNam NewNam)
  17.           (princ "\n你没有输入新块名!")
  18.         )
  19.         (setq i (1+ i))
  20.       )
  21.     )
  22.     (princ "\n你没有选择块物体!")
  23.   )  
  24.   (princ)
  25. )
  26. ;;;改块名程序
  27. (defun change-block-name (EntNam NewNam / obj blocks BlkNam block)
  28.   (setq obj (vlax-ename->vla-object EntNam))
  29.   (setq blocks (vla-get-blocks *DOC))
  30.   (if (=(vla-get-objectname obj) "AcDbBlockReference")
  31.     (if (tblsearch "block" NewNam)
  32.       (princ "\n和已有块名重复!")
  33.       (progn
  34.         (setq BlkNam (vla-get-name obj))
  35.         (setq block  (vla-item blocks BlkNam))
  36.         (vla-put-name block NewNam)
  37.         (if (= (substr BlkNam 1 1) "*")
  38.           (progn
  39.             (princ "\n这是一个匿名块.")
  40.             (vla-auditinfo *Doc :vlax-true)
  41.             (vla-put-name block NewNam)
  42.           )
  43.         )
  44.         (princ "\n块名已经更改成"")
  45.         (princ NewNam)
  46.         (princ """)
  47.       )
  48.     )
  49.     (princ "\n所选物体不是块!")
  50.   )
  51. )

建议你引用时注明来源。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-6 12:10:08 | 显示全部楼层
不好意思下次会改进注明来源
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 09:57 , Processed in 0.358698 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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