CNC de Carlos78 en Agglo

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

carlos78

Compagnon
Concernant le message d'erreur obtenu de temps à autre avec le programme de filetage cité plus haut
Ca marche ... puis ça marche plus.C'est lui qui m'a induit en erreur. J'ai pensé que ce problème était lié à la configuration XYZA, alors qu'en fait il n'en ait rien.
N'ayant jamais écrit de gcode j'ai mis un peu de temps pour comprendre le problème.

Histoire de voir si il y en a qui suivent, Je laisse un peu cogiter les experts en programmation. Le gcode du programme est lisible sur la photo.

Carlos
 
S

speedjf37

Compagnon
Bonjour,

Ce message apparait à chaque fois que le déplacement programmé dans le Gcode dépasse les limites d'un axe.

ligne4 A_3456

C'est l'axe (3) qui déclenche une erreur

Puisque c'est un axe rotatif il ne devrait pas atteindre de limite
dans le fichier cncxxxx.ini

un exemple:
http://www.cnc-arena.com/en/forum/axis-rotation-speed--183448.html

[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 120.0
STEPGEN_MAXACCEL = 150.0
SCALE = 80.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0
 
Dernière édition par un modérateur:
I

inmik

Apprenti
Bonsoir à tous,

Je pense qu'il faut mettre un G92.1 à la fin du programme.
Pour une raison que j'ignore le G92 de l'axe A accumule les décalages jusqu’à dépasser les limites théoriques de l'axe.

Pour info j'ai augmenté les "courses" de mon axe A (actuellement en test, driver en commande )

MIN_LIMIT = -99999.0
MAX_LIMIT = 99999.0

Si d'autres membres ont des idées

A+
 
S

speedjf37

Compagnon
Bonsoir,


vu dans une config 4th axes:

#MIN_LIMIT = -36000.0
#MAX_LIMIT = 36000.0

Je ne sais s'il y a une valeur par défaut
 
B

Barbidou

Compagnon
Bonsoir,

Cela semble somme toute assez logique : Le G92 déplace l'origine en relativement à l'origine en cours. Si le recalage a lieu toujours dans le même sens, le zéro de l'axe s'éloigne à chaque fois un peu plus de l'origine machine. A force, il fini par atteindre la limite. Le G92.1 remet l'offset à 0 et résous alors le problème. En revanche, en faisant ça on perd l'origine actuelle. Il serait peut-être plus judicieux de remettre le paramètre correspondant au G92 (paramètre #5214 dans LinuxCNC) à une valeur raisonnable avec une commande du genre :

#5214 = #5214 MOD 360

Ainsi, si l'axe est calé à 7230° par rapport à l'origine (soit 20 tours complets + 30°), il se retrouve à la position 30° et on a évité de perdre l'information de position en cours.

Le mieux serait quand même de configurer LinuxCNC pour supprimer la limite de l'axe, mais je ne sais pas si c'est possible facilement.
 
C

carlos78

Compagnon
Merci à speedjf37, inmik, et Barbidou pour leurs réponses.

Le problème est effectivement qu'à chaque exécution du programme, le mandrin tourne de -3600°(-10 tours) sans retour réel à 0°.
La ligne G92 A0 éffectue seulement un décalage de l'origine de l'axe A après cette rotation. Le but de cette ligne est uniquement de ne pas faire inutilement une rotation inverse de +10 tours.

Comme le dit Barbidou, la position s'éloigne donc à chaque lancement du programme de -10 tours de l'origine machine jusqu'à atteindre la limite inférieure de A d'ou l'affichage du message d'erreur. Pour mieux comprendre le problème, on peut suivre en temps réel l'évolution des paramèttres en affichant la fenêtre de Statut de LinuxCNC (menu machine/Afficher le statut de LinuxCNC). Les paramètres qui évoluent se mettent en rouge. Celui qui ,nous intéresse est le paramètre position.

Dans mon cas j'avais mis les limites MIN_LIMIT et MAX_LIMIT sur l'axe A à -18000 et +18000 (+/- 50 tours). Résultat : au 6ème lancement (j'avais déja fait -50 tours) j'avais systématiquement droit au message d'erreur.

Remplacer le G92 par un G92.1 : J'ai testé et ce n'est pas suffisant: On efface éffectivement le décalage sur l'axe A, mais on récupère ce décalage dans la position angulaire de A et donc on perd le zéro (bien vu Barbidou), ce qui conduit à refaire les 10 tours inverse ou à faire un toucher à 0 avant de relancer.

J'ai trouvé 3 solutions à ce problème que je classe de la plus mauvaise à ce qui m'apparait être la meilleure :

1) Remplacé la ligne G92 A0 par G00 A0 : on fait +10 tours pour rien. C'est pas terrible comme solution.

2) On laisse le programme tel que, puis au bout de n lancements et uniquement lorsque apparait le message d'erreur, on fait une POM puis un toucher à 0 sur A .
C'est très rapide, on fait un RESET sur A et ça repart pour n lancements. On peut aussi en parallèle mettre une très grande valeur sur les limites pour éviter de rencontrer ce problème trop souvent .

