usegomme Posté(e) le 17 juin 2009 Posté(e) le 17 juin 2009 Voilà pour Guigues et ceux que ça intéressent des réductions iso pour vos plans de tuyauteries en 2d. Je me suis servis du lisp que j'ai fait pour les réductions en 3d. j'ai commencé par le plus facile , la suite ce sera les reductions acier ; Réduction Inox Iso en 2D version 1.1 ; usegomme le 17/06/2009 (defun c:RedIso2d (/ pd pdir pf a h d1 d2 sv_dm dm pw abase adir aun echo) (command "_undo" "_be") (setq abase (getvar "angbase") adir (getvar "angdir") aun (getvar "aunits") echo (getvar "cmdecho") ) (setvar "cmdecho" 0)(setvar "angbase" 0)(setvar "angdir" 0)(setvar "aunits" 0) (command "_ucs" "_s" "tempftd") (if (not (zerop (getvar "cmdactive"))) (command "_y") ) (setq pd (getpoint "\nPoint de départ de la reduction :")) (if pd (setq pdir (getpoint pd "\n direction de la réduction <0>: "))) (cond ((and pd pdir) (setvar "ELEVATION" 0) (command "_ucs" "_zaxis" "_none" Pd "_none" pdir) (command "_ucs" "_x" "270") (command "_ucs" "_z" "270") (setq pd '(0. 0. 0.)) ) ) (cond (pd (setq sv_dm (getvar "DYNMODE")) (cond ((< sv_dm 0) (setq dm (* sv_dm -1)) (setvar "DYNMODE" dm)) (t (setq sv_dm nil dm nil)) ) (setq d1 nil d2 nil) (while (or (not d1)(not d2)) (initget "Autre 10 15 20 25 32 40 50 65 80 100 125 150 200 250 300") (setq dn (getkword "\n DN [Autre/10/15/20/25/32/40/50/65/80/100/125/150/200/250/300]:")) (cond ((= dn "10") (setq dn 17.2)) ((= dn "15") (setq dn 21.3)) ((= dn "20") (setq dn 26.9)) ((= dn "25") (setq dn 33.7)) ((= dn "32") (setq dn 42.4)) ((= dn "40") (setq dn 48.3)) ((= dn "50") (setq dn 60.3)) ((= dn "65") (setq dn 76.1)) ((= dn "80") (setq dn 88.9)) ((= dn "100") (setq dn 114.3)) ((= dn "125") (setq dn 139.7)) ((= dn "150") (setq dn 168.3)) ((= dn "200") (setq dn 219.1)) ((= dn "250") (setq dn 273)) ((= dn "300") (setq dn 323.9)) ((= dn "Autre") (setq dn (getdist "\nDiamètre de la reduction en mm:"))) (t (princ)) ) (if d1 (setq d2 dn) (setq d1 dn)) ) (if sv_dm (setvar "DYNMODE" sv_dm)) ) ) (cond (d2 (if (= d1 d2) (setq h d1) (setq h (* 3 (if (> d1 d2)(- d1 d2) (- d2 d1)))) ) (if (< 0.7 (- h (fix h)))(setq h (+ (fix h) 1))(setq h (fix h))) (setq pf (list (+ (car pd) h)(cadr pd))) (initget "Aucun") (setq a (getangle pd "\nSi excentrique TANGENT de quel coté?[]:")) (if (= a "Aucun")(setq a nil)) (cond (a (if (and (> a 0) (< a pi)) (setq a (* 0.5 pi)) (setq a (* 1.5 pi))) (setq pf (polar pf a (- (/ d1 2)(/ d2 2)))) ) ) (setq pw (getvar "plinewid")) (setvar "plinewid" 0) (command "_pline" "_non" (polar pd (* 0.5 pi) (/ d1 2)) "_non" (polar pd (* 1.5 pi) (/ d1 2) ) "_non" (polar pf (* 1.5 pi) (/ d2 2)) "_non" (polar pf (* 0.5 pi) (/ d2 2) ) "_c" ) (setvar "plinewid" pw) (setvar "angbase" abase)(setvar "angdir" adir) (setvar "aunits" aun) ) ) (gc) (if pdir (command "_ucs" "_r" "tempftd")) (setvar "cmdecho" echo) (command "_undo" "_e") (princ "Longueur ")(princ h) (prin1) ) [Edité le 17/6/2009 par usegomme]
Guigues Posté(e) le 17 juin 2009 Posté(e) le 17 juin 2009 super boulot usegomme, j'ai testé le lisp et cela fonctionne avec longueur de la reduc = 3(D-d) avec D = gros diametre et d = petit diametre.... Par contre je n'arrive pas a faire de reduction excentrique ? C'est décidé je me lance dans l'apprentissage du Lisp à partir d'un bouquin ... une référence à me conseiller avant que je cherche en librairie ??? @++ !
usegomme Posté(e) le 17 juin 2009 Auteur Posté(e) le 17 juin 2009 Et non pas super , j'ai merdouillé en voulant neutraliser le clic dans l'axe finalement j'ai tellement bien réussi que j'ai tout bloqué . J'ai supprimé le problème , mais il ne faut cliqué que si on veut une réduction excentrique. C'est rectifié au-dessus. Pour ce qui est des bouquins , j'ai appris avec "programmation autolisp" de J.C Teste et K Agbetiafa mais c'est ancien (1989) , sinon je ne sais pas ce qu'il a de bien pour les débutants,mais je ne doute pas que nos experts vont te renseigner. Salut .
Guigues Posté(e) le 18 juin 2009 Posté(e) le 18 juin 2009 Merci UseGomme Ca fonctionne trés bien. Je ne serai pas la les 2 prochaines semaines donc bonne continuation à tous les Lisp'eurs et merci encore :D
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