如何两个块互相替换
请教下大侠们,如何两个块互相替换,比如我有图块A,图块B,通过命令,点击A,B,图块A变为图块B,图块B变为图块A,这样可以实现么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)
) 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)
) magicheno 发表于 2020-5-22 11:25
就是闲move麻烦么,比如两个文字互换,CTRL+C和CTRL+V其实就可以了,通过命令一步就可以替换了
先把你的问题说清楚吧,两个块是怎样的块?形状什么样?换了后位置怎么定的?基点对齐?还是中点对齐?换的目的是啥?要批量换还是单独换?一堆不确定条件,感觉就是随便丢句话上来你们慢慢猜吧 还要考虑块属性,如果两个块有同名的属性,属性值也相应交换。 就用entmod,把两个块的插入点换一下吧。 贱人工具箱里面有这个功能,换块 ddqzmpaxlozc 发表于 2020-5-22 08:58
贱人工具箱里面有这个功能,换块
贱人工具箱里面没找到换块的功能哦 原地踏步 发表于 2020-5-22 08:55
就用entmod,把两个块的插入点换一下吧。
大侠,该怎么样操作呢 mikewolf2k 发表于 2020-5-22 08:39
还要考虑块属性,如果两个块有同名的属性,属性值也相应交换。
是的,大侠,该怎么样操作呢 两个块互换?move不就行了 start4444 发表于 2020-5-22 11:10
两个块互换?move不就行了
就是闲move麻烦么,比如两个文字互换,CTRL+C和CTRL+V其实就可以了,通过命令一步就可以替换了