明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5199|回复: 13

求助------能不能改变动态块的拉伸宽度

[复制链接]
发表于 2012-8-18 09:19:58 | 显示全部楼层 |阅读模式
本帖最后由 挪威的森林 于 2012-8-18 09:19 编辑


我想通过程序来改变动态块的属性,比如要把宽度改成1000。因该怎么做才能实现目的呢?

本帖子中包含更多资源

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

x
发表于 2013-1-2 11:19:00 | 显示全部楼层
没什么人回答啊,我也遇到这个问题了,不知道怎么用编程方法对动态块进行拉伸、移动等操作。希望高人解答啊。
发表于 2013-9-18 15:50:31 | 显示全部楼层
我也想知道     
发表于 2013-9-18 19:40:22 | 显示全部楼层
本帖最后由 zlg258369 于 2013-9-18 19:41 编辑
  1. (setq obj (vlax-ename->vla-object (entlast)))
  2.       (setq
  3.         Pros (vlax-variant-value (vla-GetDynamicBlockProperties obj))
  4.       )
  5.       (setq oSBProperty (vlax-safearray-get-element Pros 0))  ;;;起始为0,+2为下一属性值,以此类推
  6.       (vla-put-value
  7.         oSBProperty
  8.         (vlax-make-variant
  9.           200.0                                                                         ;;;修改的值
  10.           (vlax-variant-type (vla-get-value oSBProperty))
  11.         )
  12.       )
发表于 2013-9-18 21:25:19 | 显示全部楼层
这段代码我正好可以用的上
发表于 2013-9-22 16:04:18 | 显示全部楼层
zlg258369 发表于 2013-9-18 19:40

非常感谢      
发表于 2013-9-23 10:31:24 | 显示全部楼层
本帖最后由 davide888 于 2013-9-23 11:04 编辑
zlg258369 发表于 2013-9-18 19:40


大神帮忙啊    数值类型好改了    像翻转及可见性没办法改啊

本帖子中包含更多资源

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

x
发表于 2013-9-23 12:21:37 | 显示全部楼层
davide888 发表于 2013-9-23 10:31
大神帮忙啊    数值类型好改了    像翻转及可见性没办法改啊

换个新的,这是别人的
  1. ;; Get Dynamic Block Property Value  -  Lee Mac
  2. ;; Returns the value of a Dynamic Block property (if present)
  3. ;; blk - [vla] VLA Dynamic Block Reference object
  4. ;; prp - [str] Dynamic Block property name (case-insensitive)

  5. (defun LM:getdynpropvalue ( blk prp )
  6.     (setq prp (strcase prp))
  7.     (vl-some '(lambda ( x ) (if (= prp (strcase (vla-get-propertyname x))) (vlax-get x 'value)))
  8.         (vlax-invoke blk 'getdynamicblockproperties)
  9.     )
  10. )

  11. ;; Set Dynamic Block Property Value  -  Lee Mac
  12. ;; Modifies the value of a Dynamic Block property (if present)
  13. ;; blk - [vla] VLA Dynamic Block Reference object
  14. ;; prp - [str] Dynamic Block property name (case-insensitive)
  15. ;; val - [any] New value for property
  16. ;; Returns: [any] New value if successful, else nil

  17. (defun LM:setdynpropvalue ( blk prp val )
  18.     (setq prp (strcase prp))
  19.     (vl-some
  20.        '(lambda ( x )
  21.             (if (= prp (strcase (vla-get-propertyname x)))
  22.                 (progn
  23.                     (vla-put-value x (vlax-make-variant val (vlax-variant-type (vla-get-value x))))
  24.                     (cond (val) (t))
  25.                 )
  26.             )
  27.         )
  28.         (vlax-invoke blk 'getdynamicblockproperties)
  29.     )
  30. )
(LM:getdynpropvalue (vlax-ename->vla-object (car (entsel))) "门状态")
(LM:setdynpropvalue (vlax-ename->vla-object (car (entsel))) "门状态" "打开45度")
发表于 2013-9-23 15:33:34 | 显示全部楼层
zlg258369 发表于 2013-9-23 12:21
换个新的,这是别人的(LM:getdynpropvalue (vlax-ename->vla-object (car (entsel))) "门状态")
(LM:set ...

好人,不过setdynpropvalue是2012以后的函数吧
发表于 2013-9-23 15:46:48 | 显示全部楼层
davide888 发表于 2013-9-23 15:33
好人,不过setdynpropvalue是2012以后的函数吧

这我倒是没试过,我用的是2012
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-16 23:50 , Processed in 0.180573 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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