Aller au contenu

Messages recommandés

Posté(e)

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]

Posté(e)

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 ???

 

@++ !

 

Posté(e)

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 .

 

 

Posté(e)

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

 

 

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité