Courbe à rayon progressif

  • Auteur de la discussion ELPicos
  • Date de début
C

CALCULATE

Ouvrier
Bonjour à tous,
Il s'agit d'un arc et la théorie de Lobatchevsky permet de calculer le plan tangent et la courbure en chaque point de l'arc. La seule condition est de connaître l'équation de cet arc, sans équation aucune possibilité. Il faut oublier la géométrie classique d'Euclide qui ne donnera rien (en plus le cinquième axiome d'Eucide est inexact). Il y a plus de 40 ans j'avais étudié les arcs dans une forme quelconque, et pour application je m'étais servi de l'arc circulaire, mais on peut prendre l'arc que l'on veut. Je donne ici les débuts de calculs, pas pour montrer ce que je sais non car en 40 ans j'ai grandi et certaines choses sont inexactes selon moi, mais pour montrer que l'on est capable de le faire.....mais hélas avec une équation !!!!! Une fois l'équation connue on pourra calculer exactement en un certains nombres de points la tangence et la courbure grace à cette théorie. Je reconnais que pour quelqu'un qui n'est pas habitué cela semble très complexe, mais bon c'est ainsi je n'y peux rien.....sinon utiliser la théorie approchée de Dodore.
A +
Calculate

P1110369.JPG


P1110370.JPG
 
E

ELPicos

Apprenti
J,avais mis le problème sur un autre site et un type est arrivé à la même équation que Jmr06 et son ellipse ici sur la page 2, ce qui m'a mêlé avec ces données là c'est que j'ai fait une erreur en la traçant avec dessin assisté, je viens de la retracer et ça semble exact, je vais l'agrandir et en mesurer quelques points à l'échelle.
 
S

SULREN

Compagnon
Bonjour,
@CALCULATE
Tu vas dévaster le forum. :-D
Ca va tomber comme des mouches.
C'est PI- que le Covid 19, qui était une partie de plaisir à côté.
Je vais essayer de te lire, mais après avoir mis le SAMU en alerte.
 
O

osiver

Compagnon
Je ne voudrais pas récuser l'aspect mathématique sans doute plus rigoureux mais ici on cherchait au départ le moyen de faire réaliser cette pièce par une CN non connue (sous-traitance). Or celles-ci exécutent des usinages par interprétation de Gcode qui ne comporte pas de fonctions mathématiques. Certaines commandes ont en option cette possibilité mais rien n'est standard.
D'où l'idée de le faire avec un logiciel capable de générer du Gcode standard comme Freecad. On pourrait en effet calculer point à point mais il faudrait alors générer le Gcode "à la main" éventuellement en tenant compte du décalage dû aux dimensions de la fraise.

Voici le Gcode générique ( = avant post-processeur ) pour la partie en jaune de l'usinage. On constate que la courbe est obtenue par trois arcs de cercles (G3) et sans doute "un peu" des G2 avant et après. Le décalage est pour une fraise de 4mm


Capture du 2020-07-15 12-13-33.png
 
E

enguerland91

Compagnon
Je ne sais pas comment les logiciels utilisés par la plupart des amateurs ici fonctionnent mais à ma connaissance la façon la plus aisée lorsqu'on est en présence de devoir faire un calcul mathématique pour connaitre les points d'une courbe, consiste à remplir un tableau avec les points calculés et ensuite le logiciel qui commande les moteurs lie ce tableau
 
D

Dodore

Compagnon
Oui il y a certain logiciel et certaine CN qui font ça et la machine génère une courbe qui passe par tous les points
ça s’appelle une courbe « spline »
il faut pour ça en FAO rentrer tous les points qu’on connais et ensuite choisir « spline »
puis pointer avec la souris chaque point et le logiciel crée la courbe
je l’ai fais une fois , mais je ne me rappelle plus comment se fait le transfert entre l’ordi et la CN
@Bricoleur_69 connais bien ça
 
Dernière édition:
E

ELPicos

Apprenti
2 types qui ont des CNC que je suis aller voir mon dit qu'il avait une fonction simple pour les ellipses.
Voici le calcul de l'ellipse en question, assez étourdissant, du moins en ce qui me concerne

Equation d'une ellipse de grand axe 2a et de petit axe 2b : x²/a² + y²/b² = 1

Que l'on peut aussi écrire sous forme paramétrique :
x = a.cos(t)
y = b.sin(t)

Rayon de courbure : Rc = (a²/b)*(1 - e².cos²(t))^(3/2)
avec e l'excentricité : sqrt(1 - e²) = b/a
**********

On voulait Rc = 12 en x = 0 --> pour cos(t) = 0

