Invité ingoenius Posté(e) le 6 mars 2008 Posté(e) le 6 mars 2008 bonjour, je voudrai creer un cône en sélectionnant 2 point (3d) et donnant l' angle d'ouverture en degré de la pente du cône j'ai un calcul qui fonctionne en (excel) mais je ne sais pas faire en autolisp en exel (TAN(((PI()/180))*Hauteur))*Angle en Lisp j'ai commencée cela, mais la fonction atan ne dois pas être la bonne il existe pas la fonction tangente? ou je me suis trompé dans la transformation en radiant? (defun c:ccone () (setq DTR (/ PI 180)) ;fattore di moltiplicazione x gradi verso radianti pi é Pi greco! (SETQ PT (getpoint "\nCentre de la base du cone ?")) (SETQ P2 (getpoint "\nhauteur du cone ? : ")) (setq alt (distance PT P2 )) (setq ang (getreal "\nOuverture Angle? : ")); in gradi (setq angR (* DTR ang)) (setq R (atan angR)) (command "_cone" PT R alt "") ) merci pour l'aide ;-) [Edité le 6/3/2008 par ingoenius]
bonuscad Posté(e) le 6 mars 2008 Posté(e) le 6 mars 2008 Bonjour, Si la fonction Tangente n'existe pas en lisp, il est facile de l'obtenir en connaissant l'égalité mathématique: Tangente (x) = sinus (x) / cos (x) Traduit en lisp cela pourrait donner (pour x exprimé en radians) (defun tan (x) (if (equal (cos x) 0.0 1E-16) (princ "\nInfini") (/ (sin x) (cos x)) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Invité ingoenius Posté(e) le 6 mars 2008 Posté(e) le 6 mars 2008 merci je suis en train de travailler sur cela, par contre si la routine fonctionne en orthogonale je ne sais pas l'adapter pour pouvoir sélectionner 2 point en 3d quelqu'un est intéressé? (defun c:ccone () (setq DTR (/ PI 180)) ;fattore di moltiplicazione x gradi verso radianti pi é Pi greco! (SETQ PT (getpoint "\ncentre de la base?")) (SETQ P2 (getpoint "\nhauteur ? : ")) (setq alt (distance PT P2 )) (setq ang (getreal "\nOuverture Angle? : ")); in degres (setq angR (* DTR ang));tranforme en radians (setq R (sin angR)) (setq S (cos angR));tangente (setq Z (/ R S) ) (setq R2(/ (* alt Z) 2.0)); (command "_cone" PT R2 alt "") )
(gile) Posté(e) le 6 mars 2008 Posté(e) le 6 mars 2008 Salut, Bonuscad, AutoCAD semble avoir prévu le risque de division par 0, cos 90° ne retourne pas 0 mais 6.12323e-017 Citation _$ (cos (/ pi 2))6.12323e-017_$ (/ (sin (/ pi 2)) (cos (/ pi 2)))1.63312e+016 ingoenius, Une proposition en changeant de SCU (option axeZ), il faut traduire les coordonnées des points dans le nouveau SCU.L'utilisation de getangle à la place de getreal traduit automatiquement laes angles de l'unité courante en radians. (defun c:ccone (/ pT P2 alt angR R S Z R2 zdir vec) (setq DTR (/ PI 180)) ;fattore di moltiplicazione x gradi verso radianti pi é Pi greco! (SETQ PT (getpoint "\ncentre de la base?")) (SETQ P2 (getpoint "\nhauteur ? : ")) (setq alt (distance PT P2)) (setq angR (getangle "\nOuverture Angle? : ")) (setq R (sin angR)) (setq S (cos angR)) ;tangente (setq Z (/ R S)) (setq R2 (/ (* alt Z) 2.0)) ; (setq zdir (trans '(0 0 1) 1 0 T)) ; vecteur normal du SCU courant (command "_.UCS" "_za" PT P2) ; changement de SCU (setq PT (trans PT zdir 1) ; traduction des points dans le nouveau SCU P2 (trans P2 zdir 1) ) (command "_cone" PT R2 alt "") (command "_.UCS" "_p") ; restauration du SCU ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 6 mars 2008 Posté(e) le 6 mars 2008 Citation AutoCAD semble avoir prévu le risque de division par 0, cos 90° ne retourne pas 0 mais 6.12323e-017 Ah oui ! :P Sur une 2008 c'est vrai. Je n'ai plus de version tel que 2000/2002 pour vérifier si c'était déjà le cas aussi. Cela évitera des "divide by zero" en retour... c'est pas plus mal ! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Invité ingoenius Posté(e) le 7 mars 2008 Posté(e) le 7 mars 2008 merci pour les aide, maintenat pour effectuer des modif sur les cones cree j'ai besoin de savoir comme acceder et modifier les info du cone rayon hauteur et rayon 2c'est faisable ?
Invité ingoenius Posté(e) le 7 mars 2008 Posté(e) le 7 mars 2008 merci pour les aide, maintenat pour effectuer des motif sur les cones cree j'ai besoin de savoir comme acceder et modifier les info du cone rayon hauteur et rayon 2c'est faisable ? cra j'ai cela (setq OBJ (ssget)) (setq ent (ssname Obj 0)) (setq EL (entget ent)) (setq Q (cdr (assoc 0 EL))) mais comment accéder aux autres info?
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