yjr111 发表于 2012-2-18 20:36:32

等答案无聊写一个图块替换

本帖最后由 yjr111 于 2012-2-18 22:59 编辑

图块替换原来就有,想更方便一点,自己乱写了一个,看看对大家有没有用

按4楼的提议,增加图块尺寸变化选框,更新一下





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-2-21 17:57:43

看来这个需要的人还是蛮多的,现在把源码传上来吧



Gu_xl 发表于 2012-6-15 23:52:52

yjr111 发表于 2012-6-15 17:23 static/image/common/back.gif
用下面附件试试看有没有区别?

一般来说,一个程序的核心处理代码,都不会很长!但是为了能处理所有能遇到的各种情况,错误处理代码要比核心处理代码长很多,甚至数十倍都不止!程序设计的难点也在于此!

cxs259 发表于 2012-2-18 21:04:25

请问运行命令是什么?

669423907 发表于 2012-2-18 21:28:15

yjr111 大师总有好程序的

yjr111 发表于 2012-2-18 21:45:25

highflybird、ZZXXQQ、G版、飞版、C版、曹版等等才是大师,我仅仅是玩玩花拳绣腿而已,so,别叫我大师了

zsw23 发表于 2012-2-18 21:55:39

能不能控制大小一样呢?

teykmcqh 发表于 2012-2-18 23:01:13

有源码学习一下就好了

zsw23 发表于 2012-2-18 23:59:59

本帖最后由 zsw23 于 2012-2-19 00:01 编辑

看你演示并不是完全等同替换(大小和内容)你看看这个源码


zsw23 发表于 2012-2-19 11:47:43

整合进去那最好了,有没有无对话框的版本?

vlisp2012 发表于 2012-2-19 13:02:32

顶一个,希望楼主早日公布源码,学习一下。

ps122hb 发表于 2012-2-19 13:38:20

vlisp2012 发表于 2012-2-19 13:02 static/image/common/back.gif
顶一个,希望楼主早日公布源码,学习一下。

等源码学习一下
页: [1] 2 3 4 5
查看完整版本: 等答案无聊写一个图块替换