3) On édite le fichier ma_machine.ini et dans la rubrique [AXIS_3] on supprime (ou on met en commentaires) les paramètres MIN_LIMIT et MAX_LIMIT. C'est le cas dans l'exemple proposé par speedjf37 ( #MIN_LIMIT = -36000.0, #MAX_LIMIT = 36000.0 ).
L'inconvenient c'est qu'on intervient manuellement sur le fichier de configuration .ini. Le lancement d'une modification de la configuration via le programme Stepconf effacera cette modification.


[AXIS_3]
....
...
# MIN_LIMIT = -18000
# MAX_LIMIT = 18000
...

Je viens de le tester et ça marche : Il n'y a plus de limites sur A

NB : Je vous parlerais probablement bientot d'un autre message d'erreur du genre : Erreur de suivi jointure, qui a l'air d'apparaitre avec les axes rotatifs

Carlos
 
B

Barbidou

Compagnon
Eh bien si il suffit de mettre en commentaire les limites dans le fichier, c'est bien la meilleure (et la plus naturelle) des solutions!
 
S

sebastian

Compagnon
Bravo Carlos !
j'adore ton approche hyper méthodique pour trouver in fine la solution ; à toi les joies du 4e axe
Pas facile l'auto formation en ne faisant pas de casse.

Bon courage pour la suite
Sebastian
 
C

carlos78

Compagnon
@SEBASTIAN : Pour les copeaux je vais attendre un peu que la température remonte dans mon sous-sol.
L'auto-formation est ce que j'apprécie le plus, et justement pour essayer d'éviter la casse j'essaye de déverminer au mieux la configuration de la machine.
Avec la version 3 axes je n'ai jamais eu le moindre message d'erreur avec LinuxCNC, mais avec la mise en place du 4ème axe c'est un peu différent.
La résolution du message d'erreur précedent m'a permis de résoudre (à ma façon) le problème des limites sur l'axe rotatif.

Carlos
 
C

carlos78

Compagnon
J'attaque maintenant un autre message d'erreur plus vicieux qui m'est arrivé une seule fois : "erreur de suivi jointure 3" ... message qui reviendra forcement.

-> Sur la page du wiki-linuxcnc-org traitant du "following error", l'auteur explique que les paramètres MIN_FERROR et FERROR (paramètres qui définissent en quelque sorte la tolérance de suivi de la trajectoire pour chaque axe) sont la principale cause de ce message d'erreur. La valeur affectée étant souvent trop faible. Il y a d'autres raisons citées qui sont possibles mais je crois qu'elles affecteraient également les autres axes (je me trompe peut-être).
Le paramètre MIN_FERROR s'appliquerait aux petites vitesses de déplacement (statique ?) et le paramètre FERROR aux vitesses maxi (dynamique ?). Les valeurs d'accélération doivent probablement jouer aussi un role dans les calculs.
Dans un 1er temps il explique (à tord dit-il ensuite) que les valeurs de ces paramètres seraient un pourcentage des paramètres de vitesse, puis il se reprend plus loin en expliquant qu'en fait ces 2 paramètres s'expriment dans l'unité de déplacement utilisé par l'axe.

Si c'est vrai, j'en déduis que dans mon cas FERROR et MIN_FERROR s'expriment en mm pour les mouvement linéaires , et en degrés pour le mouvement angulaire .
Si quelqu'un pouvait confirmer ...

Les paramètres MIN_FERROR et FERROR se retrouvent dans les rubriques [AXIS_n] du fichier ma_machine.ini avec des valeurs par défaut identiques sur tous les axes (linéaires et rotatifs) : 0.25 pour MIN_FERROR et 1 pour FERROR. Ces paramètres ne sont pas gérés par le programme de configuration Stepconf.

A priori, il va falloir probablement augmenter les valeurs des paramètres MIN_FERROR et FERROR sur l'axe A, mais comment calculer ces valeurs ?

A défaut de valeurs trouvées sur le net, je me suis fait le raisonnement suivant :

1) Je pars du principe que seuls comptent les pas entiers pour un positionnement réel.
2) Sur mes axes linéaires un tour du moteur (200 pas) représente un déplacement de 5mm. 1mm représente donc 40 pas.
FERROR = 1 mm donne une tolérance dynamique de 40 pas
MIN_FERROR = 0.25 mm donne une tolérance statique de 10 pas
Avec ces valeurs standards, il n'y a jamais eu de problèmes sur les axes linéaires. Je pense même que ces valeurs pourraient être réduites.
3) Sur mon axe rotatif c'est pas du tout pareil ... puisqu'il y a eu au moins 1 fois un problème.
Un tour de l'axe A c'est 6 tours de son moteur donc 1200 pas. 1° sur cet axe est obtenu avec 3.333 pas
FERROR = 1° donne une tolérance dynamique de 3.333 pas
MIN_FERROR = 0.25° donne une tolérance statique de 0.833 pas
J'ai grosso modo un rapport de 12 par rapport aux déplacements linéaires, mais surtout en statique je suis en dessous d'un pas. C'est pas assez et c'est peut être l'explication.

