magicheno 发表于 2020-5-22 01:13:46

如何两个块互相替换

请教下大侠们,如何两个块互相替换,比如我有图块A,图块B,通过命令,点击A,B,图块A变为图块B,图块B变为图块A,这样可以实现么

start4444 发表于 2020-5-26 11:59:52

lingduwx 发表于 2020-5-26 11:19
大侠你好,可否麻烦你修改一个完整的呢,就是可以单独点选替换,也可以框选一个区域内替换选定的类型块, ...

你这钻石会员真是的,手动框选我给你写出来了,全图选也是很简单的事,你自己去搞了
(defun c:tt5 (/ en en1 i p1 p2 ss)
(setq en1 (car (entsel "\n选择新快:")) p1 (cdr (assoc 10 (entget en1))))
(prompt "\n选择要替换的旧块:")
(setq ss (ssget '((0 . "INSERT"))))
(setq i -1)
        (while (setq en (ssname ss (setq i (1+ i))))
        (setq p2 (cdr (assoc 10 (entget en))))       
        (command "copy" en1 "" "non" p1"non" p2)       
        );while
(command "ERASE" ss "")       
(princ)
)

start4444 发表于 2020-5-22 14:13:17

magicheno 发表于 2020-5-22 11:56
不好意思大侠,表达不清了哈,基点对齐就可以的,能批量的话就更好的,类似这样的图块的

(defun c:tt5 ()
(setq en1 (car (entsel "\n选择块1:")) p1 (cdr (assoc 10 (entget en1))))
(setq en2 (car (entsel "\n选择块2:")) p2 (cdr (assoc 10 (entget en2))))
(command "move" en1 "" "non" p1"non" p2 "move" en2 "" "non" p2"non" p1)
)

start4444 发表于 2020-5-22 11:47:56

magicheno 发表于 2020-5-22 11:25
就是闲move麻烦么,比如两个文字互换,CTRL+C和CTRL+V其实就可以了,通过命令一步就可以替换了

先把你的问题说清楚吧,两个块是怎样的块?形状什么样?换了后位置怎么定的?基点对齐?还是中点对齐?换的目的是啥?要批量换还是单独换?一堆不确定条件,感觉就是随便丢句话上来你们慢慢猜吧

mikewolf2k 发表于 2020-5-22 08:39:29

还要考虑块属性,如果两个块有同名的属性,属性值也相应交换。

原地踏步 发表于 2020-5-22 08:55:26

就用entmod,把两个块的插入点换一下吧。

ddqzmpaxlozc 发表于 2020-5-22 08:58:46

贱人工具箱里面有这个功能,换块

magicheno 发表于 2020-5-22 10:49:29

ddqzmpaxlozc 发表于 2020-5-22 08:58
贱人工具箱里面有这个功能,换块

贱人工具箱里面没找到换块的功能哦

magicheno 发表于 2020-5-22 10:52:53

原地踏步 发表于 2020-5-22 08:55
就用entmod,把两个块的插入点换一下吧。

大侠,该怎么样操作呢

magicheno 发表于 2020-5-22 10:53:35

mikewolf2k 发表于 2020-5-22 08:39
还要考虑块属性,如果两个块有同名的属性,属性值也相应交换。

是的,大侠,该怎么样操作呢

start4444 发表于 2020-5-22 11:10:45

两个块互换?move不就行了

magicheno 发表于 2020-5-22 11:25:01

start4444 发表于 2020-5-22 11:10
两个块互换?move不就行了

就是闲move麻烦么,比如两个文字互换,CTRL+C和CTRL+V其实就可以了,通过命令一步就可以替换了
页: [1] 2 3
查看完整版本: 如何两个块互相替换