Le deal à ne pas rater :
Cartes Pokémon EV6.5 : où trouver le Bundle Lot 6 Boosters Fable ...
Voir le deal
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

Post traitement du Gcode avec Cambam

4 participants

Aller en bas

Post traitement du Gcode avec Cambam Empty Post traitement du Gcode avec Cambam

Message  dh42 Ven 4 Fév 2022 - 21:14

Salut,
Un petit tuto pour expliquer comme créer un post traitement du Gcode pour CamBam.

Tout d'abord, qu'est ce qu'un post traitement ? ...

Lorsque l'on produit un Gcode, que ce soit avec CamBam ou avec tout soft de FAO, le soft utilise ce que l'on appel un post-processeur. Le travail du post-processeur et de formater le Gcode de façon à ce qu'il soit compréhensible par le soft de pilotage utilisé pour piloter la CN.

Tous les softs de pilotage n'utilisent pas exactement la même syntaxe ou les mêmes codes pour les commandes.

Par exemple un mouvement à la vitesse d'usinage jusqu'à la position xy 100,50 peut avoir des syntaxes un peu différentes suivant le soft de pilotage utilisé.

G1 X100 Y50
G01X100Y50
G01 X100.00 Y50.00

Ces trois exemples font la même chose, mais certains soft peuvent ne pas accepter le G1 mais uniquement le G01, ou ne pas accepter les espaces ou ne pas accepter de valeur sans point décimal ... etc

Parfois ce sont les codes qui changent, par exemple la commande de palpage c'est G31 sur Mach3, mais G38 sur LinuxCNc.

C'est le travail du post processeur de formater le Gcode de façon approprié pour qu'il puisse être lu par le logiciel de pilotage utilisé.

Toutefois, il arrive que certaines choses ne soit pas faisables directement avec le post processeur et donc le Gcode sorti ne correspond pas exactement à ce que l'on veut.

Un exemple simple, le post processeur permet de définir le nombre de décimales qui seront utilisées par les valeurs numériques écrites dans le Gcode, mais le réglage agit sur TOUTES les valeurs numériques du Gcode.

Par exemple une sortie à 3 décimales avec une commande de vitesse d'avance (F) et un déplacement en vitesse de travail (G1) donnera le résultat suivant:

F150.000
G1 X12.530 Y10.500

Problème, il y a un soft de pilotage (je ne sais plus lequel) qui ne supporte pas que l'on donne la valeur F avec des décimales, mais bien sur, on a besoin des décimales pour les mouvements, donc comme on ne peut pas faire de réglage de format séparés dans le post processeur pour F et pour les Gx, il faut ensuite éditer le GCode avec un éditeur de texte pour remplacer le F150.00 par un F150.

Le principe du post traitement, c'est de modifier automatiquement le Gcode produit à l'aide d'une routine externe qui fera la même chose que l'édition manuelle, à savoir modifier ce qui doit l'être dans le Gcode pour qu'il soit compatible avec le soft de pilotage ; La routine, qui sera lancé par le post processeur lira donc le Gcode juste après sa production, le traitera et produira un Gcode modifié.

Cette routine est à écrire par l'utilisateur dans un langage de programmation permettant de produire un fichier .exe

Coté post processeur, il faudra renseigner deux propriétés du post processeur qui permettront le lancement automatique de cette routine de post traitement.

