Bonjour à tous, Cela fait pas très longtemps que je me suis mise au Lisp alors je suis désolée si j'utilise pas les bons mots pour dire les choses. Je voudrais créer une boite de dialogue qui me permette d’insérer des blocs en fonction des éléments que l'on a remplis au préalable. J'ai donc écrit un premier DCL qui me permet de choisir le type d'objet à insérer, et un deuxième DCL lié au premier, dans lequel on va rentrer toutes les caractéristiques nécessaire à l'insertion du bloc (Cette deuxième boite est nécessaire car les caractéristiques à rentrer vont être différentes selon le type d'élément). Voilà mon problème: je voudrais que dans ma deuxième boite de dialogue, s'affiche une image de l'objet à insérer, pour montrer à quoi correspondent les différentes dimensions à entrer. Cette image doit s'actualiser en fonction de la vue que l'on souhaite obtenir. Je m'explique, dans cette deuxième boite de dialogue, il y a un pop_list qui me permet de choisir vue de "dessus, face, gauche, droite" et j'aimerais que quand on choisis la vue, l'image s'actualise. Actuellement, je dois retourner à la boite de dialogue précédente et revenir pour que l'image s'actualise...Ce qui est assez embêtant... J'espère que je suis claire, Voilà mon premier DCL: ielement:dialog {label="Insérer un élément";
:radio_column {
:radio_button {label="Té";key=te;}
:radio_button {label="Coude";key=coude;}
:radio_button {label="Véhicule";key=veh;}
:radio_button {label="Vanne";key=vanne;}
:radio_button {label="Poteau Incendie";key=PI;}
:radio_button {label="Manchette";key=manch;}
:radio_button {label="Join de démontage";key=jd;}
}
spacer_1;
spacer_1;
:row {
:button {
label = "Suivant > ";
key = suiv;
}
spacer_1;
:button {
label = "Annuler";
is_cancel = true;
key = annul;
}
}} Mon deuxième: tedcl:dialog {label="Insertion d'un té";
:image {width=40;aspect_ratio=1;color=0;fixed_height=true;key=img;}
spacer_1;
spacer_1;
:row {
:popup_list {
label = "Type de Vue:";
key = vue1;
list = "\n \nDessus\nFace\nDroite\nGauche";
edit_width = 15;
}
spacer_1;
spacer_1;
spacer_1;
}
:edit_box {
label = "Diamètre Principal (mm):";
key = diam1;
edit_width = 10;
}
:edit_box {
label = "Diamètre secondaire (mm):";
key = diam2;
edit_width = 10;
}
spacer_1;
:edit_box {
label = "Rotation (°):";
key = rot;
edit_width = 10;
}
spacer_1;
:row {
:button {
label = "< Précédent";
key = prec;
}
:row {ok_cancel;}
}
} Et voici le Lisp ( Juste le bout qui nous intéresse.. déjà que ce post est long...): (defun c:afficher()
(setq rep 1)
(setq rep1 0)
(while (/= rep 0)
(setq dcl_id (load_dialog "ielement.DCL"))
(new_dialog "ielement" dcl_id)
(action_tile "te" "(setq choice \"te\")")
(action_tile "coude" "(setq choice \"coude\")")
(action_tile "veh" "(setq choice \"vehicule\")")
(action_tile "vanne" "(setq choice \"vanne\")")
(action_tile "pi" "(setq choice \"pi\")")
(action_tile "manch" "(setq choice \"manchette\")")
(action_tile "jd" "(setq choice \"jd\")")
(action_tile "suiv" "(done_dialog 1)")
(action_tile "annul" "(done_dialog 0)")
(setq rep (start_dialog))
(unload_dialog dcl_id)
(if (= rep 0)
(exit))
;**************************************************CONDITION CHOIX TE************************************************************************************************************************
(if (= choice "te")
(progn
(setq dcl_id (load_dialog "te.DCL"))
(new_dialog "tedcl" dcl_id)
(action_tile "vue1" "(setq vue $value)")
(action_tile "diam1" "(setq diam1 $value)")
(action_tile "diam2" "(setq diam2 $value)")
(action_tile "rot" "(setq rotation $value)")
(action_tile "prec" "(done_dialog 1)")
(action_tile "cancel" "(exit)")
(action_tile "accept" "(and (setq rep1 1)(done_dialog 1))")
(setq larg (dimx_tile "img"))
(setq long (dimy_tile "img"))
(cond
((= vue "0") (setq img "tenil"))
((= vue "1") (setq img "tedessus"))
((= vue "2") (setq img "teface"))
((= vue "3") (setq img "tedroite"))
((= vue "4") (setq img "tegauche"))
)
(start_image "img")
(slide_image -100 -170 (+ 140 larg) (+ 140 long) img)
(end_image)
(setq rep (start_dialog))
(unload_dialog dcl_id)
(if (= rep 0)
(exit)
))
(if (= rep1 1)
(progn
(insere)
(exit))
)
) Merci !