明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 小师傅

[经验] 获取动态块当前可见性状态下的属性值的函数

[复制链接]
发表于 4 天前 | 显示全部楼层
本帖最后由 guankuiwu 于 2024-10-26 13:06 编辑

小师傅 发表于 2024-10-26 09:03
您好,我上传了一个附件,我想分别取得 可见性为前视的拉伸值和可见性为侧视的拉伸值,因为我这个块在不 ...



(setq Pros (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'GetDynamicBlockProperties))
(vl-remove nil(mapcar '(lambda (X)(if (wcmatch (strcat (vlax-get X 'PropertyName)"*" )"*距离*")
                                 (cons(vlax-get X 'PropertyName)(vlax-get X 'Value))))Pros))





(("距离1" . 372.33) ("距离2" . 194.409))
再根据你需要选择

评分

参与人数 2明经币 +2 收起 理由
lee50310 + 1 赞一个!
xyp1964 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
可以给相对应的可见性命名 比如 前视拉伸距离这样
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
都没搞明白问题的本质,重点是可见性控制了拉伸参数的可见。
他希望确定哪个可见性下哪些拉伸参数是不可见的,也就是要忽略的。
正常从动态块获取的动态参数,是不管是否可见,全部获取的。
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
本帖最后由 guankuiwu 于 2024-10-26 13:20 编辑

命名好当前的的可见性里的拉伸距离名称,就可以直接过滤出来的啊
wcmatch (strcat (vlax-get X 'PropertyName)"*" )"*俯视*")  参数可以根据自己的可见性状态标识确定,加个可见性标识判断过滤去不在当前可性的块了

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
kozmosovia 发表于 2024-10-26 13:09
都没搞明白问题的本质,重点是可见性控制了拉伸参数的可见。
他希望确定哪个可见性下哪些拉伸参数是不可见 ...

是的,就是这意思,可能是表达不清楚
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
本帖最后由 kozmosovia 于 2024-10-26 20:18 编辑

有几种处理方式:
1:进块编辑器改拉伸参数名称,将其名字中加入可见性名称,如"可见4可见6距离2"。将来判断时,可以vl-string-search参数名字中是否有当前可见性名字以确定此参数是否在当前可见性有效。可见性种类不多时可用,比较多了就相对麻烦些。
2:在块中添加块参数或者非常小的文本说明,指出某个可见性中哪些拉伸可见,将来可以读取这些信息解析知道当前可见性有哪些拉伸参数
块参数可以参考https://www.bilibili.com/video/B ... 8.videopod.sections创建
3:从根本上解决问题:解析图块定义获取可见性控制的动态参数。可以使用AnnoQuarX的函数(AQX:DynamicParametersByVisibility (car (entsel)))
  1. ;;; 在线加载VLDCL-AnnoQuarX
  2. ((lambda (/ Q)
  3.    (vl-load-com)
  4.    (and
  5.      (null Q#0)
  6.      (setq Q (vlax-create-object "winhttp.winhttprequest.5.1"))
  7.      (progn
  8.        (vlax-invoke
  9.    Q
  10.    "open"
  11.    "get"
  12.    "https://gitee.com/kozmos/tachyoncloud/raw/master/StableVLX/LoadVLDCL"
  13.    :vlax-true
  14.   )
  15.        (vlax-invoke Q "send")
  16.        (vlax-invoke Q "WaitforResponse" 1000)
  17.        (eval (read (vlax-get Q "ResponseText")))
  18.        (vlax-release-object Q)
  19.      )
  20.    )
  21. )
  22. )

  23. ;;; 获取点取动态块的每个可见性下的活动参数
  24. (AQX:DynamicParametersByVisibility (car (entsel)))


回复

使用道具 举报

发表于 昨天 14:29 | 显示全部楼层
小师傅 发表于 2024-10-26 09:03
您好,我上传了一个附件,我想分别取得 可见性为前视的拉伸值和可见性为侧视的拉伸值,因为我这个块在不 ...

把可见性的名称和拉抻的名称配对,A1对B1 ,A2对B2,如果当前可见性是A1就取B1的值,余同
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-30 10:20 , Processed in 0.176802 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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