DenisHen Posté(e) le 24 novembre 2016 Posté(e) le 24 novembre 2016 Bonjour à la communauté. J'ai réussi à bien progresser dans mes DCL, merci à CadXP... Mais voilà, dans une fenêtre DCL, j'ai un bouton "Import" par lequel j'aimerai, lorsque je clique dessus, avoir une fenêtre (getfiled et, après avoir lu ce fichier (un fichier format ASCII avec les contenus des edit_box), revenir à la fenêtre DCL avec les nouvelles valeurs. Je n'arrive pas à lier une image ("Le serveur a retourné une erreur durant l'envoi."). J'ai essayé un JPG et un PNG... Rien à faire... Même le ZIP déconne... Donc, en gros, j'ai des calques prédéfinis dans un fichiers TXT que j'aimerai mettre à jour ma DCL après la lecture de ce TXT. J'espère être clair... C'est vrai qu'une image serait plus "parlante"... 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 24 novembre 2016 Posté(e) le 24 novembre 2016 Salut, Si je comprends bien la demande, il faut, dans le action_tile du bouton, appeler getfiled, ouvrir et lire le fichier, puis remplir les contrôles edit_box avec set_tile.Quand le contenu d'un action_tile dépasse une ou deux instructions il est souvent plus clair et plus lisible de définir une fonction locale qui fait le boulot et d'appeler simplement cette fonction depuis le action_tile. Un exemple minimaliste : DCLtest :dialog{ label="Test"; :button{ label = "Import"; key = "import"; } spacer; :edit_box{ label = "Ligne1"; key = "ligne1"; edit_width = 16; } :edit_box{ label = "Ligne2"; key = "ligne2"; edit_width = 16; } :edit_box{ label = "Ligne3"; key = "ligne3"; edit_width = 16; } spacer; ok_only; } LSP(defun test (/ import dcl_id) (defun import (/ filename file line lines) (if (setq filename (getfiled "Choisir le fichier à importer" "" "txt" 8)) (progn (setq file (open filename "r")) (while (setq line (read-line file)) (setq lines (cons line lines)) ) (close file) (setq lines (reverse lines)) (set_tile "ligne1" (car lines)) (set_tile "ligne2" (cadr lines)) (set_tile "ligne3" (caddr lines)) ) ) ) (setq dcl_id (load_dialog "test.dcl")) (if (new_dialog "test" dcl_id) (progn (action_tile "import" "(import)") (start_dialog) (unload_dialog dcl_id) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 24 novembre 2016 Auteur Posté(e) le 24 novembre 2016 Salut (gile), et merci de m'aider. Effectivement, tu as tout compris... Je prend bien note de ton code. Merci encore... 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)
DenisHen Posté(e) le 24 novembre 2016 Auteur Posté(e) le 24 novembre 2016 Re. J'ai maintenant un souci avec un (set_tile_list (sur TerryCAD) qui reste en noir dans l'éditeur VisualLISP... Et je n'ai rien trouvé dans l'aide... Par contre, j'ai aussi trouvé un (defun set_tile_list. Cela voudrait dire que (set_tile_list n'existe pas ? ? ? Edit : Et ben non, (set_tile_list n'existe pas. C'est gérer par un (defun...Par contre, ma liste est bien remplie dans ma DCL, mais dès que je clique sur une valeur, ça me ferme ma fenêtre : (set_tile_list "TypeSepar" TypeSepar@ 1) (action_tile "TypeSepar" "(set_list_value \"TypeSepar@\" \"Value1$\")") 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)
Patrick_35 Posté(e) le 24 novembre 2016 Posté(e) le 24 novembre 2016 Salut Je ne saisie pas bien le problème.Si c'est la valeur choisie dans une liste, tu auras la position dans la liste.(action_tile "TypeSepar" "(setq position $value)")Puis dans le lisp(nth (atoi position) ma_liste) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 24 novembre 2016 Auteur Posté(e) le 24 novembre 2016 Salut Patrick_35, et merci pour ta réponse... Je craignais une solution trop complexe pour mon humble niveau, j'ai donc opter pour des "radio_button", vu que ma liste ne comportait que 3 valeurs et qu'ils ont l'air plus simple d'utilisation... Merci encore... 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