(gile) Posté(e) le 7 avril 2023 Posté(e) le 7 avril 2023 Salut, Je prends le train en route, mais, personnellement, je commencerais par faire "au plus simple". Test : dialog{ label = "Titre"; :row{ :edit_box{ label="Test à aligner : Départ ="; key = "DimChapDep"; edit_width=4; } :edit_box{ label="Arrivée ="; key = "DimChapArr"; edit_width=4; } } spacer; ok_cancel; } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 7 avril 2023 Auteur Posté(e) le 7 avril 2023 Salut @(gile), et merci pour ta remarque qui vient de me donner une gentille claque... Effectivement, c'est beaucoup plus simple. Mais ça ne fonctionne par partout, qu'en est-il pour ça ? Qui donne : C'est dans des cas où les "tiles" sont mélangés que je galère... 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 7 avril 2023 Posté(e) le 7 avril 2023 Peut-être comme ça : Test : dialog{ label = "Titre"; :row{ :text{ label= "Ouvrant principal :"; alignment=centered; } :radio_row{ :radio_button{ label="Départ"; key = "CharDep"; } :radio_button{ label="Arrivée"; key = "CharArr"; } } :toggle{ label = "Poignée int."; key = "PoiInt"; } :toggle{ label = "Poignée ext."; key = "PoiExt"; } :column{ ok_button; cancel_button; } } } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 7 avril 2023 Auteur Posté(e) le 7 avril 2023 Merci @(gile), c'est beaucoup mieux que ce que j'arrivais à faire... Ce n'est pas vraiment aligner, mais ça me va... Par contre, avec ça, j'ai essayé plusieurs méthodes. On voit une différence selon que le fixed_height attribut le column général ou le edit_box... Ce qui donne des alignements biscornus... Bon, demain est un autre jour... 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 8 avril 2023 Posté(e) le 8 avril 2023 Encore une fois, commence toujours par faire au plus simple. Le DCL ne permet pas toujours un contrôle précis de la position des éléments. Comme dit par d'autres, si l'apparence des boites de dialogues est primordiale, il faut passer à Open/Object DCL, VBA ou .NET. En groupant les contrôles dans des boxed_row ou boxed_column, on peut plus facilement arriver à des résultats acceptables. Test :dialog{ label = "Titre"; :boxed_radio_row{ label="Présence d'un cadre"; spacer_1; :radio_button{ label="Avec cadre"; key="AvecCad"; } :radio_button{ label="Sans cadre"; key="SansCad"; } } :row{ :boxed_column{ label="Dimensions"; :edit_box{ label="Long. cadre ="; key="LongCad"; edit_width=4; } :edit_box{ label="Larg. cadre ="; key="LargCad"; edit_width=4; } } :boxed_column{ label="Epaisseurs"; :edit_box{ label="Epais. long ="; key="EpaisLong"; edit_width=4; } :edit_box{ label="Epais. larg ="; key="EpaisLarg"; edit_width=4; } } } spacer; ok_cancel; } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 8 avril 2023 Auteur Posté(e) le 8 avril 2023 Merci @(gile) pour ton aide. Je ne peut pas faire ça, car la fenêtre et le code que j'ai posté sont juste un teste, ça fait parti d'une autre fenêtre beaucoup plus grande, et c'est organisé comme ça. Ma méthode (qu'on m'a conseillée plusieurs fois) est d'isoler le problème puis le résoudre en faisant des testes. Donc, je n'ai pas trop le choix, ça doit tenir en une ligne. Et faire des boxed_* augmente la taille de la fenêtre, et je voudrait éviter de faire des pancartes 😉. 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 8 avril 2023 Posté(e) le 8 avril 2023 Il y a 2 heures, DenisHen a dit : ça fait parti d'une autre fenêtre beaucoup plus grande, et c'est organisé comme ça. [...] Et faire des boxed_* augmente la taille de la fenêtre, et je voudrait éviter de faire des pancartes Si ta boite de dialogue est trop grande pour pouvoir l'organiser clairement avec des cadres (boxed_*), c'est, à mon avis, qu'il est temps de reconsidérer la question dans sa globalité. Une boite de dialogue trop grande, c'est ce que j'appelle le syndrome du couteau suisse : quand il a trop de lames, on n'arrive plus à trouver facilement celle qu'on cherche... On utilise des boites dialogue quand on estime que les saisies en ligne de commande serait trop confuses, faire des boites de dialogues qui ne seraient pas plus claires n'est pas une solution. Essaye de voir si tu ne peux pas la séparer en plusieurs boites plus petites qui seraient appelées en cascade et uniquement si nécessaire. Dans ton dernier exemple, on peut supposer que si on choisit l'options "Sans cadre", il n'est pas nécessaire de spécifier les longueur, largeur et épaisseurs. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 8 avril 2023 Posté(e) le 8 avril 2023 Bonjour @DenisHen Je me sens obligé de plussoyer @(gile) Trop de choix est contre-productif. Faire le "m'as-tu-vu" est sympa pour se faire plaisir (et encore ça se discute !), mais les utilisateurs se perdent dans les choix, sachant que certaines combinaisons n'existent pas. Une autre proposition : il est possible de griser un choix s'il n'est pas accessible, par exemple griser les tailles de cadres si le bouton de choix est "sans cadre". Penser aux caractères mnémotechniques est un plus remarqué par les utilisateurs habitués au clavier. Le mieux est l'ennemi du bien... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rebcao Posté(e) le 8 avril 2023 Posté(e) le 8 avril 2023 Bonjour, Pour afficher une IMAGE dans un DCL, ce je fais : 1. J'insère l'image dans un dessin VIERGE 2. Je fais un ZOOM ETENDU 3. Comme l'image n'est pas proportionnel à la fenêtre je recadre la fenêtre sur l'image 4. Je fais un MCLICHE Et j'obtiens bien mon image dans la fenêtre DCL... Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
DenisHen Posté(e) le 8 avril 2023 Auteur Posté(e) le 8 avril 2023 Bonjour à tous, et merci pour votre aide. @(gile) : effectivement, si "Avec cadre" est sélectionné, certaines cases s'activent ou s'inactivent selon les besoins. J'y ai passé du temps (déjà à comprendre), mais j'y suis arrivé 👍. Faire plusieurs fenêtres qui s'affichent successivement ne montre pas la somme des variables en un coup d'œil, il faut sans cesse cliquer pour bien connaitre les saisies. je ne trouve pas ça très "convivial" ou "efficace", mais c'est probablement juste une question personnelle, ou de gout. @didier : plussoie l'ami 😉, c'est cadeau. Ma fenêtre n'est pas énorme (12 / 15 cm sur l'écran) et il n'y a pas trop de variables (beaucoup moins que dans d'autres fenêtres que j'ai déjà croisées), elles sont toutes essentielles. Je préfère créer des fenêtres "modestes" car je pense à ceux qui sont sur un ordinateur portable avec un "petit" écran et/ou une définition "faible". De plus, je n'ai rien trouvé pour mettre en gras ou italique le contenu des fenêtres, et je pense que ça n'existe pas, car jamais vu une fenêtre DCL formaté. Est-ce une raison de plus pour passer à Visual Studio ? @rebcao : merci pour ton rappel, qui me vieilli de 30 années (qui se souvient d'AutoCAD 11 sous DOS ?) ! ! ! Pour préciser mon but : voici 4 exemples qui dessinent une ouverture (fenêtre ou porte) en seulement deux cliques. Je dessine des maisons individuelles et des immeubles et c'est crevant de dessiner les ouvertures, et tout aussi crevant de le faire avec des blocs (car il faut les faire et je n'en ai pas "besoin", car aucune ouverture ressemble à une autre). On peut voir vite fait quelques options : avec poignée, l'angle d'ouverture, oscillo-battant ou pas... Mais d'autres options existent : châssis fixes (à gauche et/ou à droite), dessin des montants (exemple 1), dessin des poignées (intérieurs et/ou extérieurs), ouverture à battants, sur rails, à galandage, fixes, de 1 à 4 vantaux... Je m'arrête-là. Tous ça car, mon voisin de droite ne travaille pas comme moi, ni comme celui de gauche, et ces deux-là ne travaillent pas comme moi... Et ceux d'en face ? ? ? 😉 Ca à l'air d'un casse-tête, mais après 2 ou 3 utilisations (testé sur des collègues), c'est on ne peut plus simple et rapide. Mon but n'est pas de faire rapidement du code mais de faire rapidement du dessin... Bref, j'espère que ce sera plus clair quand je partagerais tous ça... Encore un grand merci à tous. 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 8 avril 2023 Posté(e) le 8 avril 2023 Il y a 1 heure, DenisHen a dit : Ma fenêtre n'est pas énorme (12 / 15 cm sur l'écran) Alors je me permet d'insister à propos de l'utilisation de clusters (boxed_*) qui clarifieront l'affichage et permettront un code LISP plus simple. Un boxed_radio_* permet de récupérer directement la clé de l'option choisie et il est possible de griser/dégriser l'ensemble du contenu d'un cluster. En reprenant l'exemple précédent, DCL Test :dialog{ label = "Titre"; :row{ :boxed_radio_column{ label="Présence d'un cadre"; key="Cadre"; :radio_button{ label="Avec cadre"; key="AvecCad"; } :radio_button{ label="Sans cadre"; key="SansCad"; } } :boxed_column{ label="Dimensions"; key="Dim"; :edit_box{ label="Long. cadre ="; key="LongCad"; edit_width=4; } :edit_box{ label="Larg. cadre ="; key="LargCad"; edit_width=4; } } :boxed_column{ label="Epaisseurs"; key="Epais"; :edit_box{ label="Epais. long ="; key="EpaisLong"; edit_width=4; } :edit_box{ label="Epais. larg ="; key="EpaisLarg"; edit_width=4; } } } spacer; ok_cancel; } LISP (defun c:test (/ dcl_id) (setq dcl_id (load_dialog "B:\\Desktop\\Test.dcl")) (new_dialog "Test" dcl_id) (set_tile "Cadre" "AvecCad") (action_tile "Cadre" (vl-prin1-to-string '(if (= $value "AvecCad") (progn (mode_tile "Dim" 0) (mode_tile "Epais" 0) ) (progn (mode_tile "Dim" 1) (mode_tile "Epais" 1) ) ) ) ) (start_dialog) (unload_dialog dcl_id) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 8 avril 2023 Auteur Posté(e) le 8 avril 2023 Salut @(gile), je l'avais bien compris, et mis en œuvre. Citation J'y ai passé du temps (déjà à comprendre), mais j'y suis arrivé 👍. par contre, je ne passais pas par un (vl-prin1-to-string mais via un (action_tile tout simple : (action_tile "NbVt1" "(if (= \"1\" $value) (progn (setq NbVt \"1\") (mode_tile \"DimChaDep\" 1) (mode_tile \"DimChaArr\" 1)) )" ) ;_ Fin de action_tile (action_tile "AvecCad" "(if (= \"1\" $value) (progn (setq CadreON \"AvecCad\") (mode_tile \"LongCad\" 0) (mode_tile \"EpaisLong\" 0) (mode_tile \"LargCad\" 0) (mode_tile \"EpaisLarg\" 0) (mode_tile \"EpaisOuv\" 1)) )" ) (action_tile "SansCad" "(if (= \"1\" $value) (progn (setq CadreON \"SansCad\") (mode_tile \"LongCad\" 1) (mode_tile \"EpaisLong\" 1) (mode_tile \"LargCad\" 1) (mode_tile \"EpaisLarg\" 1) (mode_tile \"EpaisOuv\" 0)) )" ) Le plus difficile, c'est que l'IDE ne gère que les couleurs et pas l'indentation dans ce qu'il y a entre guillements... Donc, ce qui est entre guillemets n'est pas toujours évident à comprendre, mais ça ce fait après un petit entrainement... 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 8 avril 2023 Posté(e) le 8 avril 2023 Regarde bien ce que j'ai écrit. Avec les clusters, pas besoin d'un action_tile pour chaque radio_button, juste un seul pour le boxed_radio_column, idem pour les appels à mode_tile, on grise ou dégrise tout le cluster d'une seule ligne au lieu de le faire pour chaque edit_box. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 8 avril 2023 Auteur Posté(e) le 8 avril 2023 Wouaouw, je n'avais pas tout compris (même après relecture)... C'est vachement plus puissant que ce que je faisais... En gros, il n'y a plus qu'un seul (action_tile au lieu de la multitude qu'il peut il y avoir selon le nombre de "tile"... Très judicieux, et comme à ton habitude, bien plus efficient, direct et très simple (en fait)... Un merci énorme pour ce raccourcis de pensée... 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)
Flobott Posté(e) le 13 avril 2023 Posté(e) le 13 avril 2023 @didier Tu obtiens un alignement sur leurs bases malgré la ligne et les colonnes, je te fournis en pièce jointe un extrait de mon code (entre les ligne 242 et 567), en espérant que cela t'aide.Extrait_DCL.lsp @DenisHen Citation J'ai tenté le coup avec des vertical_alignment que j'ai "inventé". Car je ne l'ai trouvé nul part, c'est en tapant au pif qu'il s'est colorisé en bleu dans l'IDE, coup de bol... Super t'as trouvaille, je pense que top et bottom doivent aussi fonctionner, à tester. Pour ma part si je change mes "vertical_margin=none;" en "vertical_margin=centered;" cela me donne le même resultat que si je n'avais pas mis de "vertical_margin=none;". et avec "vertical_margin=none;" en colonne dans une ligne j'ai un bon résultat : J'espère que mon code peut vous aidez à aligner différentes tuiles, dans mon cas : toggle, edit_box, text et image_button sont alignées. 1 AutoCad c'est comme mon cerveau, je ne l'utilise qu'à 10% Oo
didier Posté(e) le 13 avril 2023 Posté(e) le 13 avril 2023 Bonjour @Flobott Je te remercie pour tes efforts, mais mauvaise nouvelle, je n'ai pas réussi à faire tourner ton exemple. C'est un extrait et il doit y avoir des manques que j'ignore. Je continue à chercher, mais j'ai d'autres choses sur le feu, et en plus le DCL est vraiment peu en usage, donc peu d'envie de travailler à fond dessus. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Flobott Posté(e) le 14 avril 2023 Posté(e) le 14 avril 2023 @didier Pas de soucis, je t'ai fait un extrait fonctionnel en vitesse, commande TL. Tuile_alignees.lsp Citation Je continue à chercher, mais j'ai d'autres choses sur le feu, et en plus le DCL est vraiment peu en usage, donc peu d'envie de travailler à fond dessus. Ne le laisse pas trop de côté, ton site m'a bien aidé à mes débuts (et pas que à mes début) dans le DCL et je ne dois pas être le seul mais un temps pour tous c'est mieux ^^ AutoCad c'est comme mon cerveau, je ne l'utilise qu'à 10% Oo
DenisHen Posté(e) le 14 avril 2023 Auteur Posté(e) le 14 avril 2023 @Flobott : non, tu n'es pas le seul pour qui le site de @didier est un véritable couteau suisse ! ! ! Encore merci à lui... 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)
didier Posté(e) le 15 avril 2023 Posté(e) le 15 avril 2023 Bonjour @Flobott Je te remercie pour tes efforts, en particulier le dépôt du fichier DCL. En fait de fichier DCL, c'est un fichier LSP qui crée un fichier DCL temporaire et ce n'est pas simple à lire, a minima : moins simple qu'un pur fichier DCL avec la possibilité d'aperçu dans l'éditeur sans avoir à enregistrer les modifications. J'ai donc été "obligé" de créer un DCL pour les tests. Toutefois, sans arriver à réaliser parfaitement la demande de @DenisHen. Je continue à chercher, mais ce langage manque quelque peu de retours d'expériences, ce que je me propose de faire sur mon site. Amicalement Éternel débutant... Mon site perso : Programmer dans 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