有没有懂动态块的大师啊,帮帮忙啊
本帖最后由 伪书虫86 于 2015-9-28 16:55 编辑动态块的一个“可见性”下一般有好几个“可见性状态”
我现在想获得其中某一个“可见性状态”下所包含的图元
我尝试了entnext和vlax-for两种方法,最后得到的都是整个动态块所包含的图元
请教下大师们,这个问题该怎么破呢
,
本帖最后由 ivde 于 2015-9-30 08:11 编辑可见性就是把其中一些图元的 visible 属性设为 :vlax-false (不可见),可见图元 visible 属性为 :vlax-true 最好上传动态块 lucas_3333 发表于 2015-9-28 16:36 static/image/common/back.gif
最好上传动态块
动态块已上传
;; Get Dynamic Block Visibility State-Lee Mac
;; Returns the value of the Visibility Parameter of a Dynamic Block (if present)
;; blk - VLA Dynamic Block Reference object
;; Returns: Value of Visibility Parameter, else nil
(defun LM:getvisibilitystate ( blk )
(LM:getdynpropvalue blk (LM:getvisibilityparametername blk))
)
;; Get Visibility Parameter Name-Lee Mac
;; Returns the name of the Visibility Parameter of a Dynamic Block (if present)
;; blk - VLA Dynamic Block Reference object
;; Returns: Name of Visibility Parameter, else nil
(defun LM:getvisibilityparametername ( blk / vis )
(if
(and
(vlax-property-available-p blk 'effectivename)
(setq blk
(vla-item
(vla-get-blocks (vla-get-document blk))
(vla-get-effectivename blk)
)
)
(= :vlax-true (vla-get-isdynamicblock blk))
(= :vlax-true (vla-get-hasextensiondictionary blk))
(setq vis
(vl-some
'(lambda ( pair )
(if
(and
(= 360 (car pair))
(= "BLOCKVISIBILITYPARAMETER" (cdr (assoc 0 (entget (cdr pair)))))
)
(cdr pair)
)
)
(dictsearch
(vlax-vla-object->ename (vla-getextensiondictionary blk))
"ACAD_ENHANCEDBLOCK"
)
)
)
)
(cdr (assoc 301 (entget vis)))
)
)
(setq obj (vlax-ename->vla-object (car (entsel "\nSelect Block: "))))
(setq blk_vb (LM:getvisibilitystate obj))
应该是有办法获得块定义对象中各个VS下的对象的,查下帮助看看? e2002 发表于 2015-9-28 18:03 static/image/common/back.gif
应该是有办法获得块定义对象中各个VS下的对象的,查下帮助看看?
1.插入动态块的一个临时的参考
2.设置可见性状态参数,如 "三联单控开"
3.检索临时参考的匿名块名称。
4.遍历匿名块的定义 lucas_3333 发表于 2015-9-28 20:10
1.插入动态块的一个临时的参考
2.设置可见性状态参数,如 "三联单控开"
3.检索临时参考的匿名块名称。
没有用的,难道你试过成功了? e2002 发表于 2015-9-28 18:03
应该是有办法获得块定义对象中各个VS下的对象的,查下帮助看看?
是的,按道理是应该有个参数或者什么是用来记录这个的,只是目前尝试的方法还没找到。。。 伪书虫86 发表于 2015-9-28 20:57 static/image/common/back.gif
没有用的,难道你试过成功了?
难道你试过?不成功? ,贴出你的代码。。。