En résumé : Au PIF, je vais tester avec FERROR = 4 et MIN_FERROR = 1 sur l'axe A. Si besoin, j'augmenterai les valeurs.
Avis des spécialistes ...

NB : Je serais très intéréssé par un retour d'info sur ces paramétrages ou sur les solutions trouvées à ce message d'erreur (et d'autres).
J'ai pas trouvé grand chose sur le net (surtout en français).

Carlos
 
S

speedjf37

Compagnon
Dernière édition par un modérateur:
C

carlos78

Compagnon
Salut speedjf37
speedjf37 a dit:
... C'est bien stepconf qui met des valeurs par défaut différentes suivant le type d'axe (linear /angular)...
Oui : c'est bien Stepconf qui génère les fichiers de configuration, mais à aucun moment on peut modifier les valeurs de FERROR et MIN_FERROR sous Stepconf.
Non : les valeurs par défaut attribués par Stepconf sont les mêmes sur tous les axes linéaires ou angulaires. Après, chacun peut modifier manuellement le fichier .ini.

En fouinant, je suis tombé la-dessus :

[AXIS_5]

TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
BACKLASH = 0.000
INPUT_SCALE = 40
OUTPUT_SCALE = 1.000
MIN_LIMIT = -36000.0
MAX_LIMIT = 36000.0
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1


C'est rassurant ... car pas loin des valeurs que j'ai pifomètré.

NB :Je suis surpris également des valeurs d'accélération angulaire que je relève sur le net. J'ai essayé et adopté pour le moment une accélération de 7200°/s 2 et c'est plutot doux comme mouvement. En comparaison, les 600 mm/s 2 sur les linéaires sont plus agressifs.

Carlos
 
C

carlos78

Compagnon
Hier j'ai résolu mon problème de configuration XYZB : la config semble être opérationnelle grâce au forum (voir le post dédié).

j'ai maintenant 3 configurations LinuxCNC pour ma machine :

1) Configuration XYZ = configuration de base (celle qui sera la plus utilisée)
2) Configuration XYZA = implantation du 4ème axe en longitudinal sur la table --> couplage en rotation des axes X et A
3) Configuration XYZB = implantation du 4ème axe en transversal sur la table --> couplage en rotation des axes Y et B (ma préférée)

