pnoraa 发表于 2022-7-6 06:07:32

lisp更改图层属性

我试图找到一个lisp来更改图层线型和颜色,如果它们在图层名称中包含某些文本。e、 g如果我有一个名为“contour 1234”的图层,lisp可以从contour开始更改图层的颜色和线型吗?有谁知道我在哪里可以找到这个lisp吗?

Tharwat 发表于 2022-7-6 06:46:43

欢迎先来论坛
 
如果代码找到一个以轮廓开始的图层名,你能写下要更改的颜色和线型吗?
 
塔瓦特

Tharwat 发表于 2022-7-6 07:24:25

更改代码中的线型和颜色以满足您的需要。
 

(defun c:Test (/ lt cl l e)
;; Tharwat 19.Sep.2013    ;;
(setq lt "DASHED" ;; LineType   ;;
       cl 3      ;; Color number   ;;
)
(if (not (tblsearch "LTYPE" lt))
   (vla-load
   (vla-get-Linetypes
       (vla-get-ActiveDocument
         (vlax-get-acad-object)
       )
   )
   lt
   "acadiso.lin"
   )
)
(while (setq l (tblnext "LAYER" (null l)))
   (if (wcmatch (cdr (assoc 2 l)) "contour*")
   (progn
       (setq e (entget (tblobjname "LAYER" (cdr (assoc 2 l))))
             e (subst (cons 62 cl) (assoc 62 e) e)
             e (subst (cons 06
                            (if (and lt (tblobjname "ltype" lt))
                              lt
                              "Continuous"
                            )
                      )
                      (assoc 06 e)
                      e
               )
       )
       (entmod e)
   )
   )
)
(princ)
)
(vl-load-com)

页: [1]
查看完整版本: lisp更改图层属性