明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1007|回复: 5

[已解答] 请问如何判断一个块是否是带有嵌套的块?

[复制链接]
发表于 2013-12-11 13:45 | 显示全部楼层 |阅读模式
请问如何判断一个块是否是带有嵌套的块?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-12-15 00:32 | 显示全部楼层
对于块没怎么研究过,不过应该可以通过entnext一个个的看它的0组是不是INSERT直到 seqend结束
发表于 2013-12-15 18:28 | 显示全部楼层
  1. (defun isblock (en / ss ent)
  2. (setvar "CMDECHO" 0)
  3. (command ".UNDO" "BE")
  4. (if (and (= (type en) 'ENAME)
  5. (setq ent (entget en))
  6. (= (cdr(assoc 0 ent) "INSERT"))
  7. (command ".EXPLODE" en)
  8. (setq ss (ssget "P" '((0 . "INSERT")))) (progn
  9. (command ".UNDO" "E")
  10. (command "_U")
  11. ))
  12. (setvar "CMDECHO" 1)
  13. (and ss (> (sslength ss) 0))
  14. )
 楼主| 发表于 2013-12-16 09:09 | 显示全部楼层
ZZXXQQ 发表于 2013-12-15 18:28

谢谢ZZXXQQ ,但我用(ISBLOCK (entsel))试了下好像结果不对,不管是有嵌套的块,还是没嵌套的块,得到的结果都是nil
发表于 2013-12-16 09:34 | 显示全部楼层
  1. (defun c:tt (/ e flag name)
  2.   (if (and
  3.         (setq e (car (entsel)))
  4.         (= "INSERT" (cdr (assoc 0 (setq e (entget e)))))
  5.       )
  6.     (progn
  7.       (vlax-for        obj (vla-item
  8.                       (vla-get-blocks
  9.                         (vla-get-ActiveDocument (vlax-get-acad-object))
  10.                       )
  11.                       (cdr (assoc 2 e))
  12.                     )
  13.         (if (or        (= "AcDbBlockReference"
  14.                    (setq name (vla-get-ObjectName obj))
  15.                 )
  16.                 (= "AcDbMInsertBlock" name)
  17.             )
  18.           (setq Flag t)
  19.         )
  20.       )
  21.       (if flag
  22.         (princ "\n嵌套块!")
  23.         (princ "\n非嵌套块!")
  24.       )
  25.     )
  26.   )
  27.   (princ)
  28. )
 楼主| 发表于 2013-12-16 10:09 | 显示全部楼层
Gu_xl 发表于 2013-12-16 09:34

谢谢Gu-xl,试了下结果很给力啊,终于得到解决了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 21:48 , Processed in 0.279326 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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