ywx2020 发表于 2020-4-21 10:27:09

有什么办法可以获取动态块的自定义属性

如图,有什么办法可以获取动态块的名称和尺寸attach://108645.png

gaics 发表于 2020-4-21 17:42:42

获取属性列表
(defun c:tt (/ obj pros proslst)
(setq obj (vlax-ename->vla-object (car (entsel))))
(setq Pros (vlax-invoke obj 'GetDynamicBlockProperties))
(setq        Proslst
       (mapcar
           '(lambda (X)
              (cons (vlax-get X 'PropertyName) (vlax-get X 'Value))
          )
           Pros
       )
)
(princ proslst)
(princ)
)

taoyi0727 发表于 2020-4-21 18:08:14

(defun c:tt (/ obj pros proslst)
(setq obj (vlax-ename->vla-object (car (entsel))))
(setq Pros (vla-GetDynamicBlockProperties obj))
(setq Proslst (mapcar '(lambda (x)
                                                                                                       (cons (vla-get-propertyname x) (vla-get-Value x))
                                                                                               )
                                                                        (safearray-value (variant-value Pros))
                                                                )
)
(princ proslst)
(princ)
)

ywx2020 发表于 2020-4-22 07:16:27

感谢两位,没想到真的有人能解决

陈伟 发表于 2021-3-17 13:49:32

留个脚印!!!很好

yhyqyx 发表于 2021-6-20 12:33:36

怎么修改,例如“距离1”

vitalgg 发表于 2021-6-20 17:30:56

本帖最后由 vitalgg 于 2022-3-3 17:40 编辑

http://atlisp.cn/static/@lisp-function-lib.mp4

(require 'block:*);; 调用 block:* 函数组即可使用下面的函数

5块相关
5.1(block:get-effectivename blk)
取得块名,支持动态块。参数为块图元。

5.2(block:get-attributes blk)
获取块属性,返回属性名和值的点对列表。

5.3(block:set-attributes blk cons-lst)
设置块属性,参数为块图元及属性名和值的点对列表。

5.4(block:get-dynamic-properties blk)
获取动态块的动态特性列表:特性名,当前值,只读性,是否显示,允许值

5.5(block:get-dynamic-prop-cons-name-value blk)
获取动态块的动态特性列表:返回值 为特性名和当前值的点对表。

5.6(block:set-dynprop blk prop val)
设置动态块的特性.

荣sir 发表于 2022-3-3 17:37:53

正巧需要这个,大神给力

guankuiwu 发表于 2022-5-29 18:55:10

真好!这个!

伍星 发表于 2022-8-19 20:19:18


正巧需要这个,大神给力,好好学习下
页: [1] 2
查看完整版本: 有什么办法可以获取动态块的自定义属性