doua Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 salut, j'ai fait un programme pour créer des wbloc pour chaque calque en integrant dans chaque calque le calque "cartouche " .mais il me donne comme erreur : type d'argument incorrect: listp je me demande si ce n'ai pas sur cette ligne ou je me suis tromper (setq sel2 (ssadd (ssname sel1 i) sel2)) voilà une partie du programme (en fait la variable "ncalque" contient tous mes calques) ;;---Début---------------------------------------------------C:eclatfol--- ;; crée des wblocs avec les layers d'un dessin >> ;------------------------------------------------------------------------------- (setq sel1 (ssget "x" (list (cons 8 "cartouche")))) (setq sel2 (ssget "x" (list (cons 8 ncalque)))) (setq long1 (length sel1)) ;(setq sel sel2) (setq i 0) (repeat long1 (setq sel2 (ssadd (ssname sel1 i) sel2)) (setq i (+ i 1)) ) (setq nomfich (getvar "dwgname")) (setq nomdir (getvar "dwgprefix")) (setq nomfich (substr nomfich 1 (- (strlen nomfich) 4))) (if sel2 (command "_wblock" (strcat nomdir nomfich "_" ncalque) "" (list 0 0) sel2 "") ) (setq compt (+ compt 1)) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; merci pour votre aide doua
bonuscad Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 type d'argument incorrect: listp Signifie que l'argument sousmis n'est pas une liste. Je ne sais comment est ta variable ncalque, donc je pense plutôt à cette ligne(list (cons 8 ncalque)), ou ailleurs dans le reste de ton code non posté. J'ai trouvé: (length) requiert une liste! Tu doit employer (sslength) pour avoir le nombres d'éléments dans un jeu de sélection. [Edité le 23/5/2006 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
doua Posté(e) le 24 mai 2006 Auteur Posté(e) le 24 mai 2006 salut bonuscad, citation extraite du message original: ******J'ai trouvé: (length) requiert une liste!Tu doit employer (sslength) pour avoir le nombres d'éléments dans un jeu de sélection. c'etait ça on fait qui bloque, car mnt il m'a créer le fichier wblock c'est bon ça marche !! merci bonuscad
DenisHen Posté(e) le 17 octobre 2006 Posté(e) le 17 octobre 2006 Bonsoir à tous... (en fait la variable "ncalque" contient tous mes calques) J'aimerais savoir, justement, comment remplir cette liste pour y avoir celle de mes calques... Merci, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 17 octobre 2006 Posté(e) le 17 octobre 2006 Pour avoir la liste de tout les calques (dans l'ordre alphabétique) (setq lay (tblnext "LAYER" T)) ; données du premier calque de la collection (while lay (setq lay_lst (cons (cdr (assoc 2 lay)) lay_lst) ; constitution de la liste lay (tblnext "LAYER") ; données du calque suivant ) ) (acad_strlsort lay_lst) ; mise en ordre alphabétique Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant