Modification du post processor GRBL fourni avec Autodesk Fusion 360

Chaque machine à commande numérique (CNC pour Computer Numerical Control) interprète différemment le G-Code. Il y a une norme (la ISO 6983), mais la plupart des fabricants de machine s'en écarte un peu pour différentes raisons.

Pour assurer la compatibilité avec les différentes machines existantes, Autodesk Fusion 360 génère un fichier intermédiaire portant l'extension .cnc qui contient du code neutre. Ce code est ensuite retravaillé via un post processor. Le post processor est en fait un fichier portant l'extension .cps et contenant du code Javascript. Ce fichier est exécuté via un programme en ligne de commande nommé post.

Plusieurs post processor sont installés avec Fusion dans le répertoire <Répertoire d'installation de Fusion>\Applications\CAM360\Data\Posts. Si votre machine n'est pas listée, vous devrez écrire votre propre post processor.

Dans mon cas, l'OpenBuilds MiniMill utilise le firmware GRBL donc je peux utiliser le post processor du même nom.

Mais j'ai un petit problème avec ce post processor, il écrit une instruction M6 (Appel d'outil) qui déclenche une alerte dans GRBL 1.1. Je peux évidemment supprimer cette instruction dans le fichier .nc mais ce serait mieux si le post-processor n'écrivait pas cette instruction.

J'ai donc créé une copie du fichier Grbl.cps.

Quand on ouvre le fichier dans un éditeur de texte, on voit qu'il y a plusieurs fonctions de rappel dont le nom commence par on: onMachine(), onOpen(), onSection().

L'instruction T1 M6 qui pose problème est générée dans la fonction de rappel onSection(). Les lignes qui nous intéressent sont les suivantes :

writeBlock("T" + toolFormat.format(tool.number), mFormat.format(6));

On voit que writeBlock()est appelée avec deux arguments, c'est cette ligne qui génère la ligne T1 M6. On peut garder la sélection de l'outil (T1) qui ne pose pas de problème à GRBL. Mais il faut supprimer le M6. Donc on remplace la ligne par :

writeBlock("T" + toolFormat.format(tool.number));

Et voilà, problème réglé.

Gardez à l'esprit que toute erreur dans ce fichier peut générer du G-Code erroné qui peut crasher la machine, donc soyez vigilant.

Si vous avez besoin de modifier ou de créer votre post-processor, vous pouvez consulter la documentation qui se trouve ici : https://cam.autodesk.com/posts/reference/

Commentaires

Si je peux me permettre, c'est un peu idiot! GRBL 1.1 n'a strictement aucun problème avec la commande T1 M6 (ou T2, ou T3 M6)! C'est le logiciel que vous utilisez pour dialoguer avec GRBL qui en a un. Expérimentez donc avec bCNC, et vous verrez que non seulement aucune alerte n'est générée (si on choisi la bonne politique pour le changement d'outils), et qu'en plus vous pourrez changer d'outils (toujours manuellement) pour une même pièce... T1 tout seul ne sert strictement à rien, puisque M6 est la commande de changement d'outil, donc autant virer ça aussi, tant qu'on y est.... Cependant, il y a une modification bien plus intelligente que de virer ce qui géne et qu'on ne comprend pas le mécanisme des post-processeurs de Fusion 360 inclus un certain nombre de variables, que l'utilisateur peut basculer on/off à la demande, dans la boite de dialogue du post processeur. Regardez dans votre post-processeur GRBL, au début : // User-defined properties et //user-defined property definitions. On y trouve par exemple une propriété "useG28", pour l'utilisation où non de G28. Plus loin on trouve var _useG28 = properties.useG28 puis plusieurs utilisations de if (_useG28) { something } Je suggérerais donc de créer une nouvelle variable utilisateur (property), du style useM6, et de générer où non cette ligne en fonction de l'état de la variable. Comme ça, le jour où vous changerez de logiciel pour un logiciel mieux fait que celui que vous utilisez actuellement, il n'y aura qu'à modifier l'état de la variable, plutôt que d'aller réécrire la ligne supprimée....

Bonjour et merci pour votre commentaire. Effectivement, j'aurai dû supprimer la ligne complète, ce n'est pas utile de conserver le T1. Et vous avez peut être raison, l'alerte peut être générée par le logiciel que j'utilise pour envoyer le code à la machine (c'est OpenBuilds CONTROL : https://software.openbuilds.com/) et non pas par GRBL. Il faudra que je regarde ça à l'occasion.

Bonjour, Je travaille actuellement sur Gianna 360 cnc et un message d’alarme apparaît. « Surcharge inverter ou ventilateur moteur pompe » auriez vous une idée de ce que ça pourrait être ? Merci d’avance pour vos réponses.

heuh.... NON, et NON! je n'ai pas "peut-être" raison. J'ai raison. Je ne sais pas si vous travaillez, ou êtes affilié, avec WIIP, mais cet article n'a rien à afire sur une page de "spécialistes du développement Autodesk" L'article est erroné, et induit des gens en erreur. La désinvolture du "faudra que je regardes ça à l'occasion" est assez lamentable et complètement non professionnelle.; Retirez cet article. Si vous voulez écrire sur la modification/création d'un post-processeur pour Fusion, faites-le, mais pas en répandant une rumeur infondée.

M. Grosperrin, je pense que vous prenez un peu trop tout ça à cœur. J'ai hacké vite fait le post-processor de Fusion 360 pour modifier/supprimer une instruction qui posait problème à mon logiciel de contrôle et/ou à GRBL, j'ai écrit un article vite fait pour partager mon expérience et ça s'arrête là. Je n'ai jamais prétendu être un expert des post-processor livrés avec Fusion 360 et ça fait au moins 1 an que je n'ai pas touché à cette machine.

Est-ce que ma démarche doit être qualifié d'idiote ou ma compétence professionnelle remise en cause pour ça ? Honnêtement je ne pense pas.

La démarche n'est pas idiote, elle est normale pour quelqu'un n'ayant pas les connaissances et compétences suffisantes pour vraiment comprendre le fonctionnement entre le post-processeur, le soft intermédiaire qui envoie le code à GRBL, et GRBL lui-même. Et je comprends parfaitement que vous ayiez pu faire ça "vite fait".. Ce n'est pas la démarche d'il y a deux ans, conduisant à l'écriture de l'article, qui me fait mettre en doute votre compétence professionnelle. Ce qui me fait réagir aujourd'hui, c'est que cet article est toujours en ligne, sans corrections, près d'une année après mon commentaire précédent où je vous faisait part de votre erreur. Vous n'avez rien vérifié, rien fait en fait, depuis un an, comme vous le dites. Et c'est ça, le problème. Pourquoi? parce que cette page est toujours en ligne, donc trouvée par des débutants qui cherchent des informations sur ce sujet, et ces débutants sont induits en erreur par cet article erroné. C'est pour cela qu'il me semble parfaitement raisonnable de demander, au professionnel que vous êtes, soit de corriger cet article, soit de le supprimer.

OK et bien vous me le demandez et je refuse. Je ne viens pas sur votre site pour discuter vos choix éditoriaux ou pour relever vos fautes d'orthographe.

dommage de voir des discutions sans intérêts entre deux personnes ,je pense que pas mal de lecteurs sont partis de ce blogue a cause de cas. je suis une de ces personnes, il vaut mieux réfléchir ensemble avant de faire la guerre.

Ajouter un commentaire