Appeler un sous programme dans Mach3
4 participants
Page 1 sur 1
Appeler un sous programme dans Mach3
Bonjour à tous
Voila se que j'ai trouvé sur un autre forum concernant l'appel de sous programme dans Mach3
exemple appelle de fichier
T1 M6
S2000 M3
G54
M98(-C:\Mach3\Addons\clonexy\test.TAP)
M30
test.tap doit se terminer par M99
et pas par M30
Voila ce que moi j'ai testé
Prog Principale :
- Code:
G21 G90 G91.1 G40 G80 G54
G17
M98 (-C:\Programme\prog1.nc)
G55
M98 (-C:\Programme\prog1.nc)
M30
Sous programme :
- Code:
G00 X0 Y0
G1 X10 Y0 F500
G1 Y-10
G1 X0 Y0
M99
Ce qui m’intéresse c'est de pouvoir faire plusieurs fois le même usinage avec des origines différentes (plusieurs pièces ou plusieurs profondeurs )
Résultat :
Mach3 prend bien le sous programme au premier coups, mais ne revient pas sur le programme principale pour exécuter le deuxième
Pourtant si j'ai bien compris c'est le M99 qui ordonne de quitter le sous programme
@++ Eric
_________________
Cordialement .::Zarkann::. .::Administrateur et Fondateur MB::.
Re: Appeler un sous programme dans Mach3
tu as essayé en incrémentant les lignes? peut-être que Mach "oublie" ou il en était sinon...
Totem- complétement accro
- Messages : 4033
Points : 10896
Date d'inscription : 23/12/2011
Age : 29
Localisation : 67 alsace
Re: Appeler un sous programme dans Mach3
Re
Voici la solution qui fonctionne
P01.tap (prog principale)
P02.tap (sous programme)
D'après le lien qu'a donné David dans l'autre sujet il faut faire un retour a la ligne après le M99
@++ Eric
Voici la solution qui fonctionne
P01.tap (prog principale)
- Code:
G55
M98 (-D:\Programme cnc\Mach3\P02.TAP)
G56
M98 (-D:\Programme cnc\Mach3\P02.TAP)
M30
P02.tap (sous programme)
- Code:
(SOUS°PROGRAMME)
G21 G90 G91.1 G64 G40
G17
M3 S1000
G0 Z20
G1 Z0 F300
G0 X0 Y0
G1 X10 Y0 F800
G1 Y-10
G1 X0 Y0
G0 Z20
M99
D'après le lien qu'a donné David dans l'autre sujet il faut faire un retour a la ligne après le M99
@++ Eric
_________________
Cordialement .::Zarkann::. .::Administrateur et Fondateur MB::.
Re: Appeler un sous programme dans Mach3
Re
David si tu passe par là j'ai vu que tu as commencé a toucher aux variables #
J'ai vu qu'on pouvait leur faire faire des calculs ex: #104=[#104 - #103]
Question1:
Connais tu la syntaxe pour leur faire faire des boucles ou des saut de blocs conditionnel
Genre " if #102 = ou > ou < 2 N2000
En langage Num on dirait par exemple :
N10 G79 L102 > 2 N30
N20 G79 N40
N30 G1 X0 Y0
N40 M02
Traduction
N10 G79 L102 > 2 N30 (saut de bloc conditionnel (fonction si)) si la variable L102 est > à 2 il faut lire la N30
N20 G79 N40 (saut de bloc non conditionnel, cette ligne sera lu si la variable L102 est plus petite que 2 et mènera tout droit à la fin de programme )
N30 ( Bloc de travail )
N40 M02 (fin de programme)
@++ Eric
David si tu passe par là j'ai vu que tu as commencé a toucher aux variables #
J'ai vu qu'on pouvait leur faire faire des calculs ex: #104=[#104 - #103]
Question1:
Connais tu la syntaxe pour leur faire faire des boucles ou des saut de blocs conditionnel
Genre " if #102 = ou > ou < 2 N2000
En langage Num on dirait par exemple :
N10 G79 L102 > 2 N30
N20 G79 N40
N30 G1 X0 Y0
N40 M02
Traduction
N10 G79 L102 > 2 N30 (saut de bloc conditionnel (fonction si)) si la variable L102 est > à 2 il faut lire la N30
N20 G79 N40 (saut de bloc non conditionnel, cette ligne sera lu si la variable L102 est plus petite que 2 et mènera tout droit à la fin de programme )
N30 ( Bloc de travail )
N40 M02 (fin de programme)
@++ Eric
_________________
Cordialement .::Zarkann::. .::Administrateur et Fondateur MB::.
Re: Appeler un sous programme dans Mach3
Bonsoir Eric,
Non, désolé je n'en sais pas plus ; je bidouille très rarement le Gcode.
++
David
Non, désolé je n'en sais pas plus ; je bidouille très rarement le Gcode.
++
David
_________________
Traduction Française de CamBam et de sa documentation.
Re: Appeler un sous programme dans Mach3
Re,
Alors pour ce qui est des branchement conditionnels dans Mach3, je suis allez voir sur le forum de ArtSoft ; la réponse est: "ce n'est pas possible, mais ce n'est pas impossible"
Explication: Il n'y a pas d'instruction If/Then/Else dans le Gcode compris par Mach3, mais il est possible d'appeler une macro qui fera le même travail.
Cette macro se trouve donc dans un fichier séparé et est en fait du code en Visual Basic.
Voici les explications que j'ai trouvées avec quelques commentaires perso pour expliquer le fonctionnement de la bidouille
Le Gcode:
#500 = 5 (définition d'une variable n° 500 et affectation d'une valeur)
O20 (routine n°20)
G code routine 1 ici
#500 = #500-1 (décrémentation de la variable 500)
M500 (appel de la routine en VB)
M98 P#502 (502 contient la réponse de la routine en VB ; c.a.d le n° de routine à utiliser 20 ou 30)
O30 (routine n°30)
G code routine 2
M500.m1s file goes in macros/your profile and contains (le fichier en VB doit avoir ce nom "M500.m1s", il doit se trouver dans le dossier de profil de la machine utilisée)
Le fichier en VB: ("M500.m1s")
Sub main ()
a = GetVar (500) ' lire la valeur de la variable 500 du Gcode et l'affecter à "a"
If a > 0 Then GoTo set20
SetVar(502,30) 'affecter la valeur 30 à la variable 502 du Gcode si "a" est <= à 0
GoTo set30 'sauter à set30:
set20:
SetVar(502,20) 'affecter la valeur 20 à la variable 502 du Gcode si "a" est > à 0
set30:
End If
End Sub
bon décodage
++
David
Alors pour ce qui est des branchement conditionnels dans Mach3, je suis allez voir sur le forum de ArtSoft ; la réponse est: "ce n'est pas possible, mais ce n'est pas impossible"
Explication: Il n'y a pas d'instruction If/Then/Else dans le Gcode compris par Mach3, mais il est possible d'appeler une macro qui fera le même travail.
Cette macro se trouve donc dans un fichier séparé et est en fait du code en Visual Basic.
Voici les explications que j'ai trouvées avec quelques commentaires perso pour expliquer le fonctionnement de la bidouille
Le Gcode:
#500 = 5 (définition d'une variable n° 500 et affectation d'une valeur)
O20 (routine n°20)
G code routine 1 ici
#500 = #500-1 (décrémentation de la variable 500)
M500 (appel de la routine en VB)
M98 P#502 (502 contient la réponse de la routine en VB ; c.a.d le n° de routine à utiliser 20 ou 30)
O30 (routine n°30)
G code routine 2
M500.m1s file goes in macros/your profile and contains (le fichier en VB doit avoir ce nom "M500.m1s", il doit se trouver dans le dossier de profil de la machine utilisée)
Le fichier en VB: ("M500.m1s")
Sub main ()
a = GetVar (500) ' lire la valeur de la variable 500 du Gcode et l'affecter à "a"
If a > 0 Then GoTo set20
SetVar(502,30) 'affecter la valeur 30 à la variable 502 du Gcode si "a" est <= à 0
GoTo set30 'sauter à set30:
set20:
SetVar(502,20) 'affecter la valeur 20 à la variable 502 du Gcode si "a" est > à 0
set30:
End If
End Sub
bon décodage
++
David
_________________
Traduction Française de CamBam et de sa documentation.
Re: Appeler un sous programme dans Mach3
Bonsoir David
Atchoummmm ! il y a une épidémie de grippe en ce moments
Bon il faut se coller au VB si je comprend bien, c'est quand même plus pratique sous NUM ou Siemens
Bon a la deuxième lecture j'ai a peut près compris le principe mais c'est pas demain que je vais l'utiliser
Merci David
@++ Eric
Atchoummmm ! il y a une épidémie de grippe en ce moments
Bon il faut se coller au VB si je comprend bien, c'est quand même plus pratique sous NUM ou Siemens
Bon a la deuxième lecture j'ai a peut près compris le principe mais c'est pas demain que je vais l'utiliser
Merci David
@++ Eric
_________________
Cordialement .::Zarkann::. .::Administrateur et Fondateur MB::.
Appel de sous programme
Salut les metabricoleurs;
Une petite suggestion pour vos appels de sous programme :
En fait, il suffit de mettre le sous programme en dessous du M30, de lui donner un numéro et un M99 à la fin.
Comme un exemple est plus parlant que du bla-bla, le code (avec une variable ) :
Une petite suggestion pour vos appels de sous programme :
En fait, il suffit de mettre le sous programme en dessous du M30, de lui donner un numéro et un M99 à la fin.
Comme un exemple est plus parlant que du bla-bla, le code (avec une variable ) :
- Code:
O0001
#100=0
G0X0Y0Z2
G1Z0F2000
N100
M98P2L15
G0Z50
M30
O0002
#100=[#100+1]
G1Y#100
X50Z-10
#100=[#100+1]
Y#100
X0Z0
M99
Re: Appeler un sous programme dans Mach3
Bonjour
et Bienvenue sur Métabricoleur
Oui c'est pas idiot de tout mettre dans le même fichier, merci pour le conseil
PS: Entant donnée que c'est ton premier poste sur MB, je te suggère de faire une petite présentation dans ce sous-forum
et Bienvenue sur Métabricoleur
Oui c'est pas idiot de tout mettre dans le même fichier, merci pour le conseil
PS: Entant donnée que c'est ton premier poste sur MB, je te suggère de faire une petite présentation dans ce sous-forum
_________________
Cordialement .::Zarkann::. .::Administrateur et Fondateur MB::.
Sujets similaires
» Pas de démarrage programme pièce sous mach3
» faire un petit programme sous mach3 pour tester les pertes de pas
» AJOUTER UN PROGRAMME DANS UN AUTRE PROGRAMME SUR CAMBAM
» Appeler une Macro stocke dans un wizard
» Arc de rayon nul
» faire un petit programme sous mach3 pour tester les pertes de pas
» AJOUTER UN PROGRAMME DANS UN AUTRE PROGRAMME SUR CAMBAM
» Appeler une Macro stocke dans un wizard
» Arc de rayon nul
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum