pierredudu Posté(e) le 28 septembre 2005 Posté(e) le 28 septembre 2005 bonjour,je debute pour le lisp, les boites de dialogues dcl et autres ...j'aimerais trouver le manuel de personnalisation en français qu'on avait sous autocad 13 en pdf si possible.Trouver aussi des exemples tres simples de boites de dialoguesmerci d'avance
(gile) Posté(e) le 28 septembre 2005 Posté(e) le 28 septembre 2005 Salut, Pour ce qui est de la documentation AutoLISP en français, le sujet a été souvent abordé sur CADxp, mais je ne sais retrouver les sujets. Tu peux faire des recherches dans les forums. Il y a eu des leçons avec exercices et solutions. Personellement, quand je me suis mis au LISP, je me suis aussi remis à l'anglais ! Pour les boites de dialogue, voici 3 petits exemples, chacun avec son *.dcl et le *.lsp qui le controle : 1 _ Pour faire disparître la boite le temps d'une spécification à l'écran Fichier dcl à enregistrer sous hidedcl.dcl dans un dossier du chemin de recherche d'AutoCAD hidedcl:dialog{ label="Hide exemple"; : boxed_column{ label="Sélectionner un point"; :row{ :row{ :retirement_button{ label = "Choisir le point key = "hide"; mnemonic = "H"; alignment= centered; } } :column{ :edit_box{ label="X"; key="x_coord"; value="0.0000"; fixed_width=true; allow_accept=true; } :edit_box{ label="Y"; key="y_coord"; value="0.0000"; fixed_width=true; allow_accept=true; } :edit_box{ label="Z"; key="z_coord"; value="0.0000"; fixed_width=true; allow_accept=true; } } } } ok_cancel; } Le LISP qui le controle : (defun c:hidedcl (/ dcl_id what_next pt) (setq dcl_id (load_dialog "hidedcl.dcl")) (setq what_next 2) (while (>= what_next 2) (if (not (new_dialog "hidedcl" dcl_id)) (exit) ) (action_tile "accept" "(setq pt (list (atof (get_tile \"x_coord\")) (atof (get_tile \"y_coord\")) (atof (get_tile \"z_coord\")))) (done_dialog 1) (princ pt))" ) (action_tile "hide" "(done_dialog 4)" ) (if pt (progn (set_tile "x_coord" (rtos (car pt))) (set_tile "y_coord" (rtos (cadr pt))) (set_tile "z_coord" (rtos (caddr pt))) ) ) (setq what_next (start_dialog)) (cond ((= what_next 4) (setq pt (getpoint "\nSélectionnez un point: ")) ) ((= what_next 0) (prompt "\nFONCTION ANNULEE") ) ) ) (unload_dialog dcl_id) (princ) ) 2 _ Pour une liste déroulante : Fichier dcl à enregistrer sous pop_up.dcl dans un dossier du chemin de recherche d'AutoCAD pop_up:dialog{ label="Pop_up exemple"; :boxed_column{ label="Choisissez un nombre"; :popup_list{ label="Nombre :"; key="nbr"; edit_width=10; } } ok_cancel; } Le LISP qui le controle : (defun c:pop_up (/ liste n nbre) (setq liste (list "10" "20" "30" "40")) (setq dcl_id (load_dialog "pop_up.dcl")) (if (not (new_dialog "pop_up" dcl_id)) (exit) ) (start_list "nbr") (mapcar 'add_list liste) (end_list) (action_tile "accept" "(setq nbre (atof (nth (atoi (get_tile \"nbr\")) liste))) (done_dialog))" ) (start_dialog) (unload_dialog dcl_id) (princ nbre) (princ) ) 3 _ Pour un curseur (version modifiée) Fichier dcl à enregistrer sous slider.dcll dans un dossier du chemin de recherche d'AutoCAD curseur:dialog{ label="Slider exemple"; :boxed_row{ label="Choisissez un nombre"; :edit_box{ label="Nombre:"; key="nb"; value="12"; edit_width=4; allow_accept=true; } :slider{ key="slider_info"; value="12"; min_value=2; max_value=24; big_increment=1; small_increment=1; width=20; is_tab_stop=false; } } ok_cancel; } Le LISP qui le controle : (defun c:curseur (/ n dcl_id what_next) (setq dcl_id (load_dialog "slider.dcl") what_next 2 ) (while ( (if (not (new_dialog "curseur" dcl_id)) (exit) ) (action_tile "slider_info" (strcat "(if (or (= $reason 1) (= $reason 3))" "(progn (set_tile \"nb\" $value)" "(setq n (atoi $value))))" ) ) (action_tile "nb" "(if (or (= $reason 1) (= $reason 2)) (progn (set_tile \"slider_info\" $value) (setq n (atoi $value))))" ) (action_tile "accept" "(setq n (atoi (get_tile \"nb\"))) (done_dialog 1))" ) (setq what_next (start_dialog)) ) (unload_dialog dcl_id) (princ n) (princ) ) À plus ...[Edité le 28/9/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 28 septembre 2005 Posté(e) le 28 septembre 2005 Re, J'ai retrouvé quelques liens : sur ce site une description des principales fonctions LISP en français. Le cours N°1 sur CADxp ici Les réponses à lexercice du cours N°1 là Et le cours N°2 là En espérant avoir répondu à tes attentes. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
x13 Posté(e) le 28 septembre 2005 Posté(e) le 28 septembre 2005 Voiçi quelques sites à consulter: http://www.afralisp.co.za/index.htmhttp://www.gr-acad.arq.br/paginas/dup.htmhttp://www.autolisppage.com/ALcourse.htmlhttp://klobouk.fsv.cvut.cz/~chour/Cviceni/Menu.ziphttp://klobouk.fsv.cvut.cz/~chour/Lisp/Chapter%207.htmhttp://www.draftsperson.net/autocad/tutorials/9904_AutoCADLispLesson.htmhttp://www.gregmacg.com/Autotut1.htmlhttp://come.to/autolisppage :)
pierredudu Posté(e) le 28 septembre 2005 Auteur Posté(e) le 28 septembre 2005 merci beaucoup à vous tousça va me permettre d'evoluer en programmationmerci pour les liens et pour le prog
(gile) Posté(e) le 28 septembre 2005 Posté(e) le 28 septembre 2005 J'ai édité la routine 3 _ Pour un curseur : Il y avait une erreur dans le code dcl : inversion de key "nb" et "slider_info"J'ai apporté une petite amélioration dans le LISP : en créant une boucle (while (Je lui ai aussi suprimé les deux sous routines "slider_action" et "ebox_action" pour plus de clarté. [Edité le 28/9/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 30 septembre 2005 Posté(e) le 30 septembre 2005 Autre lien en français : La FAQ Autolisp de Reini Urban traduite en français. C'est pas très récent, mais j'y ai énormément appris sur le fonctionnement de base du LISP. À plus ... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour 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