Invité ingoenius Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 J'ai 3 points P1 P2 P3 ou P2 c'est le sommet ou je joindrent les lignes P1 P2 et P2 P3 quel est l'angle formée entre les deux lignes a l'interieur ? car la commande angle demande seulement 2 points et non 3
bseb67 Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 Salut, la commande angle calcul l'angle entre les lignes L1 : (0.0 0.0 0.0) => (1.0 0.0 0.0)L2: p1 => p2 va voir ici, (gile) à déposé une fonction angle_3pts: http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=9120 edit: correction du lien ;) [Edité le 18/3/2009 par bseb67] Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
lili2006 Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 Bonjour à toutes et tous, Sans lisp => Cotation Angulaire => Entrée (permet d'indiquer un sommet => ici P2)puis sélection ligne P1-P2 puis P2-P3 => http://images4.hiboox.com/images/1209/c75e95c0a2e1db0aa89125b3c4fd3f8b.jpg EDIT : Oups, j'avais pas vu forum lisp,... Désolé, PS: Le lien fonctionne chez moi,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 Salut, La fonction angle retourne l'angle entre le segment p1 p2 et l'axe X du SCU courant. Si les points p1 et p2 sont des points 3d, le segment est projeté sur le plan XY du scu courant.On peut donc obtenir l'angle entre les segments p2 p1 et p2 p3 par soustraction :(- (angle p2 p1) (angle p2 p3)) mais il n'est pas certain que l'angle retourné soit positif et inférieur à pi radians (intérieur).On peut donc faire :(setq ang (abs (- (angle p2 p1) (angle p2 p3)))) (if ( S'il s'agit de calculer l'angle dans le plan défini par les 3 point (qurlque soit le SCU courant), on peut utiliser la routine angle_3pts : [code];;; ANGLE_3PTS Retourne l'angle (radians) défini par son sommet et deux points ;;; L'angle retourné est toujours positif et inférieur à pi radians. (defun angle_3pts (som p1 p2 / d1 d2 d3) (setq d1 (distance som p1) d2 (distance som p2) d3 (distance p1 p2) ) (if (and ( (acos (/ (+ (* d1 d1) (* d2 d2) (- (* d3 d3))) (* 2 d1 d2) ) ) ) ) ;;; ACOS Retourne l'arc cosinus du nombre, en radians (defun acos (num) (cond ((equal num 1 1e-9) 0.0) ((equal num -1 1e-9) pi) (( (atan (sqrt (- 1 (expt num 2))) num) ) ) ) PS : bseb67, ton lien ne semble pas fonctionner Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité ingoenius Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 J'ai trouvé un solution sur http://www.jefferypsanders.com/autolisp_ext.html en 2 seule lignes ;-) (if (not c:cal)(arxload "geomcal")) (setq myAng (cal "ang(p1,p2,p3)")
Invité ingoenius Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 quoi dire encore merci Gile ;-) Il faut que je révise sérieusement la trigonométrie ;-)
(gile) Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 J'ai trouvé un solution sur http://www.jefferypsanders.com/autolisp_ext.html en 2 seule lignes ;-) (if (not c:cal)(arxload "geomcal")) (setq myAng (cal "ang(p1,p2,p3)") Je viens de retrouver un sujet qui ressemble beaucoup à celui-ci Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité ingoenius Posté(e) le 18 mars 2009 Posté(e) le 18 mars 2009 oui mais c'est en 2006 donc ca compte plus ;-( c'est ca le probleme de pas programmer regulierement, on oublie les solution que on avait dejà traité avant ;-(
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