明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3982|回复: 8

有限炸掉多重块程序

[复制链接]
发表于 2011-8-23 16:02:57 | 显示全部楼层 |阅读模式
一大堆块由多层块嵌套而成,用这个程序去炸,如果炸掉之后,产生的一些块由非块图元组成,对这种块就不炸,而继续炸那些多重块,直到所有的块都为由非块图元组成的块为止
发表于 2011-8-23 17:22:08 | 显示全部楼层
(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))
  )
)
回复 支持 1 反对 0

使用道具 举报

发表于 2011-8-23 16:49:37 | 显示全部楼层
此类问题,建议楼主提供调试用样本(依可能状况列举)
程序以通过样本为准 ....
若您都想像不出可能会遇上什么样的状况,未可寄望程序人员补漏
 楼主| 发表于 2011-8-23 17:12:37 | 显示全部楼层
补上示例,请大家帮着编一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2011-8-24 08:49:35 | 显示全部楼层
经过验证符合要求,怎么把明经币给你呀?

点评

如果byghbcx没按回答问题答题,就用评分吧  发表于 2012-4-15 09:56
发表于 2011-11-18 11:21:15 | 显示全部楼层
3楼的试了一下很不错的样子哦
发表于 2012-4-11 14:45:48 | 显示全部楼层
byghbcx 发表于 2011-8-23 17:22
(defun c:xxx (/ explodex blk_name ss i ent ent1);炸开嵌套块成单个实体组成块
  (defun explodex (ents ...

一直需要这个功能,又不好表达出来让人家听懂,谢谢
发表于 2024-3-7 17:13:59 | 显示全部楼层
楼主这个可以用吗
发表于 2024-3-7 17:15:34 | 显示全部楼层
byghbcx 发表于 2011-8-23 17:22
(defun c:xxx (/ explodex blk_name ss i ent ent1);炸开嵌套块成单个实体组成块
  (defun explodex (ents ...

炸无名块可以吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 22:55 , Processed in 0.192688 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表