blackfire 发表于 2012-11-22 17:16:45

匿名块如何编辑(块名*u)

请问:匿名块如何编辑(块名*u),不想炸开!

【KAIXIN】 发表于 2012-11-22 18:07:11

;(改块名)无名转有名
(defun C:XX (/ obj bkn)
(KX-COMA)
(KX-princA "(改块名)无名转有名")
(setq obj (KX-E2O (car (entsel "\n-->请点选块: "))));转为VLA对象
(setq bkn (KX-str 1 "块名" bkn nil nil))
(KX-Wm2Insert obj bkn);改块名
(KX-COMB)
)

【KAIXIN】 发表于 2012-11-22 18:10:29

;(改块名)无名转有名作者:【KAIXIN】,QQ:295963716
;本程序需要KAIXIN通用函数的支持
(defun C:XX (/ obj bkn)
(KX-COMA)
(KX-princA "(改块名)无名转有名")
(setq obj (KX-E2O (CAR (KX-Get-Entsel '((0 . "INSERT")(2 . "`**")) "无名块"))));转为VLA对象
(setq bkn (KX-str 1 "块名" bkn nil nil))
(KX-Wm2Insert obj bkn);改块名
(KX-COMB)
)

USER2128 发表于 2012-11-22 19:42:32

给你一个编程思路:
1、记录最后实体,如(setq g:last-ent (entlast));
2、记录块信息,如该块所在层等;
3、炸开该块;
4、加入、删减、编辑其中的实体;
5、收集 g:last-ent 之后的所有实体;
6、用造无名块程序将收集实体制成无名块;
7、还原该新建的无名块所处的层等信息;

blackfire 发表于 2012-11-23 02:23:33

谢谢,网上找了一段lisp代码,完美解决该问题

mokson 发表于 2012-11-23 09:15:59

真是高手,望而生畏。
页: [1]
查看完整版本: 匿名块如何编辑(块名*u)