明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1132|回复: 5

[已解答] 求一键炸开图中所有动态块

[复制链接]
发表于 2015-11-18 21:30 | 显示全部楼层 |阅读模式
20明经币
求一键炸开图中所有动态块,并提示炸开了多少个动态块,如果没有动态块则提示没有动态块,谢谢!
发表于 2015-11-18 21:30 | 显示全部楼层
本帖最后由 鱼与熊掌 于 2015-11-18 21:46 编辑
  1. (defun c:tt(/ *acad* *doc* *docs* *ms* cx-isdynamic i)
  2.   (defun cx-Isdynamic ( obj  )
  3.     (and (vlax-property-available-p obj 'isdynamicblock)
  4.       (= :vlax-true (vla-get-isdynamicblock obj))
  5.     )
  6.   )
  7.   (vl-load-com)
  8.   (setq
  9.     *ACAD*  (vlax-get-acad-object)
  10.     *DOC*   (vla-get-ActiveDocument *ACAD*)
  11.     *DOCS*  (vla-get-Documents *ACAD*)
  12.     *MS*    (vla-get-modelSpace *DOC*)
  13.   )
  14.   (setq i 0)
  15.   (vlax-for x *MS*
  16.     (if (cx-Isdynamic x)
  17.       (progn
  18.         (vla-Explode x)
  19.         (vla-Delete x)
  20.         (setq i(1+ i))
  21.       )
  22.     )
  23.   )
  24.   (if(> i 0)
  25.     (alert(strcat "一共炸开" (itoa i) "个动态块."))
  26.     (alert"无动态块.")
  27.   )
  28.   (princ)
  29. )

点评

非常感谢!  发表于 2015-11-18 22:08

评分

参与人数 1明经币 +1 收起 理由
theisland + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-11-18 22:04 | 显示全部楼层
鱼与熊掌 发表于 2015-11-18 21:30

非常好!能把提示改成命令行形式的吗?不想去点那个提示框,还有图纸比较大(有几百个动态块)的时候运行等待时间稍长
回复

使用道具 举报

发表于 2015-11-19 11:59 | 显示全部楼层
theisland 发表于 2015-11-18 22:04
非常好!能把提示改成命令行形式的吗?不想去点那个提示框,还有图纸比较大(有几百个动态块)的时候运行 ...

Alert改成prompt
回复

使用道具 举报

 楼主| 发表于 2015-11-20 06:39 | 显示全部楼层
鱼与熊掌 发表于 2015-11-19 11:59
Alert改成prompt

搞定,谢谢!
回复

使用道具 举报

 楼主| 发表于 2015-11-28 13:46 | 显示全部楼层
鱼与熊掌 发表于 2015-11-19 11:59
Alert改成prompt

朋友,如果我有部分动态块不想炸开怎么办呢?比如图中有名为“动态块1”、“动态块2”、“动态块3”的动态块(这3个动态块里面都有可见性参数)不需要炸开,其他大部分都是要炸开的该怎么改?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 01:09 , Processed in 0.980268 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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