关于程序中对动态块的操作
请问可以在程序中操作动态块的参数吗比如先用insert命令插入一个动态块,然后选中该动态块的一个线性拉伸夹点,用pause命令等用户输入拉伸距离后,再继续运行下面的程序,可否实现?
另外问个动态块的问题,为什么做了一个带有可见性参数的动态块,有3个可见性元素,对应3个选项,选择其中一个其他2个隐藏。然后保存成块文件,插入到别的图纸中以后3个元素居然同时显示了,应该是只显示默认的第一个才对啊,但是重新操作一下可见性选项后又正常了,就刚插入的时候会出现这种情况。求大神指点。。。
大神何在~ 继续等大神。。。 ;返回动态快属性和值
(defun cx_b_sx (en / obj pros)
(setq obj (vlax-ename->vla-object en))
(setq Pros (vlax-invoke obj 'GetDynamicBlockProperties))
(mapcar '(lambda (X)
(cons (vlax-get X 'PropertyName) (vlax-get X 'Value))
)
Pros
) ;返回值
)
;动态快属性值修改 n第N 项
(defun cx_b_sxg (en n dis / obj osbproperty pros2)
(setq obj (vlax-ename->vla-object en)
Pros2 (vlax-variant-value (vla-GetDynamicBlockProperties obj))
)
(setq oSBProperty (vlax-safearray-get-element Pros2 (* n 2)))
;;;起始为0,+2为下一属性值,以此类推
(vla-put-value
oSBProperty
(vlax-make-variant
dis
;;;修改的值
(vlax-variant-type (vla-get-value oSBProperty))
)
)
) 终于有大神出手了,感谢先,不过刚开始学,只会基本的autolisp命令,这个程序还要研究一下才能测试~
页:
[1]