Salut, voici ton lisp avec les modifs suivantes : - comptage du nombre d'éléments - je me suis permis de modifier ton code pour la couleur car elle ne peut pas être négative (defun c:listcalq ()
(setq calq (tblnext "layer" T))
(setq enr (strcat (getvar "dwgprefix")
(substr (setq fichier (getvar "dwgname"))
1
(- (strlen fichier) 4)
)
".csv"
)
) ;on définit chemin+nom du fichier à écrire
(setq fichier (open enr "w")) ;on ouvre le fichier à écrire (s'il n'existe pas, il est créé ; s'il existe, il sera réécrit)
(setq dwg (strcat (getvar "dwgprefix") (getvar "dwgname")))
;(setq enr "c:\\LISTE.csv")
;(setq fichier (open enr "a"))
(while calq
(setq nb_obj 0)
(setq nom (cdr (assoc 2 calq)))
(print(setq nb_obj (ssget "_X" (list (cons 8 nom)))))
(if (= nb_obj nil)
(setq nb_obj 0)
(setq nb_obj (sslength nb_obj))
)
(setq couleur (itoa (abs (cdr (assoc 62 calq)))))
;; Si le code 62 est négatif le calque est inactif
(setq ligne (strcat dwg
";"
nom
";"
couleur
";"
(itoa nb_obj)
)
)
(write-line ligne fichier)
(setq calq (tblnext "layer"))
)
(close fichier)
) bonne soirée [Edité le 8/11/2006 par saamreivax]