23 Ιαν 2012

Autocad : Το χρώμα του τρέχοντος Layer

Κάποιες φορές συμβαίνει να έχει τροποποιήσει κάποιος τα χρώματα συγκεκριμένων σχεδιαστικών αντικειμένων ώστε να μην συμφωνούν με το πρότυπο που ορίζει ότι το χρώμα του κάθε αντικειμένου καθορίζεται ρητά από το επίπεδο (layer) στο οποίο αυτό ανήκει .

Επειδή είναι δύσκολο να θυμάται κανείς τι ακριβώς τροποποίησε , το παρακάτω προγραμματάκι σε Autolisp , αναλαμβάνει να ρυθμίσει τα χρώματα ΟΛΩΝ των σχεδιαστικών αντικειμένων ώστε να είναι BY LAYER .


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
;CAD Studio - www.cadstudio.cz
;change color of BYLAYER objects to their layer color (explicit)
(defun c:LColor ( / ss i c ssl ent edata layer laydata laycol)
  (setq i 0  c 0  ssl 0)
  (princ "\nSelect objects to recolor by layer:")
;  (setq ss (ssget))
  (setq ss (ssget '((62 . 256))))
  (if ss (setq ssl (sslength ss)))
  (while (< i ssl)
    (setq ent (ssname ss i))
    (setq edata (entget ent))
    (if (or (not (assoc 62 edata)) (= (assoc 62 edata) 256))
      (progn
       (setq layer (cdr (assoc 8 edata)))
       (setq laydata (tblsearch "LAYER" layer))
       (setq laycol (cdr (assoc 62 laydata)))
       (setq edata (append edata (list (cons 62 laycol))))
       (entmod edata)
       (entupd ent)
       (setq c (1+ c))
      )
    ); if
    (setq i (+ 1 i))
  ); while
  (princ (strcat "\n" (itoa c) " objects recolored"))
  (prin1)
 )
 (princ "\nCADstudio LColor: use the LCOLOR command to start")
 (prin1)

Πιστεύω να το βρείτε χρήσιμο και βολικό.