明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 54256

[提问] 判断为动态块

[复制链接]
发表于 2021-6-2 15:25:57 | 显示全部楼层
(if (setq ent (car (entsel "\n请选择块:")))
    (if (= (vlax-get-property
                (setq obj (vlax-ename->vla-object ent))
                "ObjectName"
           )
           "AcDbBlockReference"
        )
        (If (= (vlax-get-property obj "IsDynamicBlock") 0)
            (princ "\n选取的是动态块!")
            (princ "\n选取的是非动态块!")
        )
        (princ "\n选取的不是块!")
    )
    (princ "\n没有选取图元!")
)
 楼主| 发表于 2021-6-2 18:34:35 | 显示全部楼层
vitalgg 发表于 2021-6-2 11:28
e2o 相当于 vlax-ename->vla-object

谢谢,确实可以
但如果我没有选择(entsel)这个过程,只是知道一个块名,怎么判断是动态块呢
发表于 2021-6-2 19:34:40 | 显示全部楼层
(setq
;;常用VLA对象、集合
*ACAD*  (vlax-get-acad-object)
*DOC*   (vla-get-ActiveDocument *ACAD*)
*DOCS*  (vla-get-Documents *ACAD*)
*MS*    (vla-get-modelSpace *DOC*)
*PS*    (vla-get-paperSpace *DOC*)
*BLKS*  (vla-get-Blocks *DOC*)
*LAYS*  (vla-get-Layers *DOC*)
*LTS*   (vla-get-Linetypes *DOC*)
*STS*   (vla-get-TextStyles *DOC*)
*GRPS*  (vla-get-groups *DOC*)
*DIMS*  (vla-get-DimStyles *DOC*)
*LOUTS* (vla-get-Layouts *DOC*)
*VPS*   (vla-get-Viewports *DOC*)
*VS*    (vla-get-Views *DOC*)
*DICS*  (vla-get-Dictionaries *DOC*)
*Layouts* (vla-get-Layouts *doc*)
)

(vla-get-isdynamicblock (vla-item *BLKS* "你的块名"))
 楼主| 发表于 2021-6-2 21:14:10 | 显示全部楼层
vitalgg 发表于 2021-6-2 19:34
(setq
;;常用VLA对象、集合
*ACAD*  (vlax-get-acad-object)

解决了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-16 21:26 , Processed in 0.164594 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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