DenisHen Posté(e) le 22 mai 2006 Posté(e) le 22 mai 2006 Bonsoir à tous, Je cherche comment peut-on créer des fenêtres pour du code Lisp ? ? Merci d'avance... 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)
Patrick_35 Posté(e) le 22 mai 2006 Posté(e) le 22 mai 2006 Avec l'aideVoici un exemple simpleFichier MIM.DCL// =================================================== // // MIM.DCL V1.00 // // Copyright (C) Patrick_35 // // =================================================== mim : dialog { key = "titre"; fixed_width = true; alignment = centered; is_cancel = true; width = 60; : popup_list {label= "Origine"; key = "mim";} spacer; : list_box {label= "Destination" ; key="dest"; height = 10; multiple_select=true;} spacer; ok_cancel; }Et le fichier MIM.LSP;;;=================================================== ;;; ;;; MIM.LSP V1.00 ;;; ;;; Changer l'imprimante des Présentations ;;; ;;; Copyright (C) Patrick_35 ;;; ;;;=================================================== (defun c:mim(/ s) ;;;--------------------------------------------------------------- ;;; ;;; Gestion des erreurs ;;; ;;;--------------------------------------------------------------- (defun *errmim* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nErreur : " msg)) ) (princ) ) (setq *error* s) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine principale ;;; ;;;--------------------------------------------------------------- (defun multiplie_pre(/ config doc init_mim liste_lay n position positiondests resultat tra) (setq init_mim (load_dialog (findfile "mim.dcl"))) (setq liste_lay (layoutlist) n 0 position "0" positiondest "0" doc (vla-get-activedocument (vlax-get-acad-object))) (setq tra (vlax-safearray->list (vlax-variant-value (vla-getplotdevicenames (vla-get-layout (vla-get-modelspace doc)))))) (if (vl-position "Aucun" tra) (setq tra (vl-remove "Aucun" tra)) ) (if (vl-position "Model" liste_lay) (setq liste_lay (vl-remove "Model" liste_lay)) ) (new_dialog "mim" init_mim "") (start_list "mim") (mapcar 'add_list tra) (end_list) (start_list "dest") (mapcar 'add_list liste_lay) (end_list) (set_tile "titre" "Sélection Imprimante V1.00") (set_tile "mim" position) (mode_tile "mim" 2) (while (and (/= resultat 1)(/= resultat 0)) (action_tile "mim" "(setq position $value)") (action_tile "dest" "(setq positiondest $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq resultat (start_dialog)) ) (unload_dialog init_mim) (if (eq resultat 1) (while (not (eq positiondest "")) (setq n (read positiondest)) (vlax-for lay (vla-get-layouts doc) (if (eq (nth n liste_lay) (vla-get-name lay)) (progn (vla-put-ConfigName lay (nth (atoi position) tra)) (princ (strcat "\nPrésentation " (vla-get-name lay) " Configurée avec " (nth (atoi position) tra))) ) ) ) (setq positiondest (substr positiondest (+ 2 (strlen (itoa n))) (strlen positiondest))) ) ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine de lancement ;;; ;;;--------------------------------------------------------------- (vl-load-com) (setq s *error*) (setq *error* *errmim*) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (multiplie_pre) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (setq *error* s) (princ) ) (princ "\nMIM.LSP chargé. Tapez MIM pour l'exécuter") (princ) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 22 mai 2006 Posté(e) le 22 mai 2006 Tu vas devoir apprendre un autre langage, le DCL, et comprendre les interactions entre LISP et DCL (c'est parfois fastidieux). Tu peux voir quelques exemples simples dans ce sujet ou celui-là Il existe aussi un utilitaire (payant) ObjectDCL qui marche, paraît-il fort bien (pas encore essayé), fais une recherche dans les forums. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Deleligne Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 Bonjour à tous, Payant ? Je l'ai téléchargé (site officiel )hier et installé, il ne m'a rien demandé et ne m'indique nulpart qu'il faut payer ou que c'est une démo, peut-être une version libre ou light... Forum très instructif... Merci
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