高老师,请教Entmake创建动态块的问题
本帖最后由 highflybir 于 2020-9-26 19:37 编辑对于有可见性的动态块,有两个问题,着实找不到办法
1、怎么获得有可见性动态块,当前的显示状态
2、用entmake创建有可见性的动态块,怎么在创建时,指定显示状态
谢谢
据说entmake不能创建动态块,可以插入动态块:
;;说明:获取动态块原始块名
;;参数:msg:拾取图元提示
;;返回:动态块原始块名
(defun ddk-name (msg / entity)
(setq entity (vla-get-EffectiveName (vlax-ename->vla-object (car (while (not entity)
(setq entity (entsel msg)))
)
)
)
)
)
;;[功能] Entmake插入块(插入属性块时,属性丢失) by自贡黄明儒整理
;;(EntmakeInsert "ccd1" (getpoint))
(defun EntmakeInsert(name pt)
(entmake (list '(0 . "INSERT") (cons 2 name) (cons 10 pt)))
)
(defun c:tt()
(setq e (ddk-name"\n请选择动态块:"))
(setq pt (getpoint "\n请确定插入点:"))
(EntmakeInsert e pt)
(princ)
)
参考:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=177974&highlight=entmake%2B%B6%AF%CC%AC smartstar 发表于 2020-9-28 11:16
据说entmake不能创建动态块,可以插入动态块:
;;说明:获取动态块原始块名
;;参数:msg:拾取图元提示
请问怎样列出动态块的可见性列表,并指定具体的可见性呢? 本帖最后由 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))
)
)
页:
[1]