Video d'essai de XYZA : Video d'essai de XYZB Sur les 2 vidéos, on voit bien directement à l'écran le couplage rotation/translation de l'outil suivant les axes programmés.

Carlos
 
Dernière édition par un modérateur:
B

Barbidou

Compagnon
Bonsoir Carlos,

C'est sympa mais il n'y a pas moyen qu'à l'écran ce soit la pièce qui tourne et non l'outil? Ça revient au même mais là c'est un peu perturbant et c'est assez peu intuitif.

En tout cas, ça promet des belles pièces tout ça!
 
C

carlos78

Compagnon
Salut Barbidou,

Ta remarque m'a amené à regarder de plus près comment LinuxCNC gère l'affichage des déplacements et en particulier les mouvements du cone.
Jusqu'à présent, j'ai toujours vu un cone vertical qui se déplaçait suivant les directions XYZ avec sa pointe en appui sur les trajectoires données par le gcode. Par contre, je n'ai jamais vu une video montrant un affichage inverse c'est à dire avec les trajectoires (la pièce) qui se déplaçent avec un cone fixe (la fraise).
Avec le 4ème axe, je découvre que ce cone s'anime angulairement en prenant une orientation donnée dans mon cas par A ou B. C'est plutot une bonne surprise.
A partir de là, j'en déduis que l'affichage du cone est réglé de sorte que sa pointe se positionne aux cordonnées XYZ et que son axe prenne les orientations ABC.
J'imagine que ce choix doit permettre de faire abstraction de l'architecture réelle de la machine. Que deviendrait par exemple l'affichage si mon axe rotatif servait à faire pivoter angulairement la tête de fraisage suivant l'axe X ou Y. Ce serait probablement le même.
Pour que la pièce tourne et non pas l'outil il faudrait effectivement avoir un affichage inverse plus logique pour des opérations de tournage.

Carlos
 
C

carlos78

Compagnon
Essai de chariotage : C'est un 1er essai pour voir le comportement du 4ème axe. Les paramètres ne sont pas optimisés
La fraise utilisée est une fraise cylindrique de défonceuse D8 sans coupe au centre.

