明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2410|回复: 7

[提问] 请问老师,如何提供动态块的可见性属性

[复制链接]
发表于 2019-11-7 20:37:32 | 显示全部楼层 |阅读模式
本帖最后由 highflybir 于 2020-9-16 09:34 编辑

在论坛里找到一段可以提取动态块可见性属性的代码:
  1. (defun c:TT ()
  2. (setq OBJ  (vlax-ename->vla-object (car (entsel))))
  3. ;;获取动态块的属性
  4. (setq PROS (vlax-invoke OBJ 'getdynamicblockproperties))
  5. ;;;----------------------------------------------------------
  6. ;;获取属性名
  7. (mapcar '(lambda (V) (vlax-get V 'propertyName)) PROS)
  8. ;;获取属性是否为只读
  9. (mapcar 'vla-get-readOnly PROS)
  10. ;;获取属性是否显示
  11. (mapcar 'vla-get-show PROS)
  12. ;;获取所有属性的允许值
  13. (mapcar '(lambda (V) (vlax-get V 'allowedValues)) PROS)
  14. ;;获取所有属性的当前值
  15. (mapcar '(lambda (V) (vlax-get V 'Value)) PROS)
  16. )

但我想从例表中提取动态块的属性:
(setq OBJ  (vlax-ename->vla-object (tblobjname "block" "IPC_-1")))
就无法提取,请问老师,这种情况,可以用什么方式提取,谢谢

发表于 2019-11-8 10:48:56 | 显示全部楼层
block是块定义,你需要指定插入块的块参照(0 . Insert)对象
 楼主| 发表于 2019-11-8 13:52:51 | 显示全部楼层
我需要获得列表中已定义好的指定动态块的所有属性的允许值,而不是图纸上已插入块的,需要针对不同可见性,赋不同的值;
1、我要列出出图纸中所有的块;
2、从列表中,选出我要处理的块名;
3、如果该块有可见性属性,需要拿到所有的属性值;
4、对不同的可见性属性,在指定的"ATTRIB“中赋不同的值;比如:型号
主要就是实现上述功能,1、2步都搞定了,第3步卡壳了
发表于 2021-4-9 22:09:47 | 显示全部楼层
如果该块有可见性属性,需要拿到所有的属性值列表.
 楼主| 发表于 2021-4-16 14:51:46 | 显示全部楼层
guankuiwu 发表于 2021-4-9 22:09
如果该块有可见性属性,需要拿到所有的属性值列表.

  1. (defun c:getshow (/ ent obj AllowedValues ppts)
  2.   (setq        ent              (car (entsel))
  3.         obj              (vlax-ename->vla-object ent)
  4.         AllowedValues nil
  5.   )
  6.   (if (setq obj (vlax-invoke obj 'GetDynamicBlockProperties))
  7.     (progn
  8.       (setq ppts (car obj)
  9.             obj         (cdr obj)
  10.       )
  11.       (while
  12.         (and (not (if (= (type (vlax-get ppts 'Value)) 'STR)
  13.                     (setq AllowedValues (vlax-get ppts 'allowedvalues))
  14.                   )
  15.              )
  16.              obj
  17.         )
  18.          (setq ppts (car obj)
  19.                obj  (cdr obj)
  20.          )
  21.       )
  22.     )
  23.   )
  24.   (if AllowedValues
  25.         (print allowedvalues)
  26.         (print "无可见性属性")
  27.       )
  28.   (princ)
  29. )

点评

“查询”属性值的类型也是 ‘‘STR”,如何区分?  发表于 2021-9-11 14:58
发表于 2021-4-18 02:45:11 | 显示全部楼层
谢谢分享 学习了
发表于 2021-4-18 10:51:21 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 02:09 , Processed in 0.155792 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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