markv 发表于 2022-7-6 08:43:42

Lisp选择字段和hig

我不确定这是内置在CAD中还是需要lisp。我想选择一个包含区域信息的字段,并突出显示与该字段关联的对象。字段是块中的属性。有什么建议吗?

Lee Mac 发表于 2022-7-6 08:53:18

以下是该计划的基本形式:
 
(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)
)

Tharwat 发表于 2022-7-6 09:04:08


 

(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

Lee Mac 发表于 2022-7-6 09:13:10

这两种解决方案中有一种适合markv,还是我们在浪费时间?

markv 发表于 2022-7-6 09:21:50

对不起,我一直在用第一种溶液。谢谢你的帮助。我以为我已经发回了。我再次道歉

Tharwat 发表于 2022-7-6 09:29:30

 
没问题,很高兴终于收到你的来信。

markv 发表于 2022-7-6 09:40:48

现在,如果我能检查一下拼写错误

Lee Mac 发表于 2022-7-6 09:50:14

好东西markv
页: [1]
查看完整版本: Lisp选择字段和hig