PB fichier cambam vers MFI

  • Auteur de la discussion JCHELI
  • Date de début
J

JCHELI

Ouvrier
Bonjour,

Je cherche un une solution avec cambam pour que le fichier soit compatible avec mfi.
Fichier cambam avec modif du pp

( Made using CamBam - http://www.cambam.info )
( Sans titre 4/29/2020 9:11:40 AM )
( T0 : 0002 )
00190 64 40
00200 Z0000
( T0 : 0002 )
003T0 M6
( Contour1 )
00464 17
00500 X0100 Y0299 Z0000
00601 X1300 Y0299 Z0000 F0050
00703 X1301 Y0300 Z0000 F0050 I0000 J0001
00801 X1301 Y0400 Z0000 F0050
00903 X1300 Y0401 Z0000 F0050 I-0001 J0000
01001 X0100 Y0401 Z0000 F0050
01103 X0099 Y0400 Z0000 F0050 I0000 J-0001
01201 X0099 Y0300 Z0000 F0050
01303 X0100 Y0299 Z0000 F0050 I0001 J0000
014M30

peut-on optenir ce format ?

%
N` G` X ` Y ` Z ` F
00 90
002 00 0000
003m06
004m03
005 00 0100 0299 0000
006 01 1300 0299 0000 050
007 03 1301 0300 0000 050
008 01 1301 0400 0000 050
009 03 1300 0401 0000 050
010 01 0100 0401 0000 050
011 03 0099 0400 0000 050
012 01 0099 0300 0000 050
013 03 0100 0299 0000 050
014 21
015 00 0422 0338 0000
016 03 0450 0313 0000 050
017 03 0600 0400 0000 050
018 03 0450 0487 0000 050
019 03 0422 0338 0000 050
020M30
M
Il faut 4 espace devant chaque ligne disparues dans la Prévisualisation .

Merci d avance pour vos infos et idées cdt jc.
 
D

dh42

Compagnon
Salut,

Je ne sais pas si on peut obtenir ce format directement avec le post processeur, mais il est possible de faire un post-traitement du GCode via une routine externe (un .exe) à faire toi même en programmation(*). L' exe de traitement peut alors être lancé automatiquement par le PP une fois que le GCode à été produit. (voir: Post traitement – Commande de post-traitement, Cmd. de post-traitement - args)


(*) en C, C#, Visual Basic, ... ou tout langage qui permet de créer une application console.

note que si tu remplace les macros {$x} (ou {$_x}) par {$move.x} tu peux obtenir les valeurs des axes sans le symbole "X" au début (bien sûr, il y a aussi {$move.y} et {$move.z}

++
David
 
Dernière édition:
J

JCHELI

Ouvrier
Merci David .

J ai changé les {$x} par des {$move.x} mais il y a des erreurs "nan" ?

00121( Made using CamBam - http://www.cambam.info )
00221 ( Sans titre 4/29/2020 5:24:22 PM )
( T0 : 0000 )
00390 64 40
00400 NaN NaN 0000
( T0 : 0000 )
005T0 M6
00600 NaN NaN 0000
( Contour1 )
00764 17
00800 NaN NaN 0000
00900 0200 0200 NaN
01001 0200 0200 0000 F0000
01101 1300 0200 0000 F0000
01201 1300 1000 0000 F0000
01301 0200 1000 0000 F0000
01401 0200 0200 0000 F0000
01521 00 NaN NaN 0000
016M30

Je cherche de mon coté aussi a+ jc.
 
D

dh42

Compagnon
NaN, ça veux dire "Not A Number" (ce n'est pas un nombre), mais j'ignore pourquoi tu a ce résultat. On dirait que c'est sur des G0, mais difficile d'être sûr. (du pt de vue programmation, lorsque on tombe sur un NaN c'est que la variable qui doit contenir un nombre n'a pas du tout été renseignée ; elle ne contient même pas 0)

je ne comprends pas l'avant dernière ligne (01521) ça correspondrait à N015 G21 .... ?

++
David
 
D

dh42

Compagnon
bon, il semble bien que le $move.xxx ne marche pas correctement avec les G0 ...

++
David
 
J

JCHELI

Ouvrier
Pour info je pense que les n+21 sont due au pp:

00121( Made using CamBam - http://www.cambam.info ) ------- l'entete
00221 ( Sans titre 4/29/2020 5:24:22 PM )
( T0 : 0000 )
00390 64 40
00400 NaN NaN 0000
( T0 : 0000 )
005T0 M6
00600 NaN NaN 0000
( Contour1 )
00764 17
00800 NaN NaN 0000
00900 0200 0200 NaN
01001 0200 0200 0000 F0000
01101 1300 0200 0000 F0000
01201 1300 1000 0000 F0000
01301 0200 1000 0000 F0000
01401 0200 0200 0000 F0000
01521 00 NaN NaN 0000 ------- pied de page

016M30

Je cherche surtout ou et comment mètre un espace entre le n°de ligne et le code g.
merci a+ jc
 
D

dh42

Compagnon
Je cherche surtout ou et comment mètre un espace entre le n°de ligne et le code g.

dans la macro pour G0 par exemple ; tu met simplement un espace devant le 00


Pour les NaN, j'ai trouvé ; il faut initialiser les valeurs de position d'axe au début du programme, sinon elles ne contiennent rien.

dans ta macro En tête, juste avant le {$toolchange.first}, met cette ligne

{$set(x,0)} {$set(y,0)} {$set(z,0)}

++
David
 
J

JCHELI

Ouvrier
Super j ai modifier ,enfin un amie ma dit de mètre un "   " devant les déplacement et ca marche.
{ } {$g0} {$move.x} {$move.y} {$move.z} {$f} {$a} {$b} {$c}
J avance un peut mais je connais pas le code htlm dommage .
a+ jc
 
D

dh42

Compagnon
re

et pour ne pas avoir le F pour les avances, utilise $mop.cutfeedrate à la place de $f

++
David
 
J

JCHELI

Ouvrier
Fausse joie ma solution ne marche pas car l'espace vient d'un espace mit après n° ligne.
David l 'espace n est pas pris en compte
a+ jc
 
D

dh42

Compagnon
Je ne comprends pas trop ce que tu veux faire ...

si tu veux un espace entre le n° de ligne et le G, voir message plus haut

si tu veux tes 4 espaces avant le n° de ligne, il suffit de remplacer le N de la propriété "préfixe" dans numérotation des lignes par 4 espaces.

un exemple de pp en PJ

++
David
 

Fichiers joints

  • Default_noaxisname.zip
    703 bytes · Affichages: 37
J

JCHELI

Ouvrier
Merci par contre le {$set(x,0)} {$set(y,0)} {$set(z,0)} ca marche
Merci david a+.
 
J

JCHELI

Ouvrier
Bonjour a tous,

Merci David pour ton pp mais sauf erreur de ma part le pb de l espace est toujours la.
car il est du au vrai dans param n° ligne et de plus quand c'est un "Gxx" il faut "(espace)xx" et pour un Mxx le meme mais pas d'espace.
"%
" N` G` X ` Y ` Z ` F
" 00 90 @ Absolute Mode "
" 01 90 @ Absolute Mode "
" 02 00 00 00 00 @ Rapid Traverse "
" 03 00 11 17 00 @ Rapid Traverse "
" 04 01 11 17 00 100 @ Linear Interpolation "
" 05 01 28 17 00 100 @ Linear Interpolation "
" 06 01 28 35 00 100 @ Linear Interpolation "
" 07 01 11 35 00 100 @ Linear Interpolation "
" 08 01 11 17 00 100 @ Linear Interpolation "
" 09 00 00 00 00 @ Rapid Traverse "
" 10M05 @ Spindle OFF "
" 16M30 @ End of Program "
" MI "

a+ jc.
 
D

dh42

Compagnon
Salut,
de plus quand c'est un "Gxx" il faut "(espace)xx" et pour un Mxx le meme mais pas d'espace.

Pour l'espace entre le n) et les 00, 01, effectivement, c'est le "Vrai" dans "espace après" qui l'affiche, l'espace que j'ai mis en début de macro n'est pas pris en compte.

il n'est pas possible de choisir un formatage différent pour les Gxx et les Mxx

C'est quoi comme machine pour que le GCode soit aussi exotique ?

++
David
 
J

JCHELI

Ouvrier
salut david .

Ce n"est qu'une emco f1 que je voulais piloter avec MFI dont fichier est :
mfi.PNG

Bon une idée de mètre un caractère "w" par exemple et après de les remplacer par des espaces ?
a+ jc.
 

Fichiers joints

  • jc (2).txt
    335 bytes · Affichages: 36
D

dh42

Compagnon
ça prends pas les décimales ?

c'est quoi les unités utilisées pour XYZ ?

++
David
 
D

dh42

Compagnon
oui, un "w" pour remplacer les espace, et ensuite rechercher/remplacer avec un éditeur de texte.

si c'est uniquement des "w" à remplacer par des " " je pourrais t'écrire un traitement auto, ce n'est pas très compliqué

++
David
 
D

dh42

Compagnon
Et non elle ne prend pas les décimales et les unités aux centièmes .

ah oui, donc ça complique encore les choses car CB ne peut pas sortir des valeurs en 1/100 ieme, ni faire de calcul dans le post pro ; c'est soit des mm soit des pouces et rien d'autre.

++
David
 
J

JCHELI

Ouvrier
Il y a le millième dans CB: x/10
Je pense de plus en plus a un exe mais on peut le lancer du pp et en sortie un autre fichier non ?
Si le pp est le plus prés possible du resultat l exe en sera le moindre.
a+ jc

mfi2.PNG
 
D

dh42

Compagnon
vive le doliprane 1000 .

oui, va falloir te mettre à la programmation (Visual Basic), sinon je ne vois pas comment faire avec le PP, ou alors il faut que tu multiplie tout par 100 sur CB (par exemple avec la fonction échelle) et que tu donne aussi les Ø outils en 1/100ieme pour avoir les bons décalages.

Il y a le millième dans CB: x/10

Oui, mais ça ne sert à rien, CB ne sortira que des mm ou des pouces, les autres unités de la liste ne servent qu'à "faire joli", mais ne convertissent rien.

Je pense de plus en plus a un exe mais on peut le lancer du pp et en sortie un autre fichier non ?

Oui, voir Post traitement – Commande de post-traitement, Cmd. de post-traitement - args

Commande de post-traitement doit contenir le chemin d'accès à l'exe
Commande de post-traitement - arg doit contenir les arguments à passer à l'exe ; au minimum, le nom du GCode à traiter qui peut être passé par la macro: "{$outfile}" (avec les ")

le programme en VB (ou autre) doit se charger de:

- ouvrir le fichier GCode source
- créer un fichier temporaire dans lequel il écrira les modif effectuées
- lire la source ligne par ligne, traiter et écrire la ligne modifiée dans le fichier temporaire
- fermer les 2 fichiers quand terminé
- supprimer le GCode source et renommer le fichier GCode traité avec le même nom que le fichier source.

voila un "squelette" en VB .net d'un traitement ; le traitement des lignes et ici très sommaire, il remplace le "w" par des espaces
à compiler comme application "console" dans Visual Basic .net (Visual studio)


++
David
 
J

JCHELI

Ouvrier
Bon un ami est passe et ma fait un exe 'VBS" aussi je te mes le code aussi qui marche .
Mais il ne gère pas encore le pb de arcs.
trilili l exe et le pp.
Merci a david et a fred mon ami il ma fait en 1/2 h :prayer:et 2 bieres:partyman: cela s arrose non.
a+ et bientot la suite jc.
 

Fichiers joints

  • Trilili.txt
    1.3 KB · Affichages: 34
  • Fanuc.txt
    943 bytes · Affichages: 29
Dernière édition:
D

dh42

Compagnon
c'est quoi exactement le pb des arcs ?

dans le pire des cas, tu peux mettre le post pro en mode ligne uniquement. (sortie des arcs = convertir en ligne) comme ça tu n'a que des G1

++
David
 
J

JCHELI

Ouvrier
bonjour.

Il faudrait en fait que dans l'idéal CB genere deux ligne :
Ex ligne CB :

07 G3 X350.0 Y313.3975 Z0.0 F0.0 I70.7107 J70.7107

EX ligne MFI:
08 03 693 1101- 175 100
09M99I 00J 510K 00

Je ne connais pas assez CB pour savoir ci on peut ou pas .
Dis-mois dans le pp on pourrais inverser

03 T0 M6
03 M06 T01 ou 03 M6 T1

Si non on le fera dans la moulinette de Fred.
a+ jc
 
D

dh42

Compagnon
Salut,

Pour le M6, oui, il suffit d'inverser les arguments dans la macro "changement d'outil"

il y a: T{$tool.index} M6 ; tu remplace par M6 T{$tool.index}

Pour les arcs, je suppose que si on décompose la ligne en 2 lignes dans la macro, ça devrait le faire, par contre, sur ton exemple les IJ ne correspondent pas entre les 2 exemples, c'est peut être le mode d'arc qu'il faut changer ; CB gère 5 modes d'arc, 1 absolu et 4 incrémentaux, à voir si ça peut correspondre à ce qu'attend ton soft. (Mode IJ arcs)

++
David
 
J

JCHELI

Ouvrier
Bonjour.

Faudrait voir les mode de CB mais ou peut les choisir ?
les valeur que je t'avaient données dans ex n étaient que pour le format .
voila les valeurs égales pour faire un cercle.

Ici CB

07 G0 X20.0 Y15.0 Z1.0
08 G1 X20.0 Y15.0 Z0.0 F30.0
09 G3 X12.5 Y19.3301 Z0.0 F50.0 I-5.0 J0.0
10 G3 X12.5 Y10.6699 Z0.0 F50.0 I2.5 J-4.3301
11 G3 X20.0 Y15.0 Z0.0 F50.0 I2.5 J4.3301
12 G0 X20.0 Y15.0 Z3.0

Ici MFI
%
N` G` X ` Y ` Z ` F
00 90 @ Absolute Mode
01 00 150 100 00
02 01 150 100 200 50 @ Linear Interpolation
03 02 150 200 200 50 @ CW Circular Interpolation
04M99I 00J 50K 00 @ Partial Arc Center
05M30 @ End of Program
MI

a+ jc

1588496211971.png
 
D

dh42

Compagnon
Salut,

Ah oui, encore très exotique comme gestion des arcs !!

Faudrait voir les mode de CB mais ou peut les choisir ?

Dans le post pro ; "Mode IJ arcs"

Options - Mode IJ arcs

Cette propriété détermine si les paramètres I et J utilisés pour les déplacements en arc de cercle se réfèrent à des coordonnées relatives ou absolues par rapport aux paramètres X et Y. Si ce paramètre est réglé différemment dans l'interpréteur de commande de votre CN (logiciel de pilotage) le résultat peut se traduire par des arcs de cercles aléatoires.

Par défaut: Dans ce cas ce sont les valeurs du post-processeur qui seront utilisés. Si le post-processeur utilise aussi une valeur "Par défaut", le mode Incrémental (C-P1) sera utilisé

Absolu: I & J sont les coordonnées absolues du centre de l'arc

Incrémental (C-P1): I & J sont les coordonnées du centre de l'arc, relatives au premier point de l'arc. C'est le mode incrémental typique. Dans les versions précédentes , il était simplement appelé Incrémental

Incrémental (P1-C): I & J sont les coordonnées du premier point de l'arc relatives au centre de l'arc.

Incrémental (C-P2): I & J sont les coordonnées du centre de l'arc, relatives au second point de l'arc.

Incrémental (P2-C): I & J sont les coordonnées du second point de l'arc relatives au centre de l'arc.

++
David
 
J

JCHELI

Ouvrier
RE

Je suis perdue avec MFi pour gérer les acrs .
a+ jc
 
Haut