本帖最后由 gaics 于 2020-9-29 16:25 编辑
Humanway 发表于 2020-9-29 10:27
请问怎样列出动态块的可见性列表,并指定具体的可见性呢?
[提问] 请教一下如何操作动态块
参考这篇帖子
 - ;;;获取所有允许的可见性状态
- (defun get-visibility-allowedvalues (obj / pros i pro values value lst)
- (setq pros (vlax-invoke obj 'GetDynamicBlockProperties))
- (setq i 0)
- (while (< i (length pros))
- (setq pro (nth i pros))
- (if (wcmatch (vla-get-propertyname pro) "可见性*,Visibility*")
- (setq values (vlax-safearray->list
- (vlax-variant-value (vla-get-allowedvalues pro))
- )
- )
- )
- (setq i (1+ i))
- )
- (setq i 0 lst '())
- (repeat (length values)
- (setq value (vlax-variant-value (nth i values)))
- (setq lst(cons value lst))
- (setq i (1+ i))
- )
- lst
- )
- ;;;获取当前可见性状态
- (defun get-visibility-value (obj / pros i pro value)
- (setq pros (vlax-invoke obj 'GetDynamicBlockProperties))
- (setq i 0)
- (while (< i (length pros))
- (setq pro (nth i pros))
- (if (wcmatch (vla-get-propertyname pro) "可见性*,Visibility*")
- (setq value (vlax-variant-value (vla-get-value pro)))
- )
- (setq i (1+ i))
- )
- value
- )
- ;;;设置可见性状态
- (defun put-visibility-value (obj value / pros i pro)
- (setq pros (vlax-invoke obj 'GetDynamicBlockProperties))
- (setq i 0)
- (while (< i (length pros))
- (setq pro (nth i pros))
- (if (wcmatch (vla-get-propertyname pro) "可见性*,Visibility*")
- (vla-put-value pro value)
- )
- (setq i (1+ i))
- )
- )
|