vormittag
发表于 2012-6-15 16:29:57
图块替换需要那么长的代码么? 我这里有个简单点的,能保留原有块的大小、方向,只是属性块的属性没有考虑。
(defun rpblock(ename blockname / ell)
(setq ell (entget ename))
(setq ell (subst (cons 2 blockname) (assoc 2 ell) ell))
(entmod ell)
(entupd ename)
)
(defun c:kth( / ss i tename blockname ename)
(setq ss (ssget '((0 . "INSERT")))
i 0
);setq
(if ss
(progn
(princ "\n请选择块:")
(while (/= "INSERT" (cdr (assoc 0 (entget (setq tename (car (entsel)))))))
(princ "\n请选择块:")
)
(setq blockname (cdr (assoc 2 (entget tename))))
(repeat (sslength ss)
(setq ename (ssname ss i) i (+ 1 i))
(rpblock ename blockname)
)
)
)
(princ)
)
yjr111
发表于 2012-6-15 17:23:35
vormittag 发表于 2012-6-15 16:29 static/image/common/back.gif
图块替换需要那么长的代码么? 我这里有个简单点的,能保留原有块的大小、方向,只是属性块的属性没有考虑。
用下面附件试试看有没有区别?
Gu_xl
发表于 2012-6-15 23:52:52
yjr111 发表于 2012-6-15 17:23 static/image/common/back.gif
用下面附件试试看有没有区别?
一般来说,一个程序的核心处理代码,都不会很长!但是为了能处理所有能遇到的各种情况,错误处理代码要比核心处理代码长很多,甚至数十倍都不止!程序设计的难点也在于此!
fdb2007
发表于 2012-6-16 07:18:28
yjr111 发表于 2012-2-21 17:57 static/image/common/back.gif
看来这个需要的人还是蛮多的,现在把源码传上来吧
感谢分享,下载学习了
mp3_2004
发表于 2012-12-2 17:05:26
感谢版主大师的分享
ucuc2003
发表于 2013-6-15 11:26:22
yjr111 发表于 2012-2-22 16:45 static/image/common/back.gif
highflybird、ZZXXQQ、G版、飞版、C版、曹版等等才是大师,我仅仅是玩玩花拳绣腿而已,so,别叫我大师了
你现在已经很厉害了,支持严老大!哈哈
ucuc2003
发表于 2013-6-15 11:32:06
Gu_xl 发表于 2012-6-19 18:52 static/image/common/back.gif
一般来说,一个程序的核心处理代码,都不会很长!但是为了能处理所有能遇到的各种情况,错误处理代码要比 ...
G版点评说的很对
asd19400
发表于 2014-9-2 02:42:42
06cad,全图替换有问题,不是出错,而是点全图替换的时候闪的厉害
烟盒迷唇
发表于 2018-6-13 11:28:28
如果替换后的块能保持原有块的方向和角度就更好了
涛涛_1048
发表于 2018-12-20 14:06:35
要是能把DCL归并到LISP程序里就好了。