Lisp选择字段和hig
我不确定这是内置在CAD中还是需要lisp。我想选择一个包含区域信息的字段,并突出显示与该字段关联的对象。字段是块中的属性。有什么建议吗? 以下是该计划的基本形式:(defun c:fieldobject ( / en )
(while
(progn (setvar 'ERRNO 0) (setq en (car (nentsel "\nSelect Field: ")))
(cond
( (= 7 (getvar 'ERRNO))
(princ "\nMissed, try again.")
)
( (eq 'ENAME (type en))
(if
(and
(wcmatch (cdr (assoc 0 (setq en (entget en)))) "*TEXT,ATTRIB")
(setq en (cdr (assoc 360 en)))
(setq en (dictsearch en "ACAD_FIELD"))
(setq en (dictsearch (cdr (assoc -1 en)) "TEXT"))
(setq en (cdr (assoc 360 en)))
(setq en (cdr (assoc 331 (entget en))))
)
(redraw en 3)
(princ "\nObject does not contain a Field.")
)
)
)
)
)
(princ)
) 这
(defun c:TesT (/ selectionlist ss i ssNme lst)
;;; Tharwat 17. Oct. 2011 ;;;
(if (setq selectionlist (ssadd)
ss (ssget "_x" '((0 . "INSERT") (66 . 1)))
)
(progn
(repeat (setq i (sslength ss))
(setq ssNme (ssname ss (setq i (1- i))))
(vlax-for x
(vla-item
(vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
(cdr (assoc 2 (entget ssNme)))
)
(if
(and
(eq (vla-get-objectname x) "AcDbMText")
(not
(eq (vl-string-search "Area" (vla-fieldcode x) 0) "")
)
)
(ssadd ssNme selectionlist)
)
)
)
(sssetfirst nil Selectionlist)
)
(princ)
)
(princ)
)
(vl-load-com)
Tharwat 这两种解决方案中有一种适合markv,还是我们在浪费时间? 对不起,我一直在用第一种溶液。谢谢你的帮助。我以为我已经发回了。我再次道歉
没问题,很高兴终于收到你的来信。 现在,如果我能检查一下拼写错误 好东西markv
页:
[1]