块替换块的Lisp
本帖最后由 chpmould 于 2012-9-2 16:01 编辑 <br /><br /><P><FONT size=6>例如:选择块"A",然后选择块"B",</FONT><FONT size=6>结果将块"B"替换为块"A".</FONT></P><P><FONT size=6>谢谢!</FONT></P> 下回来参考 刚好能用到 <p>还是18楼的最耿直顶18楼</p> <p>有了吗?发出来共享一下吧</p> 难道没有吗? <p>可以实现,联系:ljttjl@ tom.com,</p> 本帖最后由 作者 于 2008-8-23 22:31:42 编辑
一般ljttjl不提供源码。
;选定块替换 明经 ZZXXQQ 2008.8.22
(defun c:cbt ()
(if (and (setq a (entsel "\nSelect a Block :"))
(setq ent (entget(car a)))
(= (cdr (assoc 0 ent)) "INSERT"))
(if (and (setq b (entsel "\nSelect a Block for change :"))
(setq ent1 (entget(car b)))
(= (cdr (assoc 0 ent)) "INSERT"))
(entmod (subst (assoc 2 ent) (assoc 2 ent1) ent1))
)
)
(princ)
)
<p>老大,好像有些问题哦</p><p> 命令: cbt</p><p>Select a Block :<br/>Select a Block for change :; 错误: DXF 组不正确: (2 (-1 . <图元名: 7ef03550>) (0 . <br/>"INSERT") (330 . <图元名: 7ef01cf8>) (5 . "18A") (100 . "AcDbEntity") (67 . 0) <br/>(410 . "Model") (8 . "0") (100 . "AcDbBlockReference") (2 . "A$C28A570E1") (10 <br/>17.5316 8.50516 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . <br/>0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))</p> 函数用错了。5楼已改。 <p>很好用,辛苦老大了,能否弄一个能在非当前视口中直接冻结当前图层的程序啊?</p><p></p> 谢谢楼上的源代码. 我看不到