Dans ton message, tu signales que tu as trouve un Lisp qui separe les entites par couleur !
Je ne sais pas de quelle routine, tu parles !!
Donc je te propose la MEME routine E2LBC "de competition" que j'utilise ... MERCI Mr dlanorh !
E2LBC traite TOUTES les couleurs: ACI AutoCAD Color Index (0-256) , RGB/RVB (16 millions de couleurs) , Pantome , RAL , etc !
LA SANTE, Bye, lecrabe
;; ;; Routine: E2LBC__Entities_to_Layer_By_Color__dlanorh by dlanorh for Patrice B. ;; ;; Move selected Entities on separate layers depending on Color ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; (entget (car (entsel)) '("*")) ;; (vl-load-com) (defun LM:True->RGB ( c ) (mapcar '(lambda ( x ) (lsh (lsh (fix c) x) -24)) '(8 16 24))) (defun rh:lst2str ( lst del / str ) (setq str "") (mapcar '(lambda (x) (setq str (strcat str x del))) lst) (vl-string-right-trim del str)) (defun rh:layer_props ( lyr lst / v ) (setq v (mapcar '(lambda (x) (vlax-get-property lyr x)) lst))) (defun rh:strlen3 ( str ) (if (< (strlen str) 3) (while (< (strlen str) 3) (setq str (strcat "0" str))) str) str) ;; Entities to layer by color (defun c:E2LBC ( / c_doc c_lyrs l_props ss cnt ent elst lyr l_vals cstr clst clr nlyr lobj) (setq c_doc (vla-get-activedocument (vlax-get-acad-object)) c_lyrs (vla-get-layers c_doc) l_props (list 'truecolor 'linetype 'lineweight);Layer properties list );end_setq (prompt "\nSelect Entities : ") (setq ss (ssget)) (cond (ss (repeat (setq cnt (sslength ss)) (setq ent (ssname ss (setq cnt (1- cnt))) elst (entget ent) lyr (cdr (assoc 8 elst));Layer l_vals (rh:layer_props (vla-item c_lyrs lyr) l_props);Layer properties cstr "" clst nil );end_setq (foreach x '(62 420 430) (setq clst (cons (cdr (assoc x elst)) clst))) (setq clr (vl-some '(lambda (x) x) clst)) (cond ( (not clr) (setq cstr "256")) ;No Color set (bylayer) ( (and (= (type clr) 'INT) (<= clr 256)) ;ACI (0-256) (setq cstr (rh:strlen3 (itoa clr))) ) ( (= (type clr) 'STR) (setq cstr clr)) ;Color Book (t (setq clr (mapcar 'itoa (LM:True->RGB clr));RGB cstr (rh:lst2str (mapcar 'rh:strlen3 clr) "_") );end_setq ) );end_cond (setq nlyr (strcat lyr "__" cstr)) (cond ( (not (tblsearch "layer" nlyr)) (setq lobj (vla-add c_lyrs nlyr)) (mapcar '(lambda (x y) (vlax-put-property lobj x y)) l_props l_vals))) (vlax-put-property (vlax-ename->vla-object ent) 'layer nlyr) );end_repeat ) (t (alert "NO Entities Selected ! ")) );end_cond (princ) );end_defun