Lisphk 发表于 2018-11-22 13:20:37

炸开“嵌套块”,任意多层嵌套


(defun c:exnest ( / doc ent )
   (while
       (progn (setvar 'errno 0) (setq ent (car (entsel "\nSelect block: ")))
         (cond
               (   (= 7 (getvar 'errno))
                   (princ "\nMissed, try again.")
               )
               (   (null ent) nil)
               (   (/= "INSERT" (cdr (assoc 0 (entget ent))))
                   (princ "\nSelected object is not a block.")
               )
         )
       )
   )
   (if ent
       (progn
         (vlax-for obj
               (vla-item
                   (vla-get-blocks (setq doc (vla-get-activedocument (vlax-get-acad-object))))
                   (LM:name->effectivename (cdr (assoc 2 (entget ent))))
               )
               (exnest:explode obj)
         )
         (vla-regen doc acallviewports)
       )
   )
   (princ)
)
(defun exnest:explode ( obj / lst )
   (if
       (and
         (= "AcDbBlockReference" (vla-get-objectname obj))
         (vlax-write-enabled-p obj)
         (not (vl-catch-all-error-p (setq lst (vl-catch-all-apply 'vlax-invoke (list obj 'explode)))))
       )
       (progn
         (foreach obj lst (exnest:explode obj))
         (vla-deleteobj)
       )
   )
)

**** Hidden Message *****

lw5297590 发表于 2018-11-22 13:41:58

好东西,谢谢分享

yoyoho 发表于 2018-11-22 13:55:15

谢谢分享程序!!!!!!

819534890 发表于 2018-11-22 14:33:05

回复学习,谢谢

scnjlwb 发表于 2018-11-22 14:36:04

多谢分享!

liunian0524 发表于 2018-11-22 17:23:55

感谢楼主分享

qq2222081387 发表于 2018-11-22 17:26:29

{:2_26:}{:2_26:}{:2_26:}

434939575 发表于 2018-11-22 21:48:16

多谢分享,这个好使。

434939575 发表于 2018-11-22 21:55:10

本帖最后由 434939575 于 2018-11-22 21:57 编辑

炸不开多次重复插入不等比例块。

HLCAD 发表于 2018-11-23 11:44:12

拜读楼主的经典大作!

renyonghua2014 发表于 2018-11-23 12:54:50

这个非常好,谢谢提供。

sicky111 发表于 2018-11-23 13:06:31

看到了LM函数。

laiz3000 发表于 2018-11-24 18:04:40

{:1_1:}学习

huanchen 发表于 2018-11-28 09:25:54

拜读拜读大作

crtrccrt 发表于 2018-11-29 02:28:11

士士火电站起来没
页: [1] 2 3 4 5 6 7 8
查看完整版本: 炸开“嵌套块”,任意多层嵌套