有限炸掉多重块程序
一大堆块由多层块嵌套而成,用这个程序去炸,如果炸掉之后,产生的一些块由非块图元组成,对这种块就不炸,而继续炸那些多重块,直到所有的块都为由非块图元组成的块为止 (defun c:xxx (/ explodex blk_name ss i ent ent1);炸开嵌套块成单个实体组成块(defun explodex (ents / ent ss i)
(command "_.explode" ents)
(setq ss (ssget "P"))
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i))
(if (= "INSERT" (cdr (assoc 0 (entget ent))))
(progn
(setq blk_name (cdr (assoc 2 (entget ent))))
(setq ent1 (cdr (assoc -2 (tblsearch "block" blk_name))))
(while (and ent1
(= "INSERT" (cdr (assoc 0 (entget ent1))))
)
(setq ent1 (entnext ent1))
(explodex ent)
)
)
)
(setq i (1+ i))
)
)
(setq ss (ssget))
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i))
(if (= "INSERT" (cdr (assoc 0 (entget ent))))
(progn
(setq blk_name (cdr (assoc 2 (entget ent))))
(setq ent1 (cdr (assoc -2 (tblsearch "block" blk_name))))
(while (and ent1
(= "INSERT" (cdr (assoc 0 (entget ent1))))
)
(setq ent1 (entnext ent1))
(explodex ent)
)
)
)
(setq i (1+ i))
)
) 此类问题,建议楼主提供调试用样本(依可能状况列举)
程序以通过样本为准 ....
若您都想像不出可能会遇上什么样的状况,未可寄望程序人员补漏 补上示例,请大家帮着编一下 经过验证符合要求,怎么把明经币给你呀? 3楼的试了一下很不错的样子哦 byghbcx 发表于 2011-8-23 17:22 static/image/common/back.gif
(defun c:xxx (/ explodex blk_name ss i ent ent1);炸开嵌套块成单个实体组成块
(defun explodex (ents ...
一直需要这个功能,又不好表达出来让人家听懂,谢谢 楼主这个可以用吗 byghbcx 发表于 2011-8-23 17:22
(defun c:xxx (/ explodex blk_name ss i ent ent1);炸开嵌套块成单个实体组成块
(defun explodex (ents ...
炸无名块可以吗
页:
[1]