(gile) Posté(e) le 31 octobre 2005 Posté(e) le 31 octobre 2005 Pour ceux qui n'ont pas la calculatrice d'AutoCAD 2006 et son convertisseur d'unités. Boite de dialogue, fichier à enregistrer sous convert.dcl dans un dossier du chemin de recherche des fichiers de support : conv_unit:dialog{ label="Convertisseur"; initial_focus="nombre"; :popup_list{ label="Type d'unités"; key="typ_unit"; edit_width=15; } :row{ :boxed_column{ label="Convertir"; :popup_list{ label="de: "; key="de_unit"; edit_width=16; } :popup_list{ label="en: "; key="en_unit"; edit_width=16; } } :boxed_column{ label="Valeur"; :edit_box{ key="nombre"; value=""; edit_width=12; } :edit_box{ key="result"; edit_width=12; is_tab_stop=false; } } } spacer_1; ok_only; } Fichier LISP : ;;; Convertisseur (defun c:conv_unit (/ typ_lst ang_lst long_lst mas_lst surf_lst tps_lst vol_lst dcl_id what_next rslt lst ) ;; Mise à jour des listes (defun maj_lst () (cond ((= (get_tile "typ_unit") "0") (setq lst ang_lst) ) ((= (get_tile "typ_unit") "1") (setq lst long_lst) ) ((= (get_tile "typ_unit") "2") (setq lst surf_lst) ) ((= (get_tile "typ_unit") "3") (setq lst vol_lst) ) ) (start_list "de_unit") (mapcar 'add_list lst) (end_list) (start_list "en_unit") (mapcar 'add_list lst) (end_list) ) ;; Mise à jour du champ du résultat (defun maj_rslt (/ mode) (setq rslt (cvunit (atof (get_tile "nombre")) (nth (atoi (get_tile "de_unit")) lst) (nth (atoi (get_tile "en_unit")) lst) ) ) (if (or ( ( ) (setq mode 1) (setq mode 2) ) (if (zerop rslt) (set_tile "result" "") (set_tile "result" (rtos rslt mode)) ) ) ;; Fonction principale (setq typ_lst '("angle" "distance" "aire" "volume") ang_lst '("degré" "grade" "radian" "cercle" "quadrant") long_lst '("millimètre" "centimètre" "mètre" "kilomètre" "pouce" "pied" "yard" "mile" ) surf_lst '("millimètre_carré" "centimètre_carré" "mètre_carré" "kilomètre_carré" "pouce_carré" "pied_carré" "yard_carré" "acre" ) vol_lst '("millimètre_cube" "centimètre_cube" "mètre_cube" "kilomètre_cube" "pouce_cube" "pied_cube" "yard_cube" ) ) (setq dcl_id (load_dialog "convert.dcl")) (if (not (new_dialog "conv_unit" dcl_id)) (exit) ) (start_list "typ_unit") (mapcar 'add_list typ_lst) (end_list) (maj_lst) (action_tile "typ_unit" "(maj_lst) (set_tile \"result\" \"\"))" ) (foreach cle '("de_unit" "en_unit" "nombre") (action_tile cle "(maj_rslt)") ) (action_tile "accept" "(done_dialog 1)") (start_dialog) (unload_dialog dcl_id) rslt ) Pour lancer la commande taper : conv_unit, il est possible d'appeler la commande de manière transparente pour répondre à une invite en tapant 'conv_unit [Edité le 1/11/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Eric Posté(e) le 31 octobre 2005 Posté(e) le 31 octobre 2005 j'avoue ne pas avoir testé ton lisp qui doit être plus complet et simple à utiliser que ma méthode, mais je voulais aussi rapeller cette technique : http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=7117#pid Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
x13 Posté(e) le 31 octobre 2005 Posté(e) le 31 octobre 2005 vous trouverez un convertisseur d'unités gratuit sur ce site http://www.esbconsult.com.au/ , il ne vous restera qu"a créer un bouton et/ou l'intégré a votre menu de la façonsuivante :[Convertisseur d'unités](Startapp "G:/Esbpcs/utils/ESBUnitConv.exe") Bien déterminer le chemin de recherche en fonction de votre répertoire d'installation. :cool:
(gile) Posté(e) le 1 novembre 2005 Auteur Posté(e) le 1 novembre 2005 j'avoue ne pas avoir testé ton lisp qui doit être plus complet et simple à utiliser que ma méthode Ce LISP n'est qu'un "enrobage" de ta méthode (cvunit) et il est moins complet, je n'ai retenu que certains types d'unités et que les unités courantes métriques et anglo-saxones pour une utlisation plus pratique. Pour ceux qui travaillent en lieue, angström ou années lumières, qui rêvent de gallons, de tonneaux, de miles nautiques... une version plus complète :present: : ;;; Convertisseur (defun c:conv_unit (/ typ_lst ang_lst long_lst mas_lst surf_lst tps_lst vol_lst dcl_id what_next rslt lst ) ;; Mise à jour des listes (defun maj_lst () (cond ((= (get_tile "typ_unit") "0") (setq lst ang_lst) ) ((= (get_tile "typ_unit") "1") (setq lst long_lst) ) ((= (get_tile "typ_unit") "2") (setq lst mas_lst) ) ((= (get_tile "typ_unit") "3") (setq lst surf_lst) ) ((= (get_tile "typ_unit") "4") (setq lst tps_lst) ) ((= (get_tile "typ_unit") "5") (setq lst vol_lst) ) ) (start_list "de_unit") (mapcar 'add_list lst) (end_list) (start_list "en_unit") (mapcar 'add_list lst) (end_list) ) ;; Mise à jour du champ du résultat (defun maj_rslt (/ mode) (setq rslt (cvunit (atof (get_tile "nombre")) (nth (atoi (get_tile "de_unit")) lst) (nth (atoi (get_tile "en_unit")) lst) ) ) (if (or ( ( ) (setq mode 1) (setq mode 2) ) (if (zerop rslt) (set_tile "result" "") (set_tile "result" (rtos rslt mode)) ) ) ;; Fonction principale (setq typ_lst '("angle" "distance" "masse" "aire" "temps" "volume") ang_lst '("cercle" "degré" "grade" "quadrant" "radian") long_lst '("angström" "année_lumière" "bolt" "cable" "caliber" "centimètre" "chain" "cubit" "décimètre" "décamètre" "fathom" "furlong" "gigamètre" "hectomètre" "kilomètre" "lieue" "link" "main" "mètre" "micropouce" "micron" "mile_nautique" "mille" "millimètre" "nanomètre" "pas" "paume" "parsec" "perche" "pica" "pied" "point" "pouce" "rod" "rope" "span" "survey_foot" "yard" ) mas_lst '("dalton" "dyne" "grain" "gramme" "hundredweight" "kilogramme" "livre" "long_ton" "once" "ounce_troy" "pennyweight" "poundal" "quintal" "scruple" "slug" "stone" "ton" "tonne" ) surf_lst '(" acre" "are" "barn" "centare" "centimètre_carré" "hectare" "kilomètre_carré" "mètre_carré" "millimètre_carré" "pouce_carré" "pied_carré" "rood" "section" "township" "yard_carré" ) tps_lst '("seconde" "minute" "heure" "jour" "semaine" "quinzaine" "année" "décade" "siècle" "millénaire" ) vol_lst '("baril" "board_foot" "boisseau" "centilitre" "cord" "centimètre_cube" "décalitre" "décastère" "drachme" "dry_pint" "dry_quart" "firkin" "fluid_ounce" "gallon" "gill" "hectolitre" "hogshead" "kilderkin" "kilolitre" "kilomètre_cube" "litre" "mètre_cube" "millilitre" "millimètre_cube" "minim" "peck" "pint" "pottle" "pouce_cube" "pied_cube" "puncheon" "quart" "tonneau" "seam" "stère" "tun" "yard_cube" ) ) (setq dcl_id (load_dialog "convert.dcl")) (if (not (new_dialog "conv_unit" dcl_id)) (exit) ) (start_list "typ_unit") (mapcar 'add_list typ_lst) (end_list) (maj_lst) (action_tile "typ_unit" "(maj_lst) (set_tile \"result\" \"\"))" ) (foreach cle '("de_unit" "en_unit" "nombre") (action_tile cle "(maj_rslt)") ) (action_tile "accept" "(done_dialog 1)") (start_dialog) (unload_dialog dcl_id) rslt ) [Edité le 1/11/2005 par (gile)] 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