自贡黄明儒 发表于 2022-11-5 13:38:41

将"块b2"按照"块b1"模样改造

本帖最后由 自贡黄明儒 于 2022-11-6 09:55 编辑

;;格式刷MA的改进,当选择块时,执行Maa效果

;;1 将"块b2"按照"块b1"模样改造,从此"块b1"有两个名字,"块b1"和"块b2"
(defun maa (NAME OLDNAME / E0 E1)
(setq e1 (TBLOBJNAME "block" name))
(setq e0 (TBLOBJNAME "block" oldname))
;;重新定义e1
(entmake (entget e1))
(while (setq e0 (entnext e0))
    (entmake (entget e0))
)
(entmake '((0 . "ENDBLK")))
;;;;;更新显示
;;;(setq      s (ssget "X"
;;;               (list '(0 . "INSERT")
;;;                     '(100 . "AcDbBlockReference")
;;;                     (cons 2 name)
;;;               )
;;;          )
;;;)
;;;(repeat (setq n (sslength s))
;;;    (entupd (ssname s (setq n (1- N))))
;;;)
)

(defun C:maa (/ NAME OLDNAME)
(setq oldname (cdr (assoc 2 (entget (car (entsel "\n 源块"))))))
(setq name (cdr (assoc 2 (entget (car (entsel "\n 被改变的块"))))))
(maa oldname name)
(princ)
)

;;2 如果只是将"块b2"按照"块b1"模样改造,"块b2"还是"块b2",慢简单一些
(defun C:maa1 (/ EN OLDNAME)
(setq oldname (cdr (assoc 2 (entget (car (entsel "\n 源块"))))))
(setq en (entget (car (entsel "\n 被改变的块"))))
(entmod (subst (cons 2 oldname)(assoc 2 en)en))
(princ)
)

vladimirputin 发表于 2023-2-13 14:26:29

非常不错的代码,谢谢楼主分享啊。

asbubble 发表于 2023-1-28 11:38:54


感谢黄大师分享,学习一下

海盗曹 发表于 2022-11-5 22:39:53

感谢黄大师分享,学习一下

guosheyang 发表于 2022-11-5 13:55:36

感谢黄大师共享!

lxl217114 发表于 2022-11-5 14:20:22

感谢黄大师共享!

没有昵称呀 发表于 2022-11-5 15:40:40


感谢黄大师共享!

myhomer 发表于 2022-11-5 21:49:36



感谢黄大师共享!

hzyhzjjzh 发表于 2022-11-6 12:58:49

感谢黄大师共享{:1_1:}

wzb233 发表于 2022-11-6 21:06:23

感谢大师分享知识~!

白色微風1991 发表于 2022-11-7 07:56:05


感謝黃大師共享!

tanshun_ysjkd 发表于 2022-11-7 09:04:12


感谢大师分享知识~!
页: [1] 2
查看完整版本: 将"块b2"按照"块b1"模样改造