明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10563|回复: 68

[源码] 图块重命名(支持天正图块、动态块)

    [复制链接]
发表于 2019-1-1 14:07 | 显示全部楼层 |阅读模式
本帖最后由 G〆h 于 2020-3-17 17:40 编辑

牛顿曾说:我看得远,是因为我站在巨人的肩膀上!借用并改进了别人的源码,让它更方便点。

功能说明:
1.通过点选所在图层上的某个对象来修改图层名   EN

2.对图块批量改名 BN

3.改进了单独块改名会失去动态块的功能 BN

4.改进了单独块改名会失去属性块的功能 BN

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-1-2 19:17 | 显示全部楼层
可以增加选项,改单块或全部同名块吗
回复 支持 2 反对 0

使用道具 举报

发表于 2024-1-10 16:03 | 显示全部楼层
单独撷取块,局部修改,支援动态块,光是这样我就觉得很好用了,感谢分享!
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-2-5 20:28 | 显示全部楼层
;;==============改名复制=================
(defun c:BC (/ E EL OBJ NAME BLOCKS DOC BLKDEFSRC OBJS BLKDEF orign)  (if (and (setq e (car (entsel "\n选择图块:")))
           (setq el (entget e))
           (= "INSERT" (cdr (assoc 0 el)))
           (setq obj (vlax-ename->vla-object e))
           (setq name (getstring "\n新块名称:"))
           (/= "" name)
      )
    (progn (setq blocks           (vla-get-blocks
                             (setq
                               doc (vla-get-ActiveDocument (vlax-get-acad-object))
                             )
                           )
                 blkdefSrc (vla-item blocks (cdr (assoc 2 el)))
                 orign (vla-get-Origin blkdefSrc)
           )
           (vlax-for o blkdefSrc (setq objs (cons o objs)))
           (if (VL-CATCH-ALL-ERROR-P
                 (setq
                   blkdef (VL-CATCH-ALL-APPLY 'vla-item (list blocks name))
                 )
               )
             (setq blkdef (vla-add blocks orign name))
             (vlax-for o blkdef (vla-delete o))
           )
           (vla-CopyObjects
             doc
             (vlax-safearray-fill
               (vlax-make-safearray
                 vlax-vbObject
                 (cons 0 (1- (length objs)))
               )
               objs
             )
             blkdef
           )
           (vla-InsertBlock
             (vla-get-ModelSpace doc)
             (vla-get-InsertionPoint obj)
             name
             (vla-get-XScaleFactor obj)
             (vla-get-YScaleFactor obj)
             (vla-get-ZScaleFactor obj)
             (vla-get-Rotation obj)
           )
           (vla-delete obj)
    )
  )
  (princ)
)

;先放上块的改名复制,等有时间再改成对话框的方式
 楼主| 发表于 2019-1-1 14:28 | 显示全部楼层
file:///C:/Users/Administrator/Desktop/%E5%9D%97%E9%87%8D%E5%91%BD%E5%90%8D.gif 第一次发贴,顶一下[img][/img]

本帖子中包含更多资源

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

x
发表于 2019-1-2 11:42 | 显示全部楼层
对于无名块,也可以重命名的吧?
发表于 2019-1-2 11:59 | 显示全部楼层
感觉用途不太大
发表于 2019-1-2 17:23 | 显示全部楼层
挺不错,挺实用的,认为用处不大的,那是因为你没需求
我之前需要这个程序
发表于 2019-1-3 10:31 | 显示全部楼层
谢谢支持下!研究下
 楼主| 发表于 2019-1-3 15:09 | 显示全部楼层
逍遥天下 发表于 2019-1-2 19:17
可以增加选项,改单块或全部同名块吗

只要是同一块,改的话一起变啊!你的意思是让当前块变成独立块,其它块名不变吗?
发表于 2019-1-4 08:38 | 显示全部楼层
试用一下效果看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-24 13:22 , Processed in 5.794951 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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