乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 108|回复: 5

[编程交流] 静态和

[复制链接]

8

主题

31

帖子

22

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 17:07:04 | 显示全部楼层 |阅读模式
你好有人知道动态块是否包含差分DXF代码,或者以任何方式区分常规块和动态块吗。谢谢
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 17:20:36 | 显示全部楼层
块的ActiveX对象具有IsDynamicBlock属性。
 
  1. Command: (vl-load-com)
  2. Command: (setq vlaBl(vlax-ename->vla-object(car(entsel))))
  3. Select object: #<VLA-OBJECT IAcadBlockReference 0e83853c>
  4. Command: (vla-get-IsDynamicBlock vlaBl)
  5. :vlax-true
回复

使用道具 举报

8

主题

31

帖子

22

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 17:35:45 | 显示全部楼层
 
酷,我能应付。非常感谢。
回复

使用道具 举报

8

主题

31

帖子

22

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 17:45:34 | 显示全部楼层
 
关于动态块,你还能得到更多的信息吗?比如它的可见性或者它使用什么类型的动作?
回复

使用道具 举报

41

主题

301

帖子

265

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
209
发表于 2022-7-6 18:01:07 | 显示全部楼层
有点离题了,但如何插入动态块,然后编辑属性,
 
例如动态polor拉伸的长度和角度?
因此,这可以成为lisp,
选择1个点,计算出角度和长度?
干杯
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 18:14:32 | 显示全部楼层
 
 
该代码可以将可见性状态从一个块复制到其他块,并尝试对其进行分析:http://www.asmitools.com/Files/Lisps/Vico.html
 
有两个函数用于获取和放置动态属性:
 
  1. (vl-load-com)
  2. (defun GetDynamicProperty(Block Property / oVal)
  3. (if(= 'ENAME(type Block))
  4.    (setq Block(vlax-ename->vla-object Block))
  5.    ); end if
  6. (if(= :vlax-true(vla-get-IsDynamicBlock Block))
  7.    (foreach p(vlax-safearray->list
  8.         (vlax-variant-value
  9.           (vla-GetDynamicBlockProperties Block)))
  10.      (if(=(strcase Property)(strcase(vla-get-PropertyName p)))
  11. (if(vl-catch-all-error-p
  12.      (setq oVal(vl-catch-all-apply
  13.                  'vla-get-Value(list p))))
  14.   nil
  15.   (setq oVal(vlax-variant-value oVal))
  16.   ); end if
  17. ); end if
  18.      ); end foreach
  19.    ); end if
  20. oVal
  21. ); end of GetDynamicProperty
  22. (defun PutDynamicProperty(Block Property Value / oVal cVal)
  23. (if(= 'ENAME(type Block))
  24.    (setq Block(vlax-ename->vla-object Block))
  25.    ); end if
  26. (if(= :vlax-true(vla-get-IsDynamicBlock Block))
  27.    (foreach p(vlax-safearray->list
  28.         (vlax-variant-value
  29.           (vla-GetDynamicBlockProperties Block)))
  30.      (if(=(strcase Property)(strcase(vla-get-PropertyName p)))
  31. (progn
  32. (setq cVal(vlax-make-variant Value vlax-vbDouble))
  33. (if(vl-catch-all-error-p
  34.      (vl-catch-all-apply
  35.                  'vla-put-Value(list p cVal)))
  36.    (setq oVal nil)(setq oVal Value)
  37.   ); end if
  38. ); end progn
  39. ); end if
  40.      ); end foreach
  41.    ); end if
  42. oVal
  43. ); end of GetDynamicProperty

 
具有标准“距离”特性的动态块测试:
 
获取块名称:
  1. (setq bl(car(entsel)))
  2. Select object: <Entity name: 7efa3390>

 
获取属性“距离”:
  1. Command: (GetDynamicProperty bl "Distance")
  2. 667.536

 
使用新的“距离”值调整块大小:
  1. Command: (PutDynamicProperty bl "Distance" 100.0)
  2. 100.0

 
对不起,伙计们。这不是简短的对话,我今天没有更多的时间。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 19:38 , Processed in 0.346089 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表