找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5387|回复: 27

[原创] SetDynPropertyValue设置动态块属性

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-9-25 15:34:03 | 显示全部楼层 |阅读模式

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

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

×
;;Obj ---- blockref & DynamicBlockProperties & DynamicBlockProperty
;;lst ---- '((PropertyName1 value1) (PropertyName2 Value2) ....)
;;Eq. (setdynpropertyvalue (vlax-ename->vla-object (car (entsel))) '(("左右镜像" 1) ("门尺寸" 800.)))
游客,本帖隐藏的内容需要积分高于 30 才可浏览,您当前积分为 0


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2018-1-10 23:32:17 | 显示全部楼层
积分不够看不了。找了很久,终于找到类似的函数,亲测有效,同时附上函数出处:
http://www.lee-mac.com/dynamicblockfunctions.html#setdynamicprops  还有其他相关动态块函数
;; Set Dynamic Block Properties  -  Lee Mac
;; Modifies values of Dynamic Block properties using a supplied association list.
;; blk - [vla] VLA Dynamic Block Reference object
;; lst - [lst] Association list of ((<Property> . <Value>) ... )
;; Returns: nil

(defun LM:setdynprops ( blk lst / itm )
    (setq lst (mapcar '(lambda ( x ) (cons (strcase (car x)) (cdr x))) lst))
    (foreach x (vlax-invoke blk 'getdynamicblockproperties)
        (if (setq itm (assoc (strcase (vla-get-propertyname x)) lst))
            (vla-put-value x (vlax-make-variant (cdr itm) (vlax-variant-type (vla-get-value x))))
        )
    )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 93个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-9-27 22:09:06 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2013-9-27 22:14 编辑

这个应该是用在程序中设定好动态块的参数,通过函数一次调整Insert dynblock的参数

对已经插入的动态块用快捷面板修改或者夹点修改

点评

也不尽然,批量修改还是很有意义的,只有批量才体现效率。  详情 回复 发表于 2013-9-27 22:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-9-27 22:28:13 | 显示全部楼层
st788796 发表于 2013-9-27 22:09
这个应该是用在程序中设定好动态块的参数,通过函数一次调整Insert dynblock的参数

对已经插入的动态块 ...

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-9-27 22:32:01 来自手机 | 显示全部楼层
没有试过刷子可不可以匹配动态块,这个函数倒是可以做一个出来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-10-11 16:39:15 | 显示全部楼层
(
   (AllowedValues (全部 无节点))
   (Description . )
   (PropertyName . 可见性1)
   (ReadOnly . :vlax-false)
   (Show . :vlax-true)
   (UnitsType . 0)
   (Value . 全部)
)
用GETDYNALLPROPERTIES查询动态块的参数
在这里怎么用。。不懂,求范例!
附上动态DWG图

管件节点动态块.rar

18.52 KB, 下载次数: 38

点评

对这个动态块只有两个Value,在AllowedValue中,函数应用就是("可见性" "全部") 或者("可见性" "无节点")  详情 回复 发表于 2013-10-11 20:39
记住几点,一只有非ReadOnly的才可以修改,二所有修改只有一个接口Value,三如果有AllowdValues的修改的Value必须在AllowedValues内,Description是说明注释,也可以做版权说明,AllowedValues就是那些隐藏选项  详情 回复 发表于 2013-10-11 17:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-11 17:14:36 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2013-10-11 17:17 编辑
q3_2006 发表于 2013-10-11 16:39
(
   (AllowedValues (全部 无节点))
   (Description . )


记住几点,一只有非ReadOnly的才可以修改,二所有修改只有一个接口Value,三如果有AllowdValues值,修改的Value必须在AllowedValues内,Description是说明注释,也可以做版权说明,AllowedValues就是那些隐藏选项,Show就是是否显示动态参数,建议你把Help中的动态块操作命令看一遍,然后对照这几个函数,肯定就把DYN搞通了

点评

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-10-11 17:32:31 | 显示全部楼层
st788796 发表于 2013-10-11 17:14
记住几点,一只有非ReadOnly的才可以修改,二所有修改只有一个接口Value,三如果有AllowdValues值,修 ...

做比较好理解。。文字。。。头疼!

点评

DYN部分,本论坛应该说VLA部分的代码都有了,再方便就用XDAPI了,获取修改更直接方便,再就是用2011+的Get/Setpropertyvalue,不推荐VLA,毕竟VBA前途未卜,不过那个ActiveX帮助还是很有益的,对Lisper可能没机会接  详情 回复 发表于 2013-10-11 17:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-11 17:46:06 来自手机 | 显示全部楼层
q3_2006 发表于 2013-10-11 17:32
做比较好理解。。文字。。。头疼!


DYN部分,本论坛应该说VLA部分的代码都有了,再方便就用XDAPI,获取修改更直接方便,再就是用2011+的Get/Setpropertyvalue,不推荐VLA,毕竟VBA前途未卜,不过那个ActiveX帮助还是很有益的,对Lisper可能没机会接触ARX C#,com也算是面向对象的,不敢说触类旁通吧至少了解深入了对alisp也有大帮助
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-11 20:39:57 来自手机 | 显示全部楼层
q3_2006 发表于 2013-10-11 16:39
(
   (AllowedValues (全部 无节点))
   (Description . )

对这个动态块只有两个Value,在AllowedValue中,函数应用就是("可见性"  "全部") 或者("可见性" "无节点")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-2-4 12:52:36 | 显示全部楼层
很想学一下,居然看不到。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-6-19 18:39:59 | 显示全部楼层
这个不错,动态快还不会
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2016-7-26 18:12:38 | 显示全部楼层
:(:(:(:(:(:(想看 。。。积分不够呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 00:44 , Processed in 0.256982 second(s), 69 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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