Le gcode d'une passe d'ébauche :
G1 Z-12 F500 (descente en Z de Z=-11 à Z=-12 à 500mm/mn)
G1 X0 F1500 (retour de la broche dans l'axe de X=-40 à X=0 à 1500mm/mn)
G1 B360 F3600 (rotation de B de 0° à 360° à la vitesse angulaire de 3600 °/mn)
G92 B0 (remise à 0 de B)
G1 Y0 B7200 F150 (déplacement simultané de Y (100 à 0) et de B (0° à 7200°) à la vitesse linéaire de 150 mm/mn)
G92 B0 (remise à 0 de B)
G1 B360 F3600 (rotation de B de 0° à 360° à la vitesse angulaire de 3600 °/mn)
G92 B0 (remise à 0 de B)
G0 X-40 (dégagement latéral de la broche de X=0 à X=-40 à 3600mm/mn)
G0 Y100 (retour au point de départ du chariotage de Y=0 à Y=100 à 3600mm/mn)


G1 Y0 B7200 F150 : on se déplace de 100 mm et on tourne simultanement de 7200° (20 tours).
--> l'avance longitudinale est de 5mm/tour.
--> le déplacement de 100mm à la vitesse de 150mm/mn, se fait en 40 s. 20 tours en 40s donne une vitesse de rotation en B de 30 tr/mn (mon maxi est de 90tr/mn)
--> avec un diamètre de tournage d'environ 60mm, la vitesse de coupe est d'environ 6m/mn
--> la broche tournant à 12000 tr/mn, la prise par tour de broche est de 0.5mm , donc une avance par dent de 0.25mm.

J'aurais pu usiner 2 fois plus vite avec F300 et une broche à 24000 tr/mn pour le même copeau.

Il y a à la fin de la video une passe de finition avec une avance de 0.5 mm/tr pour obtenir une belle surface.

Carlos
 
Dernière édition par un modérateur:
S

sebastian

Compagnon
Salut Carlos,
c'est top ! tu commence à toucher ta bille
Bravo pour ta perspicacité et ta motivation à améliorer sans cesses les possibilités de ta machine
à la vitesse où tu progresses, tu va bientôt pouvoir sortir une statuette en modélisation 3D !
ça ouvre un max de possibilités et perspectives

à suivre
Sebastian
 
E

ellogo67

Compagnon
Bonjour

Effectivement du très bon boulot.
Cela va bien m'aider quand j'attaquerai l'utilisation de mon 4°axe.
 
S

sdf49

Nouveau
attention carlos 78 tu dis utiliser une fraise sans coupe au centre pour travailler sur l axe du diviseur et et la contre pointe il te faudra utiliser une coupe au centre car le bois n est pas coupé mais forcé en rotation sous la fraise mais ta perceverence te feras arriver a ton but
 
E

el patenteu

Compagnon
Il existe dans Aspire une fonction exipre pour dégrossir les bloc carré et les amener rond.
C'est plus rapide car la machinne travail dans le sens longitunal et ce seulement sur les coins.
J'immaginne qu'il existe l'équivalent avec les autres logiciels.
Chapeau bas de passer tout suite en véritable 4 axes!

Fred
 
C

carlos78

Compagnon
Je viens de résoudre mon problème de raccourcis clavier pour jogger sur les axes A et B ICI.
Je ne crois pas. C'est justement parce qu'il n'a y a pas de coupe au centre de la fraise que je dégage en latéral avant de descendre en Z. Avec une fraise à coupe entrale je descendrais directement en place.

Carlos
 
E

el patenteu

Compagnon
C'est seulement l'entrée en matiere qui pose probleme.
 
C

carlos78

Compagnon
Salut,

Un petit essai en se servant de l'axe rotatif comme positionneur : un arbre cannelé La fraise utilisée est une fraise carbure D3 avec une dent.
Avec une fraise taillée à la forme du creux d'une denture ça pourrait devenir un pignon droit. En y rajoutant une rotation, j'aurais un pignon helicoidal ...
Pour obtenir le cone, j'ai utilisé un G1 ayant un déplacement conjugué sur 3 axes (YZB)
NB : Ma femme cherche le manche de son balai.

Carlos
 
Dernière édition par un modérateur:
Y

ybou30

Compagnon
Salut à tous,

Bravo, Nickel! Voilà qui ouvre de bien belles perspectives
Cà donne envie.

Cdlt,
Yanik
 
S

sebastian

Compagnon
Salut Carlos,
c'est top ton fraisage ! tu commence à maitriser le truc
un peu équivoque ton objet ou c'est moi qui ai l'esprit mal tourné (c'est le cas de le dire)
 
B

Barbidou

Compagnon
Un cadeau pour la St Valentin?...

Je vais retrouver Sebastian....
 
C

carlos78

Compagnon
Je continue à tester le 4ème axe :

Cambam ne gère pas à ce jour ce 4ème axe. C'est vraiment dommage car je m'étais habitué à la fainéantise de ne jamais écrire une seule ligne de programme en gcode. La situation a changé.
Pour écrire manuellement du gcode quel editeur "intelligent" peut-on utiliser ?
J'ai trouvé CNC PAD qui est gratuit. Il est mono session et mono fichier ce qui en limite énormément l'utilisation. A part la numérotation automatique des lignes et le coloriage des mots, Il n'a aucun correcteur de syntaxe des commandes. Son module CNC SIMU est payant. BOF !
A défaut d'un vrai éditeur spécialisé dans le gcode, je reste pour le moment avec Notepad++ qui ne connait pas non plus le code ISO, mais qui offre un tas de possibilités d'édition.

Une alternative pour continuer à ne pas écrire de gcode serait de remplacer Cambam : La CAO que j'utilise a son propre module de FAO. Ce serait surement possible d'y arriver, mais ça me parait vraiment trop compliqué. Il y a d'autres logiciels souvent professionnels du même syle, mais ... pour le moment je n'ai trouvé aucun logiciel simple d'utilisation comme cambam.
Ayant la possibilité de tester Visualmill, je vais regarder son mode de fonctionnement sur quelques exercices en 4 axes.

Comme pour faire de la FAO, il faut d'abord créer en CAO 3D une pièce, j'ai dessiné vite fait ce pignon :
Pignon 13 dents au module de 1.75
Par fainéantise en CAO, j'ai récupéré dans un plan d'esquisse le dxf de la denture généré par ... cambam.
Ce pignon en 3D ne sert uniquement que pour les logiciels comme VISUALMILL car pour l'écriture à la main du gcode un croquis à la main côté et le dxf d'une seule dent suffit.
 
C

carlos78

Compagnon
Histoire de voir une simulation de l'usinage du pignon avec Visualmill :Résultat d'un balayage le long de la pièce d'un plan perpendiculaire à l'axeAvec une seule passe d'ébauche et une passe de finition ça fait un gcode de 44000 lignes et des bizarreries d'usinage sur les faces latérales.

Résultat d'un balayage sur 360° d'un plan passant par l'axeToujours avec passe d'ébauche et une passe de finition. Le gcode est plus light, il ne fait que 23000 lignes. La simulation à l'air d'être plus propre.

Dans les 2 cas il faudrait rajouter des passes d'ébauche ce qui augmenterait d'autant le nombre de lignes à chaque passe...
---> Visualmill fait de la segmentation des cercles et effectue des petits déplacements.
---> Visualmill parait assez simple à utiliser : il y a 3 onglets dans la fenêtre VisualMiLL-MOPs avec chacun une série d'icones. La rêgle du jeu est assez simple : il faut balayer les 3 onglets (Setup/Create/Simulate) puis tous leurs icones dans l'ordre de gauche à droite.
 
C

carlos78

Compagnon
Pour usiner mon 1er pignon J'ai finalement préféré l'écriture à la main du gcode. Celui-ci fait à peine 300 lignes en 2 fichiers séparés : un pour l'ébauche, l'autre pour le taillage d'une dent et 2 petites videos : Pour l'ébauche c'est une fraise carbure cylindrique D3.175 à 2 lèvres qui tourne à 24000 tr/mn ----> Vitesse de coupe de 240 m/mn.
Le mandrin tourne à 1.5 tr/s ----> La vitesse de déplacement de la fraise (compte-tenu du diamètre usiné) varie de 80 à 130mm/s (de 4800 à 7900 mm/mn)
l'avance par tour est de 1mm, les passes sont de 1mm, . La prise de copeau est au maxi de 0.325mm par tour de broche ---> 0.16mm par dent max

Pour le taillage des dents c'est une fraise carbure hémisphérique D2 à 2 lèvres qui tourne à 24000 tr/mn ----> Vitesse de coupe de 150 m/mn
Les translations se font à 2400 mm/mn. Les passes sont de 0.5mm en plongée puis on tourne peu à peu le mandrin que que la génératrice de la fraise s'enroule sur le profil de la dent.
Comme je ne maitrise pas encore les sous-programmes (Ocodes), le programme de taillage d'une dent est répété 13 fois dans cet essai d'usinage avec une rotation à chaque fois du mandrin.

NB : le cinéaste n'est pas top

Carlos
 
Dernière édition par un modérateur:
Y

ybou30

Compagnon
Salut à tous,

Un quatrième axe qui ne chôme pas, bravo.
Très bon reportage, fera référence.

Cdlt,
Yanik
 

Sujets similaires

Réponses
2
Affichages
555
Tom_Franche_Comté
N
Réponses
3
Affichages
707
NicolasC1975
N
S
Réponses
4
Affichages
689
greg_elec
V
Réponses
8
Affichages
514
vdiallonort
V