Cmd de post traitement - args: devra contenir "{$outfile}" (avec les ") ce sont les arguments à passer à la routine externe, ici le nom du fichier Gcode, qui sera retourné par la macro {$outfile}

Commande de post traitement: devra contenir le chemin d'accès à la routine de traitement (le fichier .exe)

Par exemple sur ce post processeur, la routine de post traitement s'appelle EDM_um.exe


Post traitement du Gcode avec Cambam Pt110

Créer le code de programmation de la routine de traitement.

Dans le cas présent cette routine sera programmée en Visual Basic 2010 Express (on peut aussi utiliser du C# ou n'importe quel langage capable de produire un fichier .exe)

Dans Visual studio, créez un nouveau projet de type "application console", puis utiliser le menu Fichier/enregistrer tout, ici j'ai donné le nom de squelette à mon projet.

Post traitement du Gcode avec Cambam Sans_195

Post traitement du Gcode avec Cambam Pt010

Voici un programme très simple qui remplace les les textes "G1Z" par "Z" dans les lignes de Gcode

C'est la ligne: line_out = Replace(line, "G1Z", "Z") qui fait le remplacement ; tout le reste sert à ouvrir le Gcode source, à le scanner ligne par ligne, et à créer le fichier de sortie modifié et est donc utilisable comme squelette pour n'importe quel traitement

(code copiable)
Code:
Imports System.IO
Module Module1
    'squelette pour post traitement
    Sub Main(ByVal args() As String)
        Dim line, line_out As String 'des variables texte
        Dim fname, outname As String

        fname = args(0) 'lis les arguments passés à la routine par le PP, soit le nom du fichier GCode à traiter

        If fname <> "" Then 'quitte la routine si pas de nom de fichier passé en argument
            outname = Left(fname, Len(fname) - 3)   'outname contiendra le nom complet du fichier sans le '.nc'

            Try
                'ouverture du fichier source en lecture pour lecture ligne par ligne
                Using sr As StreamReader = New StreamReader(fname)

                    'création d'un fichier de sortie en écriture pour produire un fichier temporaire
                    'avec le même nom que le fichier d'entrée, mais avec une extension .tmp
                    FileOpen(1, outname & ".tmp", OpenMode.Output)

                    Do 'boucle de lecture ligne par ligne
                        line = sr.ReadLine()

                        ' traiter les lignes, ici on remplace simplement les textes "G1Z" par "Z"
                        ' line_out = Replace(line, "G1Z", "Z") 'line_out contient le résultat du remplacement

                        'ecrire la ligne (modifié ou non) dans le fichier temporaire
                        PrintLine(1, line_out)

                    Loop Until line Is Nothing 'on boucle jusqu'à la fin du fichier

                    sr.Close() 'fermer le fichier d'entrée (.nc)
                    FileClose(1) 'fermer le fichier de sortie (.tmp)

                    FileSystem.Kill(fname)  'effacer ancien fichier .nc
                    FileSystem.Rename(outname & ".tmp", outname & ".nc")   'renommer le fichier temporaire en .nc

                End Using
            Catch E As Exception
                ' gestion erreurs
                MsgBox("Erreur" & E.Message)
            End Try
        End If
    End Sub
End Module

Je met également le code sous forme d'image afin de le voir dans son ensemble et de pouvoir distinguer les commentaires (en vert) plus facilement.

Post traitement du Gcode avec Cambam Pt510

Pour compiler le code, utilisez le menu Générer ..... pour produire le fichier .exe

Post traitement du Gcode avec Cambam Pt310

Le fichier résultant se trouvera (en principe) dans le dossier bin de votre projet Visual studio.

Post traitement du Gcode avec Cambam Pt410

Il ne restera plus qu'à déplacer ou copier ce fichier .exe dans un dossier de votre choix et de mettre son chemin d'accès dans la variable Commande de post traitement du post processeur qui devra l'utiliser.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25208
Points : 37924
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dan25 Dim 6 Fév 2022 - 18:15

Interessant ce sujet.

Mais peut on remonter au dessin original 3d qui à servi à créer le gcode ?
dan25
dan25
je prends du galon
je prends du galon

Messages : 57
Points : 59
Date d'inscription : 25/10/2016
Age : 66
Localisation : Besançon

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dh42 Dim 6 Fév 2022 - 20:08

Salut,

Ta question n'a pas grand chose à voir avec le post traitement, mais la réponse est ... oui et non LOL

Vu qu'un Gcode représente des parcours d'outil, on peut récréer ces parcours depuis le Gcode, c'est ce que fait n'importe quel visualiseur de Gcode, y compris CamBam quand tu utilise une Opération "Importer Gcode", mais les parcours d'outil d'un Gcode d'usinage 3D ne représentent pas exactement une forme 3D mais tiennent compte de la forme de la fraise, ils sont donc décalés par rapport à la forme 3D d'origine, et ce décalage dépend de la forme de la fraise et de l'angle de contact fraise/objet.

Le parcours représentent le déplacement du bout de la fraise donc ils ne suivent pas exactement la forme 3D de départ.

Post traitement du Gcode avec Cambam Centre_fraise

Il existe un plugin qui permet de recréer une surface 3D depuis un Gcode de type balayage.

Ça se fait en plusieurs étapes:

1) ouvrir le Gcode représentant un balayage 3D dans Cambam > on obtient des parcours d'outil

2) Convertir ces parcours d'outil en géométries afin d'obtenir des polylignes correspondants exactement à ces parcours.

3) utiliser le plugin Nuage de points vers STL et sa fonction Pre-Processeur afin de convertir cette série de polyligne en un nuage de points

4) toujours avec le même plugin, utiliser le nuage de points que l'on vient de créer pour en faire un objet surface 3D

Le résultat sera d'autant plus proche de la réalité que l'outil qui à été utilisé pour produire le Gcode sera de petit Ø, car ça induira moins de défaut du à la compensation de la forme d'outil.

