 - (defun blkexp(blkref / adwg owner lst attrs atttextstr tmptext eblks )
-   ;首先把其中的可见的属性给分解成文字,然后炸开,然后删除获得的属性,并且重复运行,以便完全炸开镶嵌块--
-   (setq adwg(vlax-get (vlax-get-acad-object) 'Activedocument)
-     owner(vlax-get blkref 'ownerid)
-     owner(vlax-invoke adwg 'ObjectIDToObject owner)
-     lst '( "Alignment" "backward" "color"  "layer"  "linetypescale" "linetype"  "lineweight"
-           "obliqueangle"  "Rotation" "ScaleFactor" "StyleName" "TextAlignmentPoint" "Thickness" "upsidedown"))
-   (if (eq (vlax-get blkref 'hasattributes) -1)
-     (progn
-       (setq attrs(vlax-invoke blkref 'getattributes))
-       (mapcar '(lambda(x)(if (and (not (eq -1 (vlax-get x 'invisible)));可见属性
-                   (not (eq "" (setq atttextstr(vlax-get x 'textstring)))));属性值非""
-                (progn
-                  (setq tmptext(vlax-invoke owner 'AddText atttextstr (vlax-get x 'insertionpoint)
-                                                              (vlax-get x 'height)))
-                  (mapcar '(lambda(y)(setq y(read y))(vlax-put tmptext y (vlax-get x y))) lst)
-                )
-                ))attrs)
-     )
-   )
-   ;上面把属性改成了文字,下面就是炸开块了~~~~~
-   (setq eblks(vlax-invoke blkref 'explode))
-   (mapcar '(lambda(x)
-          (if (eq "AcDbAttributeDefinition" (vlax-get x 'objectname))
-            (vlax-invoke x 'delete);属性删除--
-            (progn
-          (if (eq "AcDbBlockReference" (vlax-get x 'objectname));是块,则继续炸开~~~
-            (blkexp x)
-          )
-            )
-          )
-          ) eblks)
-   (vlax-invoke blkref 'delete)
-   (princ)
- )
|