Bred Posté(e) le 3 décembre 2007 Posté(e) le 3 décembre 2007 Bonjours,alors là, celle là je ne l'avais jamais vu :Erreur: dépassement du nombre maximum de jeux de sélection...et je ne sais pas d'où ça vient... (je n'ai pas accès au lisp que j'utilisais à ce moment là, c'est un vieux vlx que j'ai récupéré à mon bureau....) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 3 décembre 2007 Posté(e) le 3 décembre 2007 Salut, Extrait de l'aide à propos de ssget : Selection sets consume AutoCAD temporary file slots, so AutoLISP is not permitted to have more than 128 open at one time. If this limit is reached, AutoCAD cannot create any more selection sets and returns nil to all ssget calls. To close an unnecessary selection set variable, set it to nil. En gros, le nombre de jeu de sélections ouverts en même temps ne peut dépasser 128.Le LISP (vlx) que tu utilisais ne devait pas remettre les variables inutiles à nil. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 3 décembre 2007 Auteur Posté(e) le 3 décembre 2007 merci de l'info (gile) ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 23 février 2008 Posté(e) le 23 février 2008 Salut, Un sujet qui devrait t'intéresser. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Olivier_CEA_Grenoble Posté(e) le 26 janvier 2015 Posté(e) le 26 janvier 2015 Bonjour Pas vraiment débutant mais fortement autodidacte :(, j'arrive a mes limites de compréhension. Utilisateur de Mapd3D2008 avec une surcouche GEOMAP 2009 et un bon train de retard, je suis en galère sur une publication. Suite a un ensemble d'action GEOMAP puis MAP et enfin lisp je me retrouve en "error : dépassement du nombre maximum de jeux de sélection" Y a t'il moyen de moyenné ?
GEGEMATIC Posté(e) le 26 janvier 2015 Posté(e) le 26 janvier 2015 B Suite a un ensemble d'action GEOMAP puis MAP et enfin lisp je me retrouve en "error : dépassement du nombre maximum de jeux de sélection" Salutmap ne devrait pas laisser trainer des jeux de sélection, geomap non plus, regarde du coté des tes lisps :faite une recherche sur tous les (SSGETs'il sont attribués à une variable: (setq uneVar (ssget ...))regarde biens que la variable uneVar figure à droite du / du defun :(defun maCommande ( / myVar) si ça persiste, vérifie que tes ssget ne sont pas attribué à une variable incrémentée,genre (set (read (strcat "Prefix" (itoa i)))) avec une boucle qui incrémente le ibon courage,Gérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Olivier_CEA_Grenoble Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 Bonjour Merci de cette réponse rapide, je regarde ces deux pistes surtout le defun que je néglige bien trop souvent par un (/). CdltOlivier
Olivier_CEA_Grenoble Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 si ça persiste, vérifie que tes ssget ne sont pas attribué à une variable incrémentée,genre (set (read (strcat "Prefix" (itoa i)))) avec une boucle qui incrémente le ibon courage,Gérald Je crois bien que je suis en plein dedans avec le 'setq List_bat' incrémenté en ligne 3 : :angry: (while (/= list_bat nil)(setq Nam_bloc (car (car list_bat)))(setq list_bat (cdr list_bat))... Un repeat en lieu et place du while ferais t'il mon affaire? CdltOlivier
GEGEMATIC Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 salut,il y a bien une boucle, mais je ne vois pas de ssget dans cette boucle ? ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Olivier_CEA_Grenoble Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 Pas de SSGET mais SETQ pour la variable Liste_bat qui est incrémentée: (while (/= list_bat nil) (setq Nam_bloc (car (car list_bat))) (setq list_bat (cdr list_bat)) (ggsetcontext (strcat "Nom_Batiment=" nam_bloc)) (if (= (tblsearch "LAYER" "CONTOUR_BATIMENT") nil) (command "calque" "n" "CONTOUR_BATIMENT" "ch" "CONTOUR_BATIMENT" "") (setvar "CLAYER" "CONTOUR_BATIMENT") ) (command "ExeRequest" "BATIMENT&Contour" ) (command "bloc" nam_bloc "0,0" "der" "") (command "_insert" nam_bloc "0,0" "1" "" "0") (if (= site "CEAG") (if (= (member Nam_bloc Bat_exclu ) nil) (progn (if (= (tblsearch "LAYER" "CONTOUR_ANEX")nil) (command "calque" "n" "CONTOUR_ANEX" "ch" "CONTOUR_ANEX" "") (setvar "CLAYER" "CONTOUR_ANEX") ) (command "_insert" nam_bloc "0,0" "1" "" "0") ) ) ))Le SSGET viens après sur la création de fiçhiers log de vérif: La première partie: (defun c:TEST_CM (/ NbSSGET SSGet_BAT SSGet_rdo SSGet_FIXE SSGet_MOBILE Suite)(setq Date_Creation (def_date(getvar "tducreate")));;____________ CONTOUR_BATIMENT (if (/= (ssget "x"'((8 . "CONTOUR_BATIMENT")(0 . "INSERT")))nil) (progn;;Selection de l'ensemble des blocs (0 . "INSERT") dans le calque CONTOUR_BATIMENT (8 . "CONTOUR_BATIMENT") (setq SSGet_BAT (ssget "x"'((8 . "CONTOUR_BATIMENT")(0 . "INSERT"))));;Nombre d'obget dans la selection (setq NbSSGET (sslength SSGet_BAT)) (setq listObjBAT(strcat ": CONTOUR_BATIMENT ")) (if (/= NbSSGET nil) (progn (setq Suite 0) (repeat NbSSGET (setq listObjBAT(strcat ": " (cdr(assoc 2(entget(ssname SSGet_BAT suite))))listObjBAT)) (setq suite (+ 1 suite)) ) ) ) ) (setq listObjBAT (strcat "Pas d'objet sur le calque CONTOUR_BATIMENT")))...
GEGEMATIC Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 salut,je ne vois pas dans ton code la multiplication des jeux de sélectiondans la discussion, il y a plus haut un lien de gile,suit le et tu trouvera:- un lisp pour effacer les ss surnuméraires- un lisp pour les compter commence déjà par celui pour les compter,si tu vois qu'ils sont nombreux, il te faudra modifier le lisp de comptage pour qu'il te donne les nom de symboles correspondants, que tu recherchera dans tes lisp:si ça ne corresponds pas à tes lisps, ça veut dire que le problème vient des applications tierces, la tu ne peux rien faire, sauf lancer le lisp de nettoyage de temps en tempsGérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Olivier_CEA_Grenoble Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 Merci Gérald, J'ai testé les liens de Gile sans aucun succès, je vais tenter de lancer le TEST_CM juste après le lancement des requêtes d'affichage des données. :unsure: Je vous tiens aux jus.
GEGEMATIC Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 Merci Gérald, J'ai tester les lien de Gile sans aucun succès, je vais tenter de lancer le TEST_CM juste après le lancement des requêtes d'affichage des données. :unsure: Je vous tiens aux jus.salut,quand tu as l'erreur, tu colle ce code dans la fenêtre texte: (foreach i (atoms-family 0) (setq iType (type (eval i))) (if (setq tempList (assoc iType TypeList)) (setq TypeList (subst (cons iType (1+ (cdr tempList))) tempList TypeList)) (setq TypeList (cons (cons iType 1) TypeList)) ) )tu devrais obtenir un truc comme ça :((FILE . 1) (PICKSET . 126) (LIST . 52) (VLA-OBJECT . 13) (VLR-Command-Reactor . 1) (REAL . 2) (ENAME . 4) (STR . 43) (SYM . 157) (SUBR . 5985) (EXRXSUBR . 397) (INT . 970)) remarque bien que pickset = 126 /= 128, c'est curieux pour avoir le nom de tes js lisp : (defun c:nomdunJS! () (foreach i (atoms-family 0) (setq iname (vl-symbol-name i)) (setq iType (type (eval i))) (if (= 'PICKSET iType) (setq nomList (cons iname nomlist)) ) ) nomlist ) j'obtiens:("SS1099" "SS1100" "SS1101" "SS1102" "SS1103" "SS1104" "SS1105" "SS1106" "SS1107" "SS1108" "SS1109" "SS1110" "SS1111" "SS1112" "SS1113" "SS1114" "SS1115" "SS1116" "SS1117" "SS1118" "SS1119" "SS1120" ...) après je lance :(j'ai remplacé le eq par un =, là ça marche, mais c'est bizare, le eq devrait marcher)(defun c:PurgeSelectionSets ( / picksets ) (foreach pickset (setq picksets (vl-remove-if-not '(lambda ( symbol ) (= 'pickset (type (eval symbol)))) (atoms-family 0) ) ) (princ (strcat "Purging <" (vl-symbol-name pickset) ">\n" ) ) (set pickset nil) ) (princ (strcat "Purged " (itoa (length picksets)) " selection set(s)." ) ) (princ) )et j'obtiens :Purging <SS1101>Purging <SS1100>Purging <SS1099>Purged 120 selection set(s). ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
VDH-Bruno Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 Bonjour GEGEMATIC, Pour le retourChez moi pas besoin de = car avec eq aucun problème.. Et _$ ; erreur: dépassement du nombre maximum de jeux de sélection _$ $ (length (c:nomdunJS!)) 128 Me retourne bien 128 jeu de sélection A+(ps: Attention à la localisation des variables dans la fonction nomdunJS!) Apprendre => Prendre => Rendre
GEGEMATIC Posté(e) le 27 janvier 2015 Posté(e) le 27 janvier 2015 Bonjour GEGEMATIC, Pour le retourChez moi pas besoin de = car avec eq aucun problème.. Et _$ ; erreur: dépassement du nombre maximum de jeux de sélection _$ $ (length (c:nomdunJS!)) 128 Me retourne bien 128 jeu de sélection A+(ps: Attention à la localisation des variables dans la fonction nomdunJS!)salut,merci pour le retour,C'est curieux, je referais le test demain, et je ne suis pas sur d'obtenir les même résultats.parfois il faut quitter windows pour qu'autocad re-marche normalementa+Gérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
GEGEMATIC Posté(e) le 28 janvier 2015 Posté(e) le 28 janvier 2015 salut,ce matin j'ai toujours 126 js, mais par contre eq fonctionne ...par contre il est a noter que le nombre de js est fixé pour la session autocad, et non par dessinGérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
VDH-Bruno Posté(e) le 28 janvier 2015 Posté(e) le 28 janvier 2015 Salut, ce matin j'ai toujours 126 js, mais par contre eq fonctionne ...par contre il est a noter que le nombre de js est fixé pour la session autocad, et non par dessinToujours 128 jeu de sélection chez moi ;)Effectivement la limite de 128 js est valable pour l'ensemble des documents de la session AutoCAD,je n'y avais jamais prêté attention, merci.A+ Apprendre => Prendre => Rendre
Olivier_CEA_Grenoble Posté(e) le 28 janvier 2015 Posté(e) le 28 janvier 2015 BonjourJe lance le code suivant (foreach i (atoms-family 0) (setq iType (type (eval i))) (if (setq tempList (assoc iType TypeList)) (setq TypeList (subst (cons iType (1+ (cdr tempList))) tempList TypeList)) (setq TypeList (cons (cons iType 1) TypeList)) ) )et en voila le retour ((REAL . 1) (SYM . 11) (INT . 4) (STR . 15) (LIST . 5) (EXRXSUBR . 484) (SUBR . 689))
GEGEMATIC Posté(e) le 28 janvier 2015 Posté(e) le 28 janvier 2015 et en voila le retour ((REAL . 1) (SYM . 11) (INT . 4) (STR . 15) (LIST . 5) (EXRXSUBR . 484) (SUBR . 689)) Salut,est-ce que tu as ce résultat après avoir eu le message d'erreur, ou à froid,parce-que là, tu n'a pas de pickset ! il faut faire la séquence de test lorsque tu as l'erreur Gérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Olivier_CEA_Grenoble Posté(e) le 29 janvier 2015 Posté(e) le 29 janvier 2015 Salut Gérald Oui j'ai bien passé le code après le code erreur et effectivement aucun pickset. Pour le moment, j'ai détourné la vérification de mon fichier (TEST_CM) en incrémentant mes listObj au niveau de mes requêtes par la variable Nam_bloc. Ce n’est donc pas une véritable vérification… :( Peu satisfaisant :( mais ça me rend déjà bien service.
GEGEMATIC Posté(e) le 29 janvier 2015 Posté(e) le 29 janvier 2015 Salut, Oui j'ai bien passé le code après le code erreur et effectivement aucun pickset. Il faudrait déjà que tu nous donne la séquence de commandes qui t’amène au message d'erreur le fait qu'il n'y ait pas de pickset voudrait dire :- soit que les variables contenant les pickset sont localisées, mais ça voudrai dire que tu aurai un defun avec 128 variable à droite du slash ... pas trs plausible- soit que la fonction *error* contient une remise à nil d'une liste de variable- Soit, et la je n'ai pas le moyen de vérifier, que la limite de 128 js n'est pas propre au lisp, mais partagée avec Arx, auquel cas Geomap pourrait être la cause Gérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
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