[求助]遍历块得到块中属性值的LIST
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 5px; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 5px; MARGIN: 5px 20px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #cccccc 1px solid;">(DEFUN swp_get_attrib (en / f dxf)<br/> (WHILE en<br/> (SETQ dxf (ENTGET en))<br/> (IF (= (CDR (ASSOC 0 dxf)) "ATTRIB")<br/> (SETQ<br/> f (APPEND<br/> f<br/> (LIST<br/> (CDR (ASSOC 1 dxf))<br/> )<br/> )<br/> )<br/> )<br/> (SETQ en (ENTNEXT en))<br/> )<br/> f<br/>)</div><p></p><p><font size="4"><strong>本来是想获取当前块(EN)中属性值的LIST的,结果出现了遍历图中自该图元后所有块的属性的错误,不知道怎么修改,请看看怎么改啊!</strong></font><a name="295"></a><br/></p> (defun SWP_GET_ATTRIB (EN / F DXF)<br/> (setq DXF (entget EN))<br/> (if (and (= (DXF 0 EN) "INSERT")<br/> (assoc 66 DXF)<br/> )<br/> (while (and (setq EN (entnext EN))<br/> (setq DXF (entget EN))<br/> (/= (cdr (assoc 0 DXF)) "SEQEND")<br/> )<br/> (setq<br/> F (append<br/> F<br/> (list<br/> (cdr (assoc 1 DXF))<br/> )<br/> )<br/> )<br/> )<br/> )<br/> F<br/>) 多谢龙版! 本帖最后由 作者 于 2007-1-18 14:23:07 编辑(defun c:tt()
(setq blk (car(entsel)));;本行可根据需要修改
(mapcar 'vla-get-textstring (vlax-invoke (vlax-ename->vla-object blk) 'GetAttributes));;本行为根据块实体名求属性值列表
)
稍加修改应该不错
页:
[1]