Rc = (a²/b)*(1 - e².cos²(t))^(3/2)
12 = a²/b * (1 - 0)^(3/2)
--> b = a²/12
----
On voulait Rc = 9 pour x = 6,2 donc pour cos(t) = 6,2/a

Rc = (a²/b)*(1 - e².cos²(t))^(3/2)
9 = (a²/(a²/12))*(1 - e²*(6,2/a)²)^(3/2)
9 = 12*(1 - e²*(6,2/a)²)^(3/2)
1 - e²*(6,2/a)² = (9/12)^(2/3) = 0,825481812
e²*(6,2/a)² = 1 - 0,8254818 = 0,174518188
6,2*e/a = sqrt(0,174518188)
e = 0,06738.a

sqrt(1 - e²) = b/a
sqrt(1 - 0,06738².a²) = (a²/12)/a
(1 - 0,06738².a²) = (a/12)²
a² = 87,074 (a = 9,33)

b = a²/12 = 7,25617 (b² = 52,6523)

L'équation de l'ellipse est donc : x²/87,074 + y²/52,6523 = 1 (avec x et y en mm)

grand axe : 2a = 18,66 (mm)
petit axe : 2b = 14,51 (mm)
---
x = 6,2 --> y = sqrt[(1 - 6,2²/87,074)*52,6523] = 5,423

---> profondeur de l'arc (flèche) = b - 5,423 = 7,25617 - 5,423 = 1,833 mm
 
D

Dodore

Compagnon
Oui , il me semble que je l’avais signalé
j’en ai fait une avec des paramètres avec l’équation sinus cosminus
 
E

enguerland91

Compagnon
Oui il y a certain logiciel et certaine CN qui font ça et la machine génère une courbe qui passe par tous les points
ça s’appelle une courbe « spline »
il faut pour ça en FAO rentrer tous les points qu’on connais et ensuite choisir « spline »
puis pointer avec la souris chaque point et le logiciel crée la courbe
je l’ai fais une fois , mais je ne me rappelle plus comment se fait le transfert entre l’ordi et la CN
@Bricoleur_69 connais bien ça
Non je ne parle pas de cela. La question posée était à propos de comment envoyer les coordonnées à une CNC à partir d'une équation.
La fonction SPLINE consiste à essayer de faire passer une courbe par des points déterminés. On faisait cela en utilisant un "pistolet" de dessinateur du temps où les PC n'existaient pas
 
D

Dodore

Compagnon
Non je ne parle pas de cela. La question posée était à propos de comment envoyer les coordonnées à une CNC à partir d'une équation.
il me semble que j’en ai parlé : il faut faire un programme parametré
il faut transformer l’équation en langage machine de façon à ce que la machine puisse la lire
on lui fait calculer un point
et on lui fait faire le déplacement
on fait une boucle pour que la machine recommence la même opération en faisant changer une valeur
 
E

enguerland91

Compagnon
il me semble que j’en ai parlé : il faut faire un programme parametré
il faut transformer l’équation en langage machine de façon à ce que la machine puisse la lire
on lui fait calculer un point
et on lui fait faire le déplacement
on fait une boucle pour que la machine recommence la même opération en faisant changer une valeur
Si tu opères de cette façon tu vas avoir un fonctionnement lent voire saccadé car le temps que la machine calcule le nouveau point elle fait quoi ? c'est pourquoi je proposais de faire cela en deux temps. D'abord les calculs avec remplissage d'un tableau puis lecture du tableau car la lecture va beaucoup plus vite que les moteurs pas à pas et les calculs surtout s'il y a des racines carrées dans le calcul
Attention moi je me place dans la situation où c'est un PC qui commande la CNC. Je ne connais pas les CNC industrielles
 
D

Dodore

Compagnon
Si tu opères de cette façon tu vas avoir un fonctionnement lent voire saccadé
Oui c’était vrai dans le temps où si l’avance est trop rapide
j’ai fait plusieurs fois des programmations paramètrées Sur NUM.560 sans aucun problème , le mieux c’est d’essayer
sur NUM la macinr lit 3 blocs à l’avance et donc elle a le temps de faire un calcul pendant un déplacement
 
D

Dodore

Compagnon
Ah ça y est j’ai retrouvé un exemple de programmation parametrée
le destinataire n’était pas content parce que je n’avais pas fais ça pour sa machine
 
J

Jmr06

Compagnon
2 types qui ont des CNC que je suis aller voir mon dit qu'il avait une fonction simple pour les ellipses.
Voici le calcul de l'ellipse en question, assez étourdissant, du moins en ce qui me concerne

Equation d'une ellipse de grand axe 2a et de petit axe 2b : x²/a² + y²/b² = 1

Que l'on peut aussi écrire sous forme paramétrique :
x = a.cos(t)
y = b.sin(t)

Rayon de courbure : Rc = (a²/b)*(1 - e².cos²(t))^(3/2)
avec e l'excentricité : sqrt(1 - e²) = b/a
**********

On voulait Rc = 12 en x = 0 --> pour cos(t) = 0

Rc = (a²/b)*(1 - e².cos²(t))^(3/2)
12 = a²/b * (1 - 0)^(3/2)
--> b = a²/12
----
On voulait Rc = 9 pour x = 6,2 donc pour cos(t) = 6,2/a

Rc = (a²/b)*(1 - e².cos²(t))^(3/2)
9 = (a²/(a²/12))*(1 - e²*(6,2/a)²)^(3/2)
9 = 12*(1 - e²*(6,2/a)²)^(3/2)
1 - e²*(6,2/a)² = (9/12)^(2/3) = 0,825481812
e²*(6,2/a)² = 1 - 0,8254818 = 0,174518188
6,2*e/a = sqrt(0,174518188)
e = 0,06738.a

sqrt(1 - e²) = b/a
sqrt(1 - 0,06738².a²) = (a²/12)/a
(1 - 0,06738².a²) = (a/12)²
a² = 87,074 (a = 9,33)

b = a²/12 = 7,25617 (b² = 52,6523)

L'équation de l'ellipse est donc : x²/87,074 + y²/52,6523 = 1 (avec x et y en mm)

grand axe : 2a = 18,66 (mm)
petit axe : 2b = 14,51 (mm)
---
x = 6,2 --> y = sqrt[(1 - 6,2²/87,074)*52,6523] = 5,423

---> profondeur de l'arc (flèche) = b - 5,423 = 7,25617 - 5,423 = 1,833 mm

C'est exactement les calculs des posts 18 et 19. Pour une ellipse, c'est cela.

Ce soir, pour le fun, je vais faire un autre calcul pour une courbe polynomiale. Je ne sais pas du tout si on sait programmer un polynôme sur une CN, et donc si cela sera utile, mais cela m'amuse de le faire.
JM.
 
J

Jmr06

Compagnon
Mouhai, je ne suis pas arrivé à quelque chose de satisfaisant avec des polynômes simples.
J'ai regardé avec des courbes du type :
y = a x^2 + b x^3
et
y = a x^2 + b x^4
Voila ce que j'obtiens : La courbe bleu qu'on voit à peine est l'ellipse, la rouge le premier polynôme et la verte le second.
On voit qu'elles sont presque superposées.
1594848822472.png


et pourtant, et pourtant, quand on calcule les courbures exactes, on a cela :

1594848900027.png

La courbe bleu, l'ellipse, est parfaite : la courbure varie progressivement de 12 mm au centre à 9 sur le bord, comme paramétré et comme souhaité.
Les polynômes, je vous laisse apprécier ....

Bref, pour le moment, l'ellipse tient la corde.

Jean-Michel.
 
E

ELPicos

Apprenti
Mouhai, je ne suis pas arrivé à quelque chose de satisfaisant avec des polynômes simples.
J'ai regardé avec des courbes du type :
y = a x^2 + b x^3
et
y = a x^2 + b x^4
Voila ce que j'obtiens : La courbe bleu qu'on voit à peine est l'ellipse, la rouge le premier polynôme et la verte le second.
On voit qu'elles sont presque superposées.
Voir la pièce jointe 631728

et pourtant, et pourtant, quand on calcule les courbures exactes, on a cela :

Voir la pièce jointe 631729
La courbe bleu, l'ellipse, est parfaite : la courbure varie progressivement de 12 mm au centre à 9 sur le bord, comme paramétré et comme souhaité.
Les polynômes, je vous laisse apprécier ....

Bref, pour le moment, l'ellipse tient la corde.

Jean-Michel.

Le type qui m'a répondu sur l'autre forum m'a mentionné qu'il y avait une multitude de possibilités d'y arriver, l'ellipse est vraiment bien étant donné qu'il existe une forme de les paramétrer en CN.
J'aimerais bien être capable de faire les calculs moi même pour de nouvelles formes et dimensions mais je ne suis pas assez connaissant en maths pour comprendre tous les signes utilisés, * ^..., si un moment donné tu crois que je pourrais le faire à la calculatrice en ayant des symboles plus simples et que tu as quelques instants pour me l'étaler en détails, je l'essaierais sérieusement car avec le temps j'en aurai d'autres à faire avec différents paramètres.
J-Luc.
 
Haut