明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3302|回复: 6

[求助]如何找图块里"attribute"的资料

[复制链接]
发表于 2004-4-8 17:16 | 显示全部楼层 |阅读模式
当一个图块包含"attribute", 比如图块里有数字,autolisp有什么方法可以点击这个图块而找到数字的资料呢?
发表于 2004-4-9 10:41 | 显示全部楼层

回复

Visual LISP可以吗?
;;; Returns a list of attribute tags and associated values
(defun vlex-GetAttributes (ent / blkref lst)
(if (= (vla-Get-ObjectName (setq blkref (vlax-Ename->vla-Object ent))) "AcDbBlockReference")
(if (vla-Get-HasAttributes blkref)
(mapcar
'(lambda (x)
(setq lst (cons (cons (vla-Get-TagString x) (vla-Get-TextString x)) lst))
)
(vlax-safearray->list
(vlax-variant-value (vla-GetAttributes blkref))
)
); mapcar
); endif
); endif
(reverse lst)
)
 楼主| 发表于 2004-4-9 11:34 | 显示全部楼层
谢谢版主,但小弟对vlisp一点也不懂, 版主介不介意用Alisp或者把概念告诉我呢.





顺便问一下是不是vlisp确实比Alisp容易写呢 ?其实我也试过在图块的数据里一直找下去, 但没找到什么的。


谢谢。




发表于 2004-4-9 12:21 | 显示全部楼层

回复

Vlisp有些类似VBA, 都是以对象的形式通过实体的属性和方法编辑实体.       


Vlisp从概念上更好理解.
 楼主| 发表于 2004-4-9 15:35 | 显示全部楼层
以上的问题可以用alisp解决吗?
发表于 2004-4-15 00:07 | 显示全部楼层
blk=块实体名


(setq ent (entget blk))


(if (=2 (cdr(assoc 70 ent)));如果有属性定义.


                 (whie (/= "endblk" (cdr(assoc (setq att (entget (setq blk (entnext        blk)))))))


                         ......


                 )
发表于 2006-4-23 15:14 | 显示全部楼层
高手们,能不能用VBA把这个功能编出来啊,求教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 21:00 , Processed in 0.318552 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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