明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1983|回复: 10

[源码] 【组装工】图块改名

  [复制链接]
发表于 2021-7-11 21:59:25 | 显示全部楼层 |阅读模式
本帖最后由 tigcat 于 2021-7-11 22:01 编辑

都是前辈的程序,拿来组装一下。分享给大家,可能有点用。
  1.           ;图块改名核心程序来自Highflybird
  2.           ;dcl2lsp来自zml84
  3.           ;程序仅作为学习交流使用,感谢各位明经前辈,各著作权归原作者所有,仅进行组装
  4.           ;202107112147修改,感谢各位。

  5. (prompt "在命令行中输入命令: tt4!")
  6. (defun dcl_kk ()
  7.   (setq  dcl_id
  8.    (load_dialog
  9.      (d1dcl)
  10.    )
  11.   )
  12.   (new_dialog "kk" dcl_id)    ;启动dia5a 对话框

  13.   (set_tile "blkname" (cdr (assoc 2 (entget entnam))))
  14.         
  15.   (action_tile "accept" "(ok_kk)(done_dialog 1)")
  16.   (mode_tile "blkname" 2)
  17.   (start_dialog)
  18. )
  19. (defun ok_kk ()
  20.   (setq blkname (get_tile "blkname"))

  21. )


  22. (defun C:tt4 (/ *APP *DOC EntNam NewNam blkname)
  23.   (vl-load-com)
  24.   (setq *APP (vlax-get-acad-object))
  25.   (setq *DOC (vla-get-activeDocument *APP))

  26.   (if (setq EntNam (car (entsel "\n请选择块: ")))
  27.     (if  (dcl_kk)
  28.       (progn
  29.   (setq newnam blkname)
  30.   (change-block-name EntNam NewNam)
  31.       )
  32.       (princ "\n你没有输入新块名!")
  33.     )
  34.     (princ "\n你没有选择实体!")
  35.   )
  36.   (princ)
  37. )
  38. ;;;改块名程序  
  39. (defun change-block-name (EntNam NewNam / obj blocks BlkNam block)
  40.   (setq obj (vlax-ename->vla-object EntNam))
  41.   (setq blocks (vla-get-blocks *DOC))
  42.   (if (= (vla-get-objectname obj) "AcDbBlockReference")
  43.     (if  (tblsearch "block" NewNam)
  44.       (alert "\n和已有块名重复!")
  45.       (progn
  46.   (setq BlkNam (vla-get-name obj))
  47.   (setq block (vla-item blocks BlkNam))
  48.   (vla-put-name block NewNam)
  49.   (if (= (substr BlkNam 1 2) "*U")
  50.     (progn
  51.       (princ "\n这是一个匿名块.")
  52.       (vla-auditinfo *Doc :vlax-true)
  53.       (vla-put-name block NewNam)
  54.     )
  55.   )
  56.   (princ "\n块名已经更改成"")
  57.   (princ NewNam)
  58.   (princ """)
  59.       )
  60.     )
  61.     (princ "\n所选物体不是块!")
  62.   )
  63. )

  64. (defun d1dcl (/ lst_str str file f)
  65.   (setq  lst_str  '("kk:dialog{\t//dia5a为dialog name"
  66.       "label="修改图块名称";//此对话框的总表头"
  67.       ":edit_box{\t//编辑框1"
  68.       "label="输入块的新名称";\t//编辑框提示标签"
  69.       "key="blkname";\t//key值=>DCL对象名称"
  70.       "edit_width=46;\t//编辑框输入区宽度"
  71.       "}"
  72.       ""
  73.       "ok_cancel;\t//确定与取消组合按钮"
  74.       "}\t//退出定义 dia5a"
  75.       ""
  76.      )
  77.   )
  78.   (setq file (vl-filename-mktemp "DclTemp.dcl"))
  79.   (setq f (open file "w"))
  80.   (foreach str lst_str
  81.     (princ "\n" f)
  82.     (princ str f)
  83.   )
  84.   (close f)
  85.   ;;返回
  86.   file
  87. )
  88. (prompt "\n*********<c:tt4>**********")
  89. (princ)



本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
start4444 + 1 赞一个!
USER2128 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-7-11 22:36:34 | 显示全部楼层
谢谢分享,下载备用
发表于 2021-7-12 08:44:08 | 显示全部楼层
大师呀,膜拜了。
发表于 2021-7-12 09:24:38 | 显示全部楼层
谢谢楼主分享。
 楼主| 发表于 2021-7-12 12:39:04 来自手机 | 显示全部楼层
我都是搬运大师程序
发表于 2021-7-16 10:42:06 | 显示全部楼层
谢谢楼主分享, 先收藏
发表于 2021-7-19 22:29:57 | 显示全部楼层
谢谢分享, 学习了
发表于 2023-9-4 12:26:25 | 显示全部楼层
比系统自带的方便多了,自带的还得记住名字
发表于 2023-10-25 08:10:02 | 显示全部楼层
謝謝分享,下載備用
发表于 2024-7-14 10:36:46 | 显示全部楼层
下载备用,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 11:25 , Processed in 0.173130 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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