lovecraft Posté(e) le 8 avril 2013 Posté(e) le 8 avril 2013 Bonjour, Je recherche une façon plus élégante sur l'utilisation de la condition If (Cf code ci-dessous) Si ohdiametre = valeur alors lmini = valeur (peut on créer de liste de correspondance ?) (if (= ohdiametre 0.3) (setq lmini (/ 0.96 2))) (if (= ohdiametre 0.4) (setq lmini (/ 1.08 2))) (if (= ohdiametre 0.5) (setq lmini (/ 1.2 2))) (if (= ohdiametre 0.6) (setq lmini (/ 1.32 2))) (if (= ohdiametre 0.8) (setq lmini (/ 1.76 2))) (if (= ohdiametre 1) (setq lmini (/ 2.00 2))) (if (= ohdiametre 1.2) (setq lmini (/ 2.24 2))) (if (= ohdiametre 1.4) (setq lmini (/ 2.48 2))) (if (= ohdiametre 1.5) (setq lmini (/ 2.60 2))) (if (= ohdiametre 1.6) (setq lmini (/ 2.82 2))) (if (= ohdiametre 1.8) (setq lmini (/ 2.96 2))) (if (= ohdiametre 2) (setq lmini (/ 3.20 2))) Merci de vos retours, Cordialement, Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
(gile) Posté(e) le 8 avril 2013 Posté(e) le 8 avril 2013 Salut, Avec cond :(setq lmini (cond ((= ohdiametre 0.3) (/ 0.96 2)) ((= ohdiametre 0.4) (/ 1.08 2)) ((= ohdiametre 0.5) (/ 1.2 2)) ((= ohdiametre 0.6) (/ 1.32 2)) ((= ohdiametre 0.8) (/ 1.76 2)) ((= ohdiametre 1) (/ 2.00 2)) ((= ohdiametre 1.2) (/ 2.24 2)) ((= ohdiametre 1.4) (/ 2.48 2)) ((= ohdiametre 1.5) (/ 2.60 2)) ((= ohdiametre 1.6) (/ 2.82 2)) ((= ohdiametre 1.8) (/ 2.96 2)) ((= ohdiametre 2) (/ 3.20 2)) ) ) De plus, contrairement à ce qui se passe avec ton code, si une condition est évaluée T les suivantes ne seront pas évaluées.en fait ça correspond à :(if (= ohdiametre 0.3) (setq lmini (/ 0.96 2)) (if (= ohdiametre 0.4) (setq lmini (/ 1.08 2)) (if (= ohdiametre 0.5) (setq lmini (/ 1.2 2)) (if (= ohdiametre 0.6) (setq lmini (/ 1.32 2)) (if (= ohdiametre 0.8) (setq lmini (/ 1.76 2)) (if (= ohdiametre 1) (setq lmini (/ 2.00 2)) (if (= ohdiametre 1.2) (setq lmini (/ 2.24 2)) (if (= ohdiametre 1.4) (setq lmini (/ 2.48 2)) (if (= ohdiametre 1.5) (setq lmini (/ 2.60 2)) (if (= ohdiametre 1.6) (setq lmini (/ 2.82 2)) (if (= ohdiametre 1.8) (setq lmini (/ 2.96 2)) (if (= ohdiametre 2) (setq lmini (/ 3.20 2)) ) ) ) ) ) ) ) ) ) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
VDH-Bruno Posté(e) le 8 avril 2013 Posté(e) le 8 avril 2013 Bonjour, On peut également avec une liste associative, comme ceci. (setq lmini (/ (cdr (assoc ohdiametre '((0.3 . 0.96) (0.4 . 1.08) (0.5 . 1.2) (0.6 . 1.32) (0.8 . 1.76) (1.0 . 2.00) (1.2 . 2.24) (1.4 . 2.48) (1.5 . 2.60) (1.6 . 2.82) (1.8 . 2.96) (2.0 . 3.20) ) ) ) 2 ) ) A+ 1 Apprendre => Prendre => Rendre
lovecraft Posté(e) le 9 avril 2013 Auteur Posté(e) le 9 avril 2013 Bonsoir Messieurs, Merci de vos réponses précieuses. Cordialement, Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
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