乐筑天下

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

[编程交流] Dynamic block and Autolisp & D

[复制链接]

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 11:40:07 | 显示全部楼层 |阅读模式
Is it possible to retrieve the name of a visibility state from a Dynamic Block?
 
I want a lisp that I can click on a block and then draw a leader and fill an attribute block with the block name.  
 
I was able to make it work with a simple block but what of a Dynamic Block?
 
the DXF grp code "2" where the name of the block normally is just shows a "*U2" when it's a Dynamic block.
 
any ideas? Thanks in advance
回复

使用道具 举报

4

主题

940

帖子

961

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-6 11:59:19 | 显示全部楼层
Q1
I can't take credit for this... posted by drsvsmani on Autodesk Discussion Groups
  1. (defun DynamicProps (ename propname value / obj prpL cla cll prp)(setq obj (if (= (type ename) 'VLA-OBJECT) ename (vlax-ename->vla-object ename)))(setq prpL (vlax-invoke obj 'getdynamicblockproperties))(setq return(if (setq prp (vl-remove-if-not (function (lambda(x)(= (vlax-get-property x 'PropertyName) propname))) prpL))(mapcar (function (lambda(v)(if (and (/= value nil)(vlax-property-available-p v 'Value)(/= (type value)'LIST))(progn (vlax-put-property v 'Value value)(vla-update obj)))(if (and (vlax-property-available-p v 'AllowedValues) (vlax-get v 'AllowedValues))(list (vlax-get v 'Value)(vlax-get v 'AllowedValues))(vlax-get v 'Value)))) prp)(mapcar (function (lambda(v)(list (vla-get-propertyName v)(vlax-get v 'Value) v))) prpL)))return)(setq vs (DynamicProps (car (entsel)) "Visibility" nil))(car (car vs));returns current visibility state
Q2
 
  1. (vlax-get (vlax-ename->vla-object (car (entsel))) 'EffectiveName)
回复

使用道具 举报

2

主题

74

帖子

72

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:23:18 | 显示全部楼层
  1. (defun block_name (bloc / name)[b][color="Red"](vl-load-com)[/color][/b] (setq        bloc (if (eq (type bloc) 'ENAME)       (vlax-ename->vla-object bloc)     )name (if (eq (type bloc) 'VLA-OBJECT)       (cond         ((= (vla-get-isdynamicblock bloc) :vlax-true)          (vla-get-effectivename bloc)         )         (t          (vla-get-name bloc)         )       )     ) ;_cond ))
回复

使用道具 举报

78

主题

207

帖子

129

银币

后起之秀

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

铜币
395
发表于 2022-7-6 12:33:10 | 显示全部楼层
hmm i can't get either one to work
回复

使用道具 举报

2

主题

74

帖子

72

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:48:00 | 显示全部楼层
Has forgotten to load in a code vla functions (vl-load-com)
Geo_Point - name of the selected block
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:25 , Processed in 0.482483 second(s), 62 queries .

© 2020-2025 乐筑天下

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