找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1615|回复: 1

[API建议] 关于 Xdrx_dynblock_getproperty 漏项

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-9-24 08:10:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
今天帮一位坛友测试一个动态块,发现 xdrx_dynblock_getproperty 有漏项,附上完整的 vla 方法及测试 Dwg
  1. ;;获取动态块的全部参数 by eachy 2013.9.24
  2. (defun c:GetallDynBlkProperties (/ lisp-value e blkref Properties)
  3.   (defun lisp-value (v)
  4.     (cond
  5.       ((= (type v) 'variant)
  6.        (lisp-value (variant-value v))
  7.       )
  8.       ((= (type v) 'safearray)
  9.        (list (mapcar 'lisp-value (safearray-value v))) ;_Modify by eachy
  10.       )
  11.       (t v)
  12.     )
  13.   )
  14.   (if
  15.     (and (setq e (car (entsel "\nPick Insert: ")))
  16.      (setq blkref (vlax-ename->vla-object e))
  17.      (if (and (= (vla-get-objectname blkref) "AcDbBlockReference")
  18.           (= (vla-get-isdynamicblock blkref) :vlax-true)
  19.          )
  20.        t
  21.        (progn
  22.          (princ "\nNot DynmicBlock!")
  23.          nil
  24.        )
  25.      )
  26.     )
  27.      (progn
  28.        (setq Properties
  29.           (mapcar
  30.         '(lambda (x)
  31.            (list (cons "AllowedValues"
  32.                    (lisp-value (vla-get-allowedvalues x))
  33.              )
  34.              (cons "Description" (vla-get-description x))
  35.              (cons "PropertyName" (vla-get-propertyname x))
  36.              (cons "ReadOnly" (vla-get-readonly x))
  37.              (cons "Show" (vla-get-show x))
  38.              (cons "UnitsType" (lisp-value (vla-get-unitstype x)))
  39.              (cons "Value" (lisp-value (vla-get-value x)))
  40.            )
  41.          )
  42.         (safearray-value
  43.           (variant-value
  44.             (vla-getdynamicblockproperties blkref)
  45.           )
  46.         )
  47.           )
  48.        )
  49.        (foreach    x Properties
  50.      (princ "\n(")
  51.      (foreach y x
  52.        (princ "\n\t  ")
  53.        (princ y)
  54.      )
  55.          (princ "\n)")
  56.        )
  57.      )
  58.   )
  59.   (princ)
  60. )


有了这些属性就可以用 Vlisp 控制动态块的各个参数状态了!

tt.rar

20.87 KB, 下载次数: 7, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 9个

财富等级: 恭喜发财

发表于 2014-5-10 16:36:31 | 显示全部楼层
这么好的帖,太感谢eachy了,
怎么没有人顶,我来给你全力顶!!!
{:soso_e179:}{:soso_e179:}{:soso_e179:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-6-7 18:40 , Processed in 0.202715 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表