Path Personnalisation du postprocesseur

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Path Postprocessor Customization and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎français • ‎italiano • ‎русский
Base ExampleCommandModel.png Tutoriel
Thème
Path Workbench
Niveau
Temps d'exécution estimé
Auteur(s)
chrisb
Version de FreeCAD
Fichier(s) exemple(s)


Introduction

FreeCAD utilise comme représentation interne pour les chemins générés, des G-codes. Ils peuvent décrire des choses telles que: la vitesse et les vitesses d'avance, l'arrêt du moteur, etc ... Mais le plus important ce sont les mouvements décrits. Ces mouvements sont assez simples: ils peuvent être des lignes droites ou des arcs de cercle. Des courbes plus sophistiquées telles que les B splines sont déjà approximées par l'Workbench Path.svg atelier Path de FreeCAD.

Ce que le postprocesseur peut faire pour vous

De nombreuses fraiseuses utilisent également des G-codes pour contrôler le processus de fraisage. Ils peuvent ressembler presque aux codes internes mais il peut y avoir quelques différences:

  • la machine peut avoir une séquence de démarrage spéciale
  • il peut avoir une séquence d'arrêt spéciale
  • les arcs peuvent être définis avec un centre relatif ou absolu
  • il peut nécessiter des numéros de ligne dans un certain format
  • il peut utiliser ce que l'on appelle des cycles fixes pour des sous-processus prédéfinis tels que le forage
  • vous pouvez préférer la sortie de votre G-code en unités métriques ou impériales.
  • il peut être utile d'effectuer un ensemble de mouvements avant d'appeler pour un changement d'outil afin de faciliter l'action pour l'opérateur
  • vous souhaiterez peut-être inclure des commentaires pour plus de lisibilité ou les supprimer pour garder le programme petit
  • vous souhaiterez peut-être inclure un en-tête personnalisé pour identifier ou documenter le programme pour référence future.
  • ...

En outre, il existe d'autres langues pour contrôler une fraiseuse comme le HPGL, le DXF ou d'autres.

Le postprocesseur est un programme qui traduit les codes internes en un fichier complet qui peut être téléchargé sur votre machine.

Préparation pour écrire votre propre postprocesseur

Vous pouvez commencer avec un modèle très simple montrant comment votre machine lit les lignes droites et les arcs. Préparez-le avec n'importe quel programme adapté à votre machine.

Un fichier pour ces chemins commençant à (0,0,0) et allant vers Y serait utile. Assurez-vous que c'est l'outil lui-même qui se déplace le long de ce chemin, c'est-à-dire qu'aucune compensation de rayon d'outil ne doit être appliquée.

Path PostProcessorSketch.png

Le chemin dans FreeCAD ressemblerait à ceci. Veuillez noter la petite flèche bleue, elle indique la direction de départ. Pour un tout premier essai, vous ne pouvez fournir qu'un seul niveau dans le plan XY.

Path PostProcessorModel.png

Vous pouvez ensuite consulter le fichier et le comparer à la sortie des postprocesseurs existants tels que linux_cnc_post.py ou grbl_post.py et essayez de les adapter vous-même ou de les télécharger sur le forum Path https://forum.freecadweb.org/viewforum.php?f=15 pour obtenir de l'aide.

Convention de dénomination

Pour un format de fichier <filename>, le postprocesseur doit obtenir le nom <filename>_post.py

Si vous testez, placez-le dans votre répertoire de macros. S'il fonctionne bien, veuillez envisager de le fournir pour que d'autres en profitent (postez-le sur le forum Path de FreeCAD) afin qu'il puisse être inclus dans la distribution de FreeCAD à l'avenir.

Autres postprocesseurs existants

Pour comparaison, vous pouvez regarder les post-processeurs fournis avec votre installation FreeCAD. Ils se trouvent sous le répertoire Mod dans Path/PathScripts/post. Les postprocesseurs linuxcnc et grbl sont largement utilisés. L'étude de leur code peut fournir des informations utiles.

  • Sur Linux, le chemin est /usr/share/freecad/Mod/Path/PathScripts/post

Programmation de votre propre postprocesseur

Cet article traite de certains éléments internes des postprocesseurs linuxcnc. La même structure est également utilisée dans d'autres postprocesseurs.

En regardant le fichier linux_cnc_post.py, vous verrez la fonction d'exportation (à partir du 0.19.20514, elle se trouve à la ligne 156)

def export(objectslist, filename, argstring):
    # pylint: disable=global-statement
    ...
    gcode = ""
    ...
    ...

Elle collecte étape par étape dans la variable "gcode" les G-codes traités et gère l'exportation globale des objets post-traités (opérations, outils, travaux, etc...). L'exportation gère les éléments de haut niveau comme les commentaires et le liquide de refroidissement mais tous les objets qui ont plusieurs commandes de chemin (changements d'outils et opérations) sont délégués à la fonction d'analyse (à partir du 0.19.20514, elle est à la ligne 288).

def parse(pathobj):
    ...
    out = ""
    lastcommand = None
    ...
    ...

De même que la fonction "export" collecte les codes G dans la variable "out". Dans la variable "command", les commandes telles que vues dans la fonction "inspect G-code" de l'atelier Path sont stockées et peuvent être examinées pour un traitement ultérieur.

for c in pathobj.Path.Commands:

            command = c.Name

Il reconnaît les différents codes G, M, F, S et autres codes G. En se souvenant de la dernière commande de la variable "lastcommand", elle peut supprimer les répétitions ultérieures de commandes modales.

L'analyse et l'exportation consistent simplement à formater des chaînes de caractères et à les concaténer ensemble pour obtenir le résultat final.

Vous verrez que les deux fonctions appellent également la fonction "linenumber()". Si l'utilisateur veut des numéros de ligne, la fonction linenumber renvoie la chaîne à coller à l'endroit approprié, sinon elle renvoie une chaîne vide pour que rien ne soit ajouté.

En relation