Invité -=micka=- Posté(e) le 20 juin 2011 Posté(e) le 20 juin 2011 Bonjour, je suis actuellement en train d'essayer de créer une boite dcl, mais je rencontre quelques dificultés: j'aimerai savoir s'il existe une commande (ou autre) qui me permettrait d'avoir en temps réel une valeur qui varierait en fonction de la valeur d'une liste déroulante qui serait dans cette meme boite dcl. Pour m'expliquer:j'ai créé une boite dcl avec 4 listes déroulantes, elles servent a définir le nombre d'éléments que je veux insérer contre une ligne que j'aurait mesurer avant.mais pour savoir combien j'en veux il me faudrait déja un "encart" qui affichrait la longueur de la ligneet un deuxieme "encart" qui m'indiquerait la place que qui reste contre la ligne.donc ce deuxième "encart" se metrait a jour à chaque fois que je changerais les valeurs des listes déroulantes. Je joins le lisp et le dcl de ce que j'ai fait:Le Lisp: (defun c:bdcl_140611 (/ liste n nbre) (setq liste_rh (list "0" "1")) (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6" )) (setq liste_b2m (list "0" "1" "2" "3" "4" "5" "6")) (setq liste_sh (list "0" "1")) (setq dcl_id (load_dialog "BDCL_140611.dcl")) (if (not (new_dialog "bdcl_140611" dcl_id)) (exit) ) (start_list "nbr_rh") (mapcar 'add_list liste_rh) (end_list) (action_tile "accept" "(setq nbre_rh (atof (nth (atoi (get_tile \"nbr_rh\")) liste_rh))) (done_dialog))" ) (start_list "nbr_b3m") (mapcar 'add_list liste_b3m) (end_list) (action_tile "accept" "(setq nbre_b3m (atof (nth (atoi (get_tile \"nbr_b3m\")) liste_b3m))) (done_dialog))" ) (start_list "nbr_b2m") (mapcar 'add_list liste_b2m) (end_list) (action_tile "accept" "(setq nbre_b2m (atof (nth (atoi (get_tile \"nbr_b2m\")) liste_2m))) (done_dialog))" ) (start_list "nbr_sh") (mapcar 'add_list liste_sh) (end_list) (action_tile "accept" "(setq nbre_sh (atof (nth (atoi (get_tile \"nbr_sh\")) liste_sh))) (done_dialog))" ) (start_dialog) (unload_dialog dcl_id) (princ nbre_rh) (princ nbre_b3m) (princ nbre_b2m) (princ nbre_sh) (princ) ) et le DCL/ bdcl_140611:dialog{ label="Vue en élévation"; :boxed_row{ :boxed_column{ :boxed_column{ label="Hauteur de l'ouvrage"; } :boxed_column{ label="Reste à coffrer"; } } :boxed_column{ label="Choix des éléments"; :boxed_column{ label="Ré-hausse"; :popup_list{ label="Nombre :"; key="nbr_rh"; edit_width=10; } } :boxed_column{ label="Banche de 3m"; :popup_list{ label="Nombre :"; key="nbr_b3m"; edit_width=10; } } :boxed_column{ label="Banches de 2m"; :popup_list{ label="Nombre :"; key="nbr_b2m"; edit_width=10; } } :boxed_column{ label="Sous-hausse"; :popup_list{ label="Nombre :"; key="nbr_sh"; edit_width=10; } } } } ok_cancel; } Merci pour votre aide :) [Edité le 30/6/2011 par -=micka=-]
(gile) Posté(e) le 20 juin 2011 Posté(e) le 20 juin 2011 Salut, Il faut que tu définisses des actions pour tes contrôles list_box, par exemple (écrit 'à la volée, pas testé) :(action_tile "nbr_rh" "(if (= 1 $reason) ; un élément a été sélectionné (if (= \"0\" $value) ; c'est l'élément '0' qui a été sélectionné (set_tile \"encart\" \"un truc\") (set_tile \"encart\" \"autre chose\") ) )" ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité -=micka=- Posté(e) le 24 juin 2011 Posté(e) le 24 juin 2011 Merci (Gile) pour ta réponse mais je débute vraiment en Lisp et d'autant plus sur les boite dcl, en effet pour créer la mienne j'en ai mélangé plusieurs que j'ai trouver sur le forum.Tout ça pour dire que je ne sais pas comment me servir du bout de code que tu as marqué.Cordialement Désolé pour le temps de réponse, [Edité le 30/6/2011 par -=micka=-]
Invité -=micka=- Posté(e) le 24 juin 2011 Posté(e) le 24 juin 2011 re je voudrait savoir aussi, si c'est possible d'avoir une sorte de "textbox" avec une valeur (ici une longueur) que l'on a définit avant, qui n'est pas modifiable par l'utilisateur dans la boite dcl et aussi s'il existe de "textbox" qui se met a jour en fonction des valeurs données avec les listes déroulantes, donc visible avant la fermerture de la boite dcl :) Merci !!!!! :D
(gile) Posté(e) le 24 juin 2011 Posté(e) le 24 juin 2011 Salut, Je n'ai pas trop de temps aujourd'hui.J'essayerai de faire une réponse détaillée ce week-end. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité -=micka=- Posté(e) le 24 juin 2011 Posté(e) le 24 juin 2011 ok pas de soucis, par contre j'ai réfléchit et j'ai cherché donc maintenant j'ai compris ce que tu me disais (gile) J'ai avancé dans l'élaboration de ma boite dcl et du lisp mais j'ai de nouveau un petit soucis que je n'arrive pas à résoudre j'ai une erreur quand il fait des opérations il me marque erreur: type d'argument incorrect: numberp: "3"_2_$ Cette erreur apparait quand je me sert d'une des listes déroulantes Je sais ou elle est, mais je n'arrive pas à la résoudre C'est dans le lisp dans le calcul de la variable "restemur" Je met le lisp mis à jour ainsi que le dclMerci de jetter un petit coup d'oeilcdt Micka Le Lisp (defun c:bdcl_240611 (/ dcl_id liste_rh liste_b3m liste_b2m liste_sh what_next longmur restemur ) (setq dcl_id (load_dialog "BDCL_240611.dcl")) (setq liste_rh (list "0" "1")) (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6")) (setq liste_b2m (list "0" "1" "2" "3" "4" "5" "6")) (setq liste_sh (list "0" "1")) (setq nbre_sh 0) (setq nbre_rh 0) (setq nbre_b3m 0) (setq nbre_b2m 0) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "bdcl_240611" dcl_id)) (exit) ) (start_list "nbr_rh") (mapcar 'add_list liste_rh) (end_list) (action_tile "nbr_rh" "(setq nbre_rh (nth (atoi $value) liste_rh)) (done_dialog 5)" ) (start_list "nbr_b3m") (mapcar 'add_list liste_b3m) (end_list) (action_tile "nbr_b3m" "(setq nbre_b3m (nth (atoi $value) liste_b3m)) (done_dialog 5)" ) (start_list "nbr_b2m") (mapcar 'add_list liste_b2m) (end_list) (action_tile "nbr_b2m" "(setq nbre_b2m (nth (atoi $value) liste_2m)) (done_dialog 5)" ) (start_list "nbr_sh") (mapcar 'add_list liste_sh) (end_list) (action_tile "nbr_sh" "(setq nbre_sh (nth (atoi $value) liste_sh)) (done_dialog 5)" ) (action_tile "mesurer" "(done_dialog 4)" ) (action_tile "calculer" "(done_dialog 5)" ) (if longmur (set_tile "ht" (rtos longmur)) ) (if restemur (set_tile "reste" (rtos restemur)) ) (setq what_next (start_dialog)) (cond ((= what_next 4) (progn (setq p0 (getpoint "\nCliquer sur le point de départ du mur: ") ) (setq p1 (getpoint "\nCliquer sur le point suivant du mur: ")) (setq longmur (distance p0 p1)) ) ) ((= what_next 0) (prompt "\nFONCTION ANNULEE") ) ((= what_next 5) (setq restemur (- longmur (* nbre_sh 1) (* nbre_rh 0.5) (* nbre_b3m 3) (* nbre_b2m 2) ) ) ) ) ) (unload_dialog dcl_id) (princ nbre_rh) (princ nbre_b3m) (princ nbre_b2m) (princ nbre_sh) (princ) ) Le Dcl bdcl_240611 :dialog{ label="Vue en élévation"; :boxed_row{ :boxed_column{ :boxed_row{ label="Hauteur de l'ouvrage"; :edit_box{ key = "ht"; value="0.0000"; fixed_width=true; allow_accept=true; } : text{ label = "m"; } :retirement_button{ label = "Mesurer <"; key = "mesurer"; mnemonic = "H"; alignment= centered; } } :boxed_row{ label="Reste à coffrer"; :edit_box{ key = "reste"; value="0.0000"; fixed_width=true; allow_accept=true; } : text{ label = "m"; } :retirement_button{ label = "Calculer <"; key = "calculer"; mnemonic = "H"; alignment= centered; } } } :boxed_column{ label="Choix des éléments"; :boxed_column{ label="Ré-hausse (0.5m)"; :popup_list{ label="Nombre :"; key="nbr_rh"; edit_width=true; } } :boxed_column{ label="Banche de 3m"; :popup_list{ label="Nombre :"; key="nbr_b3m"; edit_width=true; } } :boxed_column{ label="Banches de 2m"; :popup_list{ label="Nombre :"; key="nbr_b2m"; edit_width=true; } } :boxed_column{ label="Sous-hausse (1m)"; :popup_list{ label="Nombre :"; key="nbr_sh"; edit_width=true; } } } } ok_cancel; } [Edité le 30/6/2011 par -=micka=-]
Tramber Posté(e) le 24 juin 2011 Posté(e) le 24 juin 2011 nbre_b3m contient "3", par exemple.Donc (* nbre_b3m 3) plante car il n'attend pas de STRING mais un REAL ou INT. Or (* (distof nbre_b3m) 3) ou (* (atoi nbre_b3m) 3)Fonctionneraient mieux. Pour pister tes erreurs va dans le menu Deboguage de l'éditeur et choisis de cocher "Arrêt sur erreur". En cas d'erreurs, tu basculeras dans la console et CTRL+F9 te donnera plus d'infos. Pour sortir de la boucle, CTRL+Q ou la flèche rouge (vers le haut) ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Invité -=micka=- Posté(e) le 27 juin 2011 Posté(e) le 27 juin 2011 nbre_b3m contient "3", par exemple.Donc (* nbre_b3m 3) plante car il n'attend pas de STRING mais un REAL ou INT. Or (* (distof nbre_b3m) 3) ou (* (atoi nbre_b3m) 3)Fonctionneraient mieux. Pour pister tes erreurs va dans le menu Deboguage de l'éditeur et choisis de cocher "Arrêt sur erreur". En cas d'erreurs, tu basculeras dans la console et CTRL+F9 te donnera plus d'infos. Pour sortir de la boucle, CTRL+Q ou la flèche rouge (vers le haut) ! Merci beaucoup Tramber!je prends note, ça m'aidera fortement.Bonne journée
Invité -=micka=- Posté(e) le 27 juin 2011 Posté(e) le 27 juin 2011 rebonjour, en fait ça marche bien ce que tu m'as indiqué Tramber sauf quand ma variable est a zero, il me met: ; erreur: type d'argument incorrect: stringp 0 Puis j'aimerais aussi que lorsque je choisisse une valeur avec une liste déroulante celle ci ne se remette pas à zéro apres avoir calculé. Merci pour vos lumières [Edité le 30/6/2011 par -=micka=-]
Invité -=micka=- Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 personne n'a d'info pour moi??? please!!!
(gile) Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 Salut, ; erreur: type d'argument incorrect: stringp 0 Veut dire que la fonction qui généré l'erreur attend un chaîne (string) comme argument mais que c'est un nombre : 0 qui lui a été passé.Localise l'expression qui provoque cette erreur et utilise un fonction qui convertit un nombre en chaîne (rtos pour les réels ou itoa pour les entiers) pour convertir le nombre en chaîne. Puis j'aimerais aussi que lorsque je choisisse une valeur avec une liste déroulante celle ci ne se remette pas à zéro apres avoir calculé. done_dialog ferme la boite dialogue. Mais utilisé dans une boucle comme tu le fais, la boite est ré-ouverte si la valeur qui lui est passée est supérieure ou égale à 2 : (while (>= what_next 2) ...)Dans ce cas, la boite est réinitialisée avec les expression contenues dans le (while ...). Si tu veux qu'elle se ré-ouvre avec les valeurs précédemment entrées et stockées dans les variables, il faut initialiser les variables avec les valeurs par défaut avant la création de la boite de dialogue et attribuer ces valeurs aux contrôles avec set_tile. Exemple avec nbre_b3m qui est un entier et liste_b3m qui est une liste de chaînes représentant des entiers.Il faut faire attention au fait que que la plupart des fonctions LISP qui gèrent les valeurs dans les boites de dialogue fonctionnent avec de chaînes (en entrée et en sortie) et donc faire les conversion opportunes. (defun c:bdcl_240611 ... (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6")) ; initialisation de la liste ... (setq nbre_b3m 0) ; initialisation de la variable nbre_b3m (valeur par défaut) ... (setq what_next 2) (while (>= what_next 2) ... ;; affichage dans le popup en fonction de la valeur de nbre_b3m ;; il faut convertir en chaînes la valeur de nbre_b3m et la valeur retournée par vl-position (set_tile "nbr_b3m" (itoa (vl-position (itoa nbre_b3m) liste_b3m))) ... ;; action en fonction du choix fait dans le popup ;; il faut convertir en nombre l'index retourné par $value et l'élément correspondant dans la liste (action_tile "nbr_b3m" "(setq nbre_b3m (atoi (nth (atoi $value) liste_b3m))) (done_dialog 5)" ) ... ... ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité -=micka=- Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 merci (gile)dès que j'ai dix minutes je teste ça!! ;)
Invité -=micka=- Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 Rej'ai testé tes code (gile) merci ça marche, mais il se présente a moi un nouveau soucis.dans ma boite de dialogue je mesure ma distance et apres je choisis le nombre d'éléments que je vais insérer ensuite, sauf que dans la liste "nbr_b2m" j'ai une erreur car lorsque je selectionne une valeur il me marque:erreur: type d'argument incorrect: consp nil Je comprends pas car l'erreur est dans : (action_tile "nbr_b2m" "(setq nbre_b2m (atoi (nth (atoi $value) liste_2m))) (done_dialog 5)" ) Pourtant tous mes "action _tile" sont identiques et y'a que celui-ci qui bug Une idée????je remet le lisp et le dcl mis à jour si vous voulez bien regarder merci!! (defun c:bdcl_300611 (/ dcl_id what_next longmur restemur nbre_sh nbre_rh nbre_b3m nbre_b2m ) (setq dcl_id (load_dialog "BDCL_300611.dcl")) (setq liste_rh (list "0" "1")) ; initialisation des listes (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6")) (setq liste_b2m (list "0" "1" "2" "3" "4" "5" "6")) (setq liste_sh (list "0" "1")) (setq nbre_sh 0) ; initialisation des variables nbre_xxx (valeur par défaut) (setq nbre_rh 0) (setq nbre_b3m 0) (setq nbre_b2m 0) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "bdcl_300611" dcl_id)) (exit) ) (start_list "nbr_rh") (mapcar 'add_list liste_rh) (end_list) (set_tile "nbr_rh" (itoa (vl-position (itoa nbre_rh) liste_rh)) ) (action_tile ;; action en fonction du choix fait dans le popup "nbr_rh" "(setq nbre_rh (atoi (nth (atoi $value) liste_rh))) (done_dialog 5)" ) (start_list "nbr_b3m") (mapcar 'add_list liste_b3m) (end_list) (set_tile "nbr_b3m" (itoa (vl-position (itoa nbre_b3m) liste_b3m)) ) (action_tile ;; action en fonction du choix fait dans le popup "nbr_b3m" "(setq nbre_b3m (atoi (nth (atoi $value) liste_b3m))) (done_dialog 5)" ) (start_list "nbr_b2m") (mapcar 'add_list liste_b2m) (end_list) (set_tile "nbr_b2m" (itoa (vl-position (itoa nbre_b2m) liste_b2m)) ) (action_tile ;; action en fonction du choix fait dans le popup "nbr_b2m" "(setq nbre_b2m (atoi (nth (atoi $value) liste_2m))) (done_dialog 5)" ) (start_list "nbr_sh") (mapcar 'add_list liste_sh) (end_list) (set_tile "nbr_sh" (itoa (vl-position (itoa nbre_sh) liste_sh)) ) (action_tile ;; action en fonction du choix fait dans le popup "nbr_sh" "(setq nbre_sh (atoi (nth (atoi $value) liste_sh))) (done_dialog 5)" ) (action_tile "mesurer" "(done_dialog 4)" ) (action_tile "calculer" "(done_dialog 5)" ) (if longmur (set_tile "ht" (rtos longmur)) ) (if restemur (set_tile "reste" (rtos restemur)) ) (setq what_next (start_dialog)) (cond ((= what_next 4) (progn (setq p0 (getpoint "\nCliquer sur le point de départ du mur: ") ) (setq p1 (getpoint "\nCliquer sur le point suivant du mur: ")) (setq longmur (distance p0 p1)) ) ) ((= what_next 0) (prompt "\nFONCTION ANNULEE") ) ((= what_next 5) (setq restemur (- longmur (* nbre_rh 0.5) (* nbre_b3m 3) (* nbre_b2m 2) (* nbre_sh 1) ) ) ) ) ) (unload_dialog dcl_id) (princ nbre_rh) (princ nbre_b3m) (princ nbre_b2m) (princ nbre_sh) (princ) ) bdcl_300611 :dialog{ label="Vue en élévation"; :boxed_row{ :boxed_column{ :boxed_row{ label="Hauteur de l'ouvrage"; :edit_box{ key = "ht"; value="0.0000"; fixed_width=true; allow_accept=true; } : text{ label = "m"; } :retirement_button{ label = "Mesurer <"; key = "mesurer"; mnemonic = "H"; alignment= centered; } } :boxed_row{ label="Reste à coffrer"; :edit_box{ key = "reste"; value="0.0000"; fixed_width=true; allow_accept=true; } : text{ label = "m"; } :retirement_button{ label = "Calculer <"; key = "calculer"; mnemonic = "H"; alignment= centered; } } } :boxed_column{ label="Choix des éléments"; :boxed_column{ label="Ré-hausse (0.5m)"; :popup_list{ label="Nombre :"; key="nbr_rh"; edit_width=true; } } :boxed_column{ label="Banche de 3m"; :popup_list{ label="Nombre :"; key="nbr_b3m"; edit_width=true; } } :boxed_column{ label="Banches de 2m"; :popup_list{ label="Nombre :"; key="nbr_b2m"; edit_width=true; } } :boxed_column{ label="Sous-hausse (1m)"; :popup_list{ label="Nombre :"; key="nbr_sh"; edit_width=true; } } } } ok_cancel; }
Invité -=micka=- Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 ah oui!!!!j'ai oublié de demandé!!Est ce qu'il y a un moyen pour qu'une edit box ne soit pas modifiable dans la boite de dialogue par l'utilisateur mais que par le lisp???encore merci
(gile) Posté(e) le 30 juin 2011 Posté(e) le 30 juin 2011 erreur: type d'argument incorrect: consp nil La fonction attend comme argument une liste non vide (consp) mais se voit passer nil. Dans ton expression ce qui est censé être un liste est la variable liste_2m qui n'a jamais été initialisée, c'est liste_b2m qui a été initialisé... Est ce qu'il y a un moyen pour qu'une edit box ne soit pas modifiable dans la boite de dialogue par l'utilisateur mais que par le lisp??? Non, mais tu peux utiliser un contrôle 'text' avec une clé (key) et modifier ce texte avec set_tile : DCL :... :text { key = "reste"; } ... LISP... (setq restemur 0.) ... (set_tile "reste" (strcat (rtos restemur) "m") ... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité -=micka=- Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 :D :D Merci beacoup (Gile)!!!Parfait ;)
Invité -=micka=- Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 repour améliorer ma boite de dialogue j'aimerais insérer un logo ou uune image que je créerai, comme on peut le voir dans celle d'autocad:http://www.xs.to/media/33796Comment faut-il procéder? [Edité le 1/7/2011 par -=micka=-] [Edité le 1/7/2011 par -=micka=-]
(gile) Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 Salut, Là tu mets la barre un peu haut pour du DCL, avec les boites de dialogue DCL on ne peut utiliser que du vectoriel :- soit dessiner des lignes (vecteurs) avec la fonction vector_image sur un fond (fonction fill_image)- soit utiliser des 'clichés' (slide) avec la fonction slide_image Regarde ces fonctions dans l'aide aux développeurs ainsi que :AutoLISP Developer's Guide > Working with Programmable Dialog Boxes > Managing Dialog Boxes > Image Tiles and Buttons > Creating Images Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
VDH-Bruno Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 Bonjour -=micka=- pour améliorer ma boite de dialogue j'aimerais insérer un logo ou uune image Oui comme te l’a dit (gile) l’emploi d’un slide pour des images non vectoriel peut être la solution, mais à l’usage tu verras que le jeu n’en vaut pas la vraiment chandelle.. Mais si tu veux tester ( car c’est toujours bien), il faut que tu insère ton image dans AutoCAD, puis tu fais un cliché (ou slide) de cette image, que tu chargera dans ta boite de dialogue en utilisant la fonction donné par (gile). Je te déconseille de vouloir faire plus qu’une « icône » en taille d’image car cela va ralentir considérablement le chargement de ta boîte de dialogue.. De plus sous forme de cliché ton image va perdre beaucoup en terme de qualité mais on peut toute fois arriver à un résultat presque satisfaisant. Cordialement, Apprendre => Prendre => Rendre
Invité -=micka=- Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 aoutch!!!!tout ça pour un résultat pas trop satisfaisantje pensais qu'il y avait un moyen de reprendre l'affichage des petite images d'autocad, tant pis ..... sinon un autre question: ;) est ce qu'il y a moyen de "griser" certain élément de la boite de dialogue tant que l'utilisateur n'a pas choisit ou cocher une option? ----> http://www.xs.to/media/33974 comme ça Merciiiiii :)
Patrick_35 Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 Salut Je te conseil de faire un tour ici car tu vas trouver ton bonheur dans le DCL @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Invité -=micka=- Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 merci Patrick_35 maintenant place au déchiffrage!! ^^Bonne journée a tous!!
Invité -=micka=- Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 bon j'ai regardé ce tuto ..... comment dire...... outch! :o dur dur, c'est vraiment pas simple de comprendre des Lisps mais en plus quand c'est du high level!! En tout cas merci Patrick_35, mais j'aurais bien aimé un petit exemple si c'est pas trop demander, car j'arrive pas à tout comprendre!! :( merci pour votre aide
Patrick_35 Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 Dans le tuto, tu as des exemples de dcl avec le lisp qui va bien pour exploiter la bd.Prenons le 1er exempleLe dcl//--------------------------------------------------------------------------------------------------------- // MyFirst //--------------------------------------------------------------------------------------------------------- MyFirst : dialog { label = " Hello World"; spacer; : text { label = "This is my first dialog."; alignment = centered; } spacer; ok_only; }Le lisp ;---------------------------------------------------------------------------------------------------------- ; c:MyFirst - You've got to start somewhere ; Syntax: MyFirst ;---------------------------------------------------------------------------------------------------------- (defun c:MyFirst (/ Dcl_Id%) (princ "\nMyFirst")(princ) ; Load Dialog (setq Dcl_Id% (load_dialog "MyDialogs.dcl")) (new_dialog "MyFirst" Dcl_Id%) ; Dialog Actions (start_dialog) ; Unload Dialog (unload_dialog Dcl_Id%) (princ) );defun c:MyFirst Je remarque déjà dans le lisp cette instruction(setq Dcl_Id% (load_dialog "MyDialogs.dcl"))qui me donne le nom du fichier DCL à sauvegarderPuis un copier/coller du lisp en ligne de commande pour tester la fonction c:MyFirst Et pour bien comprendre le lisp, il faut tester les instructions une par une @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 1 juillet 2011 Posté(e) le 1 juillet 2011 Salut -=micka=-, je pensais qu'il y avait un moyen de reprendre l'affichage des petite images d'autocad, tant pis ..... J’allais t’écrire que non en DCL, en argumentant que cela faisais bien longtemps qu’Autodesk n’écrivait plus ses boîtes de dialogue en DCL comme on pouvait en trouver sur les versions 12 , la transition ayant commencé sur la version 13 ou 14 et que depuis les version 2000 on n’en voyais plus (sauf encore peut être dans les Express). Voilà pensant que le graphisme de nos petites boites de dialogue devaient se résigner à ce petit coté désuet.. Mais j’avoue que le lien de Patrick_35 m’a ôté toutes mes certitudes sur ce point :D . (Ha ! Que je regrette de n’avoir que trop peu d’heures à consacrer au Lisp...). A+ Apprendre => Prendre => Rendre
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