DenisHen Posté(e) le 29 septembre 2014 Posté(e) le 29 septembre 2014 Bonjour à tous, Voilà, dans le fichier joint, j'ai 46 petites requètes. Je les ai édités et compilées dans un seul fichier RequetesSDDEA.LSP. Mon problème est que mon LiSP ne fonctionne pas. Quelqu'un aurait une solution ? 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)
bonuscad Posté(e) le 29 septembre 2014 Posté(e) le 29 septembre 2014 Bonjour, Pour avoir fais quelques requêtes en lisp, je remarque qu'elles sont montés de la même façon que toi.La seule chose qui différencie et que j'utilise la fonction (ade_dsattach) pour attacher le dessin sur lequel je veux faire une requête: ceci en début de code.(setq dwg_id (ade_dsattach "ALIAS:\\Chemin\\fichier.dwg"))ainsi que la fonction: après un appel à (ade_qryexecute)(ade_qrygetentlist id_dwg) pour avoir toutes les entités correspondant à ma requête.et (ade_dsdetach id_dwg) pour détacher le fichier nécessaire lorsque la requête a été effectuée. J'espère que ces quelques observations vont te mettre sur la voie. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bonuscad Posté(e) le 29 septembre 2014 Posté(e) le 29 septembre 2014 NB:Tu pourrais utiliser un (foreach) sur une liste au lieu de répéter x fois la même chose.Je te donne un exemple (qui ne sera pas applicable tel quel, mais te montrera la syntaxe) (setq lst_all '("NORD" "CENTRE" "SUD OUEST" "SUD EST") ) (defun localize_commune (nam_com dwg_id / ) (ade_qryclear) (ade_qrysetaltprop nil) (ade_qrysettype "preview") (ade_qrydefine '("" "" "" "Property" ("layer" "=" "PR,PR_LIMITES,PR-LIMITES")"")) (ade_qrydefine (list "AND" "" "" "Data" (list "objdata" "POINTS-ROUTIERS.GROUPEMENT_PR" "=" nam_com)"")) (ade_qrydefine '("OR" "" "" "Property" ("layer" "=" "Reseau d_Interet Economique et Touristique,Reseau d_Interet Local,Reseau Ossature")"")) (ade_qrydefine (list "AND" "" "" "Data" (list "objdata" "VOIES-DEPARTEMENTALES.GROUPEMENT_SECTION" "=" nam_com)"")) (ade_qryexecute) ) (defun C:test_groupement ( / ade_cmddia_before_qry id_dwg ade_tmpprefval) (setq ade_cmddia_before_qry (getvar "cmddia")) (setvar "cmddia" 0) (mapcar 'ade_dwgdeactivate (ade_dslist)) (setq id_dwg (ade_dsattach "SIG:\\L93-BD_RESEAU-07\\XRef\\NewL93_RGF Reseau Routier aux limites.dwg")) (setq ade_tmpprefval (ade_prefgetval "ActivateDwgsOnAttach")) (ade_prefsetval "ActivateDwgsOnAttach" ade_tmpprefval) (foreach n lst_all (localize_commune n id_dwg) (print n) (getkword "\nGroupement suivant") ) (ade_qrygetentlist id_dwg) (ade_dsdetach id_dwg) (setvar "cmddia" ade_cmddia_before_qry) (prin1) ) A toi de construire la liste lst_all comme il convient Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
DenisHen Posté(e) le 30 septembre 2014 Auteur Posté(e) le 30 septembre 2014 Bonjour BonusCAD, Merci de m'aider sur ce problème. Juste une petite question, suis-je obligé d'utiliser "ade_dsattach", car mon fichier DWG est déjà lié à mon dessin ? Surtout que je ne fais pas çà pour moi, mais pour un collègue qui s'y connais encore moins que moi en LiSP... Encore 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)
GEGEMATIC Posté(e) le 30 septembre 2014 Posté(e) le 30 septembre 2014 salut à tous les 2, denis, c'est déjà pas mal d'avoir remarque qu'un QRY se comporte comme un LSP, mais aussi comme un SCR la solution de Bonuscad te permet d'avoir un lisp plus concis. à voir ton lisp, je pense que cette séquence:(mapcar 'ade_dwgdeactivate (ade_dslist)) (setq ade_tmpprefval (ade_prefgetval "ActivateDwgsOnAttach")) (ade_prefsetval "ActivateDwgsOnAttach" T) (ade_prefsetval "ActivateDwgsOnAttach" ade_tmpprefval) ne sert à rien, et surtout (mapcar 'ade_dwgdeactivate (ade_dslist))fait que ça ne fonctionne pas, car tu désactive tous tes dessins :ensuite tu dis à autocad qu'il faut activer quand tu attache:(ade_prefsetval "ActivateDwgsOnAttach" T)et ensuite tu lui dit de faire comme avant(ade_prefsetval "ActivateDwgsOnAttach" ade_tmpprefval) le tout sans avoir attaché de dessin. comme cette séquence est présente à chaque fois, je ne vois pas comment ça pouvait marcherremplace ade_dwgdeactivate par ade_dwgactivate au début de ton lispsupprime toutes les séquence suivante,ça devrait marcher Gérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
DenisHen Posté(e) le 1 octobre 2014 Auteur Posté(e) le 1 octobre 2014 Salut à tous, Merci, ça fonctionne super ! ! C'est un gain de temps incroyable et une source d'erreur en moins, 46 requêtes, parfois on en oubli... Encore 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)
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