请问各高手,如何取得图块内的对象参数
一个块内有两个圆,一个六边形,用(setq en (entget (car (entsel))))得出如下结果((-1 . <图元名: 40069ea0>) (0 . "CIRCLE") (330 . <图元名: 40069e78>)
(5 . "7C") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbCircle") (10
353.754 225.839 0.0) (40 . 4.75) (210 0.0 0.0 1.0))
请问各高手,如何取得图块内的两个圆和一个六边形的参数,谢谢! (setq en (tblsearch "block" (cdr (assoc 2 (entget (car (entsel)))))))
(setq a (cdr (assoc -2 en)))
(setq b (entnext a))
得到的a就是块中的第一个对象,b是第二个,,,但不能确定它是什么,这样一直下去,直到找出所有的对象 不是这个块里的图元也会被选到 <P>来一个 VLisp 语句的.....</P>
<P>(defun c:test (/ en *AcadDocument* blocks vn)<BR> (VL-LOAD-COM)<BR> (setq en (vl-catch-all-apply 'entsel (list "\nPlease select a Block object:")))<BR> (if (or (vl-catch-all-error-p en) (null en) (/= (cdr (assoc 0 (entget (car en)))) "INSERT"))<BR> (vl-exit-with-value 0)<BR> )<BR> (setq *AcadDocument* (vla-get-activeDocument (vlax-get-acad-object))<BR> blocks (vla-get-blocks *AcadDocument*)<BR> )<BR> (setq vn (vla-item blocks (cdr (assoc 2 (entget (car en))))))<BR> (vlax-for ent vn<BR> ;;这里的 ent 就是 块内的图元了,可以对其进行操作 <BR> (princ "\n")<BR> (princ (vla-get-ObjectName ent))<BR> )<BR> (prin1)<BR>)<BR></P>
<P> </P>
页:
[1]