Voir la 2ieme vidéo

http://www.atelier-des-fougeres.fr/Cambam/Aide/Plugins/DigitizerFR.html

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25208
Points : 37924
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dan25 Dim 6 Fév 2022 - 20:13

ok, merci
dan25
dan25
je prends du galon
je prends du galon

Messages : 57
Points : 59
Date d'inscription : 25/10/2016
Age : 66
Localisation : Besançon

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dan25 Dim 6 Fév 2022 - 20:18

C'était pour savoir si ça existait. Dans mon cas c'est pour de l'impression 3D. Donc l'outil, la buse en l'occurence, suis la forme de la piece rigoureusement.
dan25
dan25
je prends du galon
je prends du galon

Messages : 57
Points : 59
Date d'inscription : 25/10/2016
Age : 66
Localisation : Besançon

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dh42 Dim 6 Fév 2022 - 20:24

Oui, mais en impression 3D, ce n'est pas du balayage mais un mode ligne de niveau, pas sur que tu puisse en tirer quelque chose avec ce plugin.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25208
Points : 37924
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dh42 Dim 6 Fév 2022 - 20:44

je viens d'essayer, même en mode "vase" (donc aucun remplissage ni d'épaisseur de parois), ça ne fonctionne pas, le résultat ne ressemble à rien ..

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25208
Points : 37924
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  jeanalvitre Dim 6 Fév 2022 - 21:21

Bonsoir,

Merci David pour ce Tuto très intéressant.
jeanalvitre
jeanalvitre
posteur Régulier
posteur Régulier

Messages : 157
Points : 234
Date d'inscription : 27/11/2011
Age : 72
Localisation : Dep:19

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  ducran lapoigne Dim 6 Fév 2022 - 22:47

Super cette fonctionnalité, elle pourrait par exemple servir a supprimer des lignes inutiles ?

(parfois cambam en génère )
ducran lapoigne
ducran lapoigne
complétement accro
complétement accro

Messages : 642
Points : 1277
Date d'inscription : 04/02/2012
Age : 74
Localisation : Athus Belgique du sud

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dh42 Lun 7 Fév 2022 - 0:42

Re

Super cette fonctionnalité, elle pourrait par exemple servir a supprimer des lignes inutiles ?

Oui, il n'y a quasiment pas de limite à ce que l'on peut faire, si ce n'est les capacités du programmeur bien sur Very Happy

Le mieux c'est de faire le mai avec le post pro et de ne réserver le post traitement que pour ce qui est impossible à faire avec le post pro.

Sur mon PP actuel, j'ai un post traitement qui élimine les doublons de Sxxx (vitesse de broche) car lors du passage d'une opération d'usinage à une autre, si CamBam ne remet pas un M3 (marche broche) à chaque nouvelle opération qui utilise le même outil (et donc que la broche ne s'est pas arrêtée), il remet par contre systématiquement la commande de vitesse, même s'il n'y a pas de changement de vitesse d'une op à l'autre, c'est problématique parfois car dès qu'il rencontre un Sxxx, même si la vitesse est la même que précédemment, Mach3 fait une pause de la durée donnée pour un démarrage broche avant de continuer l'usinage, c'est une perte de temps non négligeable quand tu usine des centaines de pièce, et en plus cette pause peut se produire alors que l'outil touche encore la matière ce qui n'est pas top, ni pour la fraise ni pour l'état de surface.

Ça peut aussi permettre d'ajouter des fonctionnalités non gérées, par exemple le GRBL ne comprends pas les G83 et G73, donc impossible de faire du perçage avec débourrage ou avec brise copeau, mais avec un post traitement, une routine peut transformer un G83 présent dans le Gcode en une série de G1 pour la plongé et de G0 pour la remonté. D'ailleurs sur Mach3, si le G83 est codé en dur dans le soft pour la fraisage, il est sous forme de programme Basic Script pour le tournage. (C:\Mach3\macros\Mach3Turn\M1083.m1s) .. bon il a un bug, que j'ai corrigé il y a quelque temps

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25208
Points : 37924
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  dan25 Lun 7 Fév 2022 - 18:42

dh42 a écrit:je viens d'essayer, même en mode "vase" (donc aucun remplissage ni d'épaisseur de parois), ça ne fonctionne pas, le résultat ne ressemble à rien ..

++
David

Merci pour ce retour
daniel
dan25
dan25
je prends du galon
je prends du galon

Messages : 57
Points : 59
Date d'inscription : 25/10/2016
Age : 66
Localisation : Besançon

Revenir en haut Aller en bas

Post traitement du Gcode avec Cambam Empty Re: Post traitement du Gcode avec Cambam

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum