Le G-Code et les cercles en 3D

Le problème exposé dans ce sujet a été résolu.

Hello ! pour mon projet actuel je doit parser du G-Code. J’ai cependant un souci en ce qui concerne le dessin des cercles.

Si j’ai bien compris, on spécifie avec G02 ou G03 2 points : le centre du cercle et le point d’arrivée. En ajoutant la position actuelle (avant de dessiner l’arc de cercle), cela nous donne 3 points. Si ces 3 points ne sont pas alignés, on a déjà un problème pour définir l’orientation du plan (pour avoir le sens de rotation). Mais si en plus les trois points sont alignés, bonjour la galère !

Du coup j’aimerais savoir si certains membres familiers du monde de l’impression 3D / CNC savent comment sont gérés les cercles habituellement. Pour l’instant je m’oriente vers une solution où les arcs doivent être dans l’un des plans XY, XZ ou YZ (donc utilisation de seulement 2 des variables I, J ou K) avec une orientation du plan selon celle de l’axe restant. Si un mouvement est spécifié sur la troisième coordonnée alors la machine génère un tire bouchon. Est-ce ce qui est implémenté de manière générale ?

Hello, j’ai déjà du travailler avec du GCode et notamment avec les G2 et G3. (G2 = sens horaire / G3 = sens anti horaire).

Par contre je n’ai que travailler sur un plan (XY).

Je suis sur mon tél, mais je n’ai pas bien compris qu’elle est ton problème ?
Je regarderai de plus près quand j’aurai un PC.

En fait il y a deux problèmes. Tout d’abord on a besoin d’un plan pour tracer un cercle; donc si les trois points sont alignés, c’est mort. Cela peut se régler facilement ceci-dit, car il suffit de lever une erreur le cas échéant. Le second problème est que si les trois points ne sont pas alignés, il reste à orienter le plan pour définir les sens de rotation. Quand on travaille dans le plan XY, le vecteur Z oriente naturellement le plan. Mais qu’en est-il d’un plan quelconque ? Ma question est donc de savoir comment les machines usuelles gèrent ces deux points.

Je ne vois pas qu’elle est le troisième point

WinXaito

Pour moi, si $O$ est l’origine du repère:

  • Le premier point est la position actuelle ($M_n$ dans la suite);
  • Le deuxième point est la position du centre ($C$ dans la suite). On l’obtient en faisant $\vec{OM_n} + \vec{V}$ avec $\vec{V} = (I,J,K)$, où I,J et K sont les variables passées à la commande G02 ou G03;
  • Le troisième point est la position d’arrivée ($M_{n+1}$ dans la suite). C’est ce qui est spécifié par les paramètres X, Y et Z.

Après quelques recherches, j’ai trouvé ça ici :

The axis of the circle or helix must be parallel to the X, Y, or Z axis of the machine coordinate system. The axis (or, equivalently, the plane perpendicular to the axis) is selected with G17 (Z-axis, XY-plane), G18 (Y-axis, XZ-plane), or G19 (X-axis, YZ-plane). Planes 17.1, 18.1, and 19.1 are not currently supported. If the arc is circular, it lies in a plane parallel to the selected plane.

To program a helix, include the axis word perpendicular to the arc plane: for example, if in the G17 plane, include a Z word. This will cause the Z axis to move to the programmed value during the circular XY motion.

Donc c’est le comportement que j’avais intuité qui est implémenté pour LinuxCNC et Grbl. On peut sélectionner le plan.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte