明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 21976|回复: 163

[源码] 选择的部分块更名

    [复制链接]
发表于 2015-6-13 09:44 | 显示全部楼层 |阅读模式
;;对于选择的部分块更名,在实际中是很有用的。
;;http://bbs.mjtd.com/forum.php?mo ... gest%3D1&page=3
;;以上alin 版主修改块程序,我一直使用到如今,在此表示感谢!!!
;;由于是vla写成的,我表示看不懂,纯粹拿来主义。
;;但是纯lisp能不能写成呢?
;;在明经和晓东,国内两个顶级论坛上,我从未看到过。因此,下面的程序是首创
;;基于我在峨嵋山修练过的功底和近年来的不断打坐冥想(真事儿),觉得是可能的,不信请看
;;定义一个新块
(defun _BlockNewName (oldName NewName)
  (setq e (TBLOBJNAME "block" oldName))
  (while e
    (setq en (entget e))
    (cond
      ((assoc 2 en) (entmake (subst (cons 2 NewName) (assoc 2 en) en)))
      (T (entmake en))
    )
    (setq e (entnext e))
  )
  (entmake '((0 . "ENDBLK")));定义块尾
)
;;2015.6.13 By 自贡黄明儒
(defun C:PartBlockRename (/ EN N NEWNAME OLDNAME SS)
  (cond
    ((and (setq ss (ssget '((0 . "INSERT"))))
          (setq NewName (getstring "\n 输入新块名"))
          (/= NewName "")
     )
     (setq oldName (cdr (assoc 2 (entget (ssname ss 0)))))
     (_BlockNewName oldName NewName)
     (repeat
       (setq n (sslength ss))
        (setq en (entget (ssname ss (setq n (1- n)))))
        (entmod (subst (cons 2 NewName) (assoc 2 en) en))
     )
    )
  )
  (princ)
)

评分

参与人数 1明经币 +1 收起 理由
ferious + 1 很给力!峨眉道长请收下

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-8-31 13:08 | 显示全部楼层
本帖最后由 adc 于 2015-8-31 13:13 编辑

(defun c:dkgm (/ e en j new old ss)
  (defun dxf (a b) (cdr (assoc a b)))
  (command "undo" "group")
  (if
    (and (setq ss (ssget '((0 . "INSERT"))))
         (setq new (getstring "\n输入的块新名称:"))
         (not (tblsearch "block" new))
    )
     (progn (setq old (dxf 2 (entget (ssname ss 0))))
            (command "-insert" old '(0 0) "1" "1" 0)
            (command "explode" (entlast))
            (command "-block" new '(0 0) "P" "")
            (setq j 0)
            (repeat (sslength ss)
              (setq e  (ssname ss j)
                    en (entget
                         e
                       )
                    en (subst (cons 2 new) (assoc 2 en) en)
              )
              (entmod en)
              (setq j (1+ j))
            )
     )
  )
  (command "undo" "end")
  (princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2019-7-26 17:57 | 显示全部楼层
经测试,好像不支持动态块嘛!一直想实现动态块和属性块的单独改名。
发表于 2019-7-27 10:54 | 显示全部楼层
收藏留着慢慢看,谢谢楼主
发表于 2015-6-13 09:55 | 显示全部楼层
黄老师你好! 部分块更名,实用的程序感谢分享!
发表于 2015-6-13 09:56 | 显示全部楼层
大师,加油
发表于 2015-6-13 10:09 | 显示全部楼层
黄老师你好! 程序对于块中含块的有问题喔?

点评

emk
测试,块中有块的会不修改块名  发表于 2015-6-14 09:18
有什么问题???  发表于 2015-6-13 10:49
发表于 2015-6-13 10:22 来自手机 | 显示全部楼层
不明觉厉
发表于 2015-6-13 10:24 | 显示全部楼层
黄大师,请坚持
发表于 2015-6-13 10:37 | 显示全部楼层
黄大师又耐不住寂寞啦
发表于 2015-6-13 10:42 | 显示全部楼层
謝謝你的源碼分享。
发表于 2015-6-13 11:15 | 显示全部楼层

謝謝你的源碼分享
发表于 2015-6-13 11:49 | 显示全部楼层
看看黄老师高见
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 12:47 , Processed in 0.173683 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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