[求助]炸开块中块,到块
<p>炸开块中块,到块</p><p>块中块,就是A块再被定义成B块,甚至B块再被定义成C块,有没有一个程序,可以把文件内所有块中块(B,C),炸开成A块</p> 还是不能用吗?求帮助 现在解决了吗 本帖最后由 作者 于 2007-10-5 10:36:22 编辑;; 这是炸开块选集的代码,给你参考一下。自己完善
(DEFUN c:xx (/ fil ss)
(setq fil '((0 . "INSERT")))
(setvar "qaflags" 1);;参数如要恢复,自己加代码
(command ".explode" (ssget fil) "")
(while (setq ss (ssget "p" fil))
(command ".explode" SS "")
)(PRINC)
)
最后再将炸开的做成 块 替换初始块<br/> <p>试验一下</p><p>感谢</p> <font face="Verdana" color="#da2549"><strong>无痕的程序试用了,程序是炸开块中块到图元,不是炸开块中块到块,</strong><font color="#000000">可不可以把文件内所有块中块(B,C),炸开成A块啊?</font></font> ;;编程可以实现,要多几行代码,偷懒了,sorry。
;;也可在原来基础上加(command ".u").只是效率没有那么高就是了:)
(DEFUN c:xx (/ fil ss)
(setq fil '((0 . "INSERT")))
(setvar "qaflags" 1);;参数如要恢复,自己加代码
(command ".explode" (ssget fil) "")
(while (setq ss (ssget "p" fil))
(command ".explode" SS "")
)
(command ".u");; 这里,倒回去一步
(PRINC)
)
<p>程序试用了,呵呵,<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/command.htm" target="_black"><font color="#0000ff">command</font></a>
<font color="#ff00ff">".u"</font><font color="#ff0000">)</font><font color="#800080">;; 是个好办法</font></p><p><font color="#800080">但是新的问题又出现了,如果一个块,和一个块中块,一起选中使用命令的话,块就要被炸开!老大,解决一下</font></p> <p>要避免炸开A块可以这样改</p><p>;;; (xx "A")</p><p>(DEFUN xx (blkname / fil ss)<br/> <strong>(setq fil (list (cons 0 "INSERT") (cons -4 "<NOT") (cons 2 blkname)(cons -4 "NOT>")))</strong><br/> (setvar "qaflags" 1)<br/> (command ".explode" (ssget fil) "")<br/> (while (setq ss (ssget "p" fil))<br/> (command ".explode" SS "")<br/> )<br/> (setvar "qaflags" 0)<br/> (PRINC)<br/>)</p> <p>程序试用了,仍然不能避免炸开A,我的CAD是2002</p> <p>可以把图传上来吗?</p>
页:
[1]
2