Bonjour, Je me forme à AutoLisp et donc je débute depuis peu. J'essaie d'utiliser les boites de dialogue DCL pour saisir des données utilisées dans un Lisp. L'exemple ci-dessous est celui de la saisie d'un rectanlge. Mais il y a un problème lorsque je valide : Autocad 'ne répond pas', le sablier reste actif indéfiniement. Je dois avoir un problème avec mes variables mais je ne trouve pas. Une explication me permettrait d'avancer. merci d'avance. La boite DCL test.dcl:
Diag1 : dialog {
label = "Saisie d'un Rectangle";
: column {
: row {
: boxed_column {
label = "Dimensions Totales";
fixed_width = true;
width = 22;
: edit_box {
label = "Hauteur :";
mnemonic = "H";
key = "HTot";
edit_width = 5;
}
: edit_box {
label = "Largeur :";
mnemonic = "L";
key = "LTot";
edit_width = 5;
}
}
}
ok_cancel;
}
}
Le LISP:
;;;Fonction LISP Test
(defun c:TestDiag ()
;Chargement de la boite de dialogue
(setq id (load_dialog "Test.dcl"))
(new_dialog "Diag1" id)
; actions en fonction des choix dans la boite de dialogue
(action_tile "cancel" "(done_dialog)")
(action_tile "accept" "(Rectangle) (done_dialog)")
(start_dialog)
)
; Fonction Rectangle
(defun Rectangle ()
(progn
(setq H (atoi(get_tile "HTot")))
(setq L (atoi(get_tile "LTot")))
(setq pt1 (list 0 0))
(setq pt2 (list H L))
(command "_.rectang" pt1 pt2 "")
)
)