guankuiwu 发表于 2024-10-26 12:32:49

本帖最后由 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))
再根据你需要选择

guankuiwu 发表于 2024-10-26 12:36:37

可以给相对应的可见性命名 比如 前视拉伸距离这样

kozmosovia 发表于 2024-10-26 13:09:27

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

guankuiwu 发表于 2024-10-26 13:11:08

本帖最后由 guankuiwu 于 2024-10-26 13:20 编辑

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

小师傅 发表于 2024-10-26 13:34:56

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

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

kozmosovia 发表于 2024-10-26 13:51:16

本帖最后由 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)))
;;; 在线加载VLDCL-AnnoQuarX
((lambda (/ Q)
   (vl-load-com)
   (and
   (null Q#0)
   (setq Q (vlax-create-object "winhttp.winhttprequest.5.1"))
   (progn
       (vlax-invoke
   Q
   "open"
   "get"
   "https://gitee.com/kozmos/tachyoncloud/raw/master/StableVLX/LoadVLDCL"
   :vlax-true
)
       (vlax-invoke Q "send")
       (vlax-invoke Q "WaitforResponse" 1000)
       (eval (read (vlax-get Q "ResponseText")))
       (vlax-release-object Q)
   )
   )
)
)

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

chslwj521 发表于 2024-10-29 14:29:30

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

把可见性的名称和拉抻的名称配对,A1对B1 ,A2对B2,如果当前可见性是A1就取B1的值,余同
页: 1 [2]
查看完整版本: 获取动态块当前可见性状态下的属性值的函数