[求助]如何找图块里"attribute"的资料
当一个图块包含"attribute", 比如图块里有数字,autolisp有什么方法可以点击这个图块而找到数字的资料呢?回复
Visual LISP可以吗?<BR>;;; Returns a list of attribute tags and associated values<BR>(defun vlex-GetAttributes (ent / blkref lst)<BR> (if (= (vla-Get-ObjectName (setq blkref (vlax-Ename->vla-Object ent))) "AcDbBlockReference")<BR> (if (vla-Get-HasAttributes blkref)<BR> (mapcar<BR> '(lambda (x)<BR> (setq lst (cons (cons (vla-Get-TagString x) (vla-Get-TextString x)) lst))<BR> )<BR> (vlax-safearray->list<BR> (vlax-variant-value (vla-GetAttributes blkref))<BR> )<BR> ); mapcar<BR> ); endif<BR> ); endif<BR> (reverse lst)<BR>) 谢谢版主,但小弟对vlisp一点也不懂, 版主介不介意用Alisp或者把概念告诉我呢.
顺便问一下是不是vlisp确实比Alisp容易写呢 ?其实我也试过在图块的数据里一直找下去, 但没找到什么的。
谢谢。
回复
Vlisp有些类似VBA, 都是以对象的形式通过实体的属性和方法编辑实体.Vlisp从概念上更好理解. 以上的问题可以用alisp解决吗? blk=块实体名
(setq ent (entget blk))
(if (=2 (cdr(assoc 70 ent)));如果有属性定义.
(whie (/= "endblk" (cdr(assoc (setq att (entget (setq blk (entnext blk)))))))
......
) 高手们,能不能用VBA把这个功能编出来啊,求教
页:
[1]