comment ecrire un gcode...

  • Auteur de la discussion v tec
  • Date de début
V

v tec

Compagnon
bonjour a tous, je fais un post a part pour ça, mais comment ecrire un gcode qui se refere a des valeurs prédéfinis


genre :


variable1=1
variable2=10
variable3=4000
g00x5+variable1 y12+variable2 fvariable3
m30

merci
 
D

domi.U&M

Compagnon
bonsoir,


dépend de l'interprêteur de GCODE.

Initialement, à la création du gcode, pas possible.
actuellement, sur un GCODE étendu (ex. CNC linux GCODE): #5=1 associe à la variable 5 la valeur 1. (permet entre autre de faire des boucles paramétrées).

A+
 
D

domi.U&M

Compagnon
"10.5.3.2 Valeur de Paramètre
Un paramètre est le caractère # suivi d‟un nombre réel. La valeur réelle doit être évaluée en un entier entre 1 et 10320. L‟entier est un numéro de paramètre et la valeur du paramètre est n‟importe quel nombre stocké dans le numéro de paramètre.
Le caractère # est prioritaire sur toute autre opération. Par exemple #1+2 signifie le nombre trouvé en ajoutant 2 à la valeur du paramètre 1 et pas la valeur du paramètre 3 (1+2). Bien sûr # [1+2] représente la valeur du paramètre 3. Le caractère # peut être répété. Ainsi ##2 signifie la valeur du paramètre dont l‟index est la valeur (entière) du paramètre 2.
10.5.3.3 Expressions et Opérations Binaires
Une expression est une série de caractères commençant par un crochet gauche [et se terminant par un crochet droit]. Entre les deux crochets on trouve des nombres, des valeurs de paramètres, des opérations mathématiques ou autres expressions. Une expression peut être évaluée pour produire un nombre. Les expressions sur une ligne sont évaluées quand la ligne est lue avant que quoique ce soit ne soit exécuté sur la ligne. Un exemple d‟expression :
[1+acos[0]-[#3**[4.0/2]]]
Les opérations binaires apparaissent seulement dans les expressions. Neuf opérations binaires sont définies. On trouve les quatre opérations mathématiques basiques (addition, soustraction, multiplication et division (+, -, *, /).
Mach3mill"

extrait de la doc mach3mill en français téléchargeable sur le site ARTSOFT. tout est dedans très explicite. je tourne et fraise avec des paramètres en tête de code de cette façon...

A+
 
D

domi.U&M

Compagnon
ps: le mode d'écriture le plus puissant dans mach3 est ##x (paramètre valeur du paramètre x). ; réfléchissez-y bien, en cumulant avec la commande G#x!
 
V

v tec

Compagnon
voici un exemple de mon gcode final, sauf que ca coince dans la partie calcul

(distance capteur IR/ étiquette)
#1=400
(longueur etiquette)
#2=152
(longueur separation étiquette)
#3=3
(distance capteur IR2/bord etiqueteuse)
#4=30
(vitesse d'avance)
#9=14000
(distance tapis/ejection flacon)
#10=800
(calcul)
#5=#3+#4
#6=#1+#2
#7=#6+#2
#8=#7+10

g28.1y#10
g00y#1
g28.1a50f#9
g01x#5a#5 f#9
g01 #7 x#7y#6f#9
g28.1 x#7 a#8
g28.1 a50
g00 y#10
m47
m30
 
V

v tec

Compagnon
c est good, merci

(distance capteur IR/ étiquette)
#1=400
(longueur etiquette)
#2=152
(longueur separation étiquette)
#3=3
(distance capteur IR2/bord etiqueteuse)
#4=30
(vitesse d'avance)
#9=14000
(distance tapis/ejection flacon)
#10=800
(calcul)
#5=[#3+#4]
#6=[#1+#2]
#7=[#6+#2]
#8=[#7+10]
g28.1y#10
g00y#1
g28.1a50f#9
g01x#5a#5 f#9
g01 x#7y#6f#9
g28.1 x#7 a#8
g28.1 a50
g00 y#10
m47
m30
 
D

domi.U&M

Compagnon
réponse croisée: j'allais vous proposer de mieux lire la doc et de travailler avec des [] :lol: :lol: :lol:
 
V

v tec

Compagnon
j ai la doc mach3 fr, mais je suis un peu fatigué en ce moment, je pose les différentes questions tout en bossant sur d autre truc, et quand une reponse arrive, je me remet sur le 1er truc, bref la je suis naze...



en tout cas je suis content, j ai juste a rentrer mes variables, et hop tout se fait tout seul, c est cool
 
D

domi.U&M

Compagnon
#naze n'est pas une variable très intéressante pour le gcode humain. :???: bonne nuit et bon courage pour votre machine à étiqueter :wink:
 
Y

ybou30

Compagnon
Salut à tous,

Intéressant ce topic sur le GCode.
Y at'il des priorité dans l'interprétation des opérations ?; mathématiques en particulier? :roll:
Auquel cas, il y aura lieu, lors d'imbrications, d'utiliser les parenthèses afin d'opérer suivant le bon ordre, les calculs :wink:
Afin de trouver une méthode commune d'interprétation,
- En quel langage est écrit l'interpréteur GCode?
- Le GCode hérite t'il des règles d'interprétation du langage natif?
- Le GCode a t'il sa propre norme, y compris d'interprétation? si oui, y a t'il des softs qui font exception?

Je pense que la réponse sera: çà dépend du logiciel utilisé, mais c'est mieux quand c'est constaté et dit :supz:
Je précise que je n'y connais rien en la matière, mais que je risque fort d'avoir ce besoin, donc, par avance, merci pour vos retours d'expérience. :prayer:

Cdlt,
Yanik
 
D

domi.U&M

Compagnon
houlà Ybou, beaucoup de questions et vaste sujet! tu peux lire sur le net à partir de " RS274D" .
tu trouveras certainement des réponses à tes questions.
Juste pour la route, avant tes recherches: Gcode a démarré comme langage propriétaire avant de se faire "normaliser" via ISO (entre autre). ça, c'est pour la codification et le syntaxe du langage. Maintenant, les interprêteurs sont écrits en ce que tu veux: le gcode est maintenant traité comme une donnée. J'ai écrit un interpreteur GCODE en assembleur zilog Z80. Puis en fortran IV.
Actuellement, pas mal de monde en écrit en shell UNIX ou LINUX.

Oui, il existe des recommandations sur la préséance des opérations. Mais on les suit ou pas.
Oui, le langage est ouvert et on peut inventer et nommer toutes les routines que l'on veut.

Ce langage avait l'avantage à la base de pouvoir fonctionner sans processeur, avec des compteurs et des opérateurs booléens.

Mais non, je ne me suis pas spécialisé dans cette branche et n'ai aucune connaissance pointue ou de terrain sur son implémentation FANUC, MAZAC,... et ses "subtilités".

Cependant, exploitant celui de mach3 (en hobby) je le trouve conforme à mes attendus et à mes développements de jeunesse. :wink:
 
Y

ybou30

Compagnon
Salut à tous,

Merci Domi U&M pour cette réponse à ma(mes) :wink: questions.
Donc, on fait comme d'hab:
Si on veut optimiser l'interprétation, on test les calculs et on en tire les règles dont on a besoin, sur le logiciel que l'on utilise.
Sinon, on blinde "l'écriture". :lol:

Cdlt,
Yanik
 
D

domi.U&M

Compagnon
ybou30 a dit:
Si on veut optimiser l'interprétation, on test les calculs et on en tire les règles dont on a besoin, sur le logiciel que l'on utilise.
Sinon, on blinde "l'écriture". :lol:

Je n'ai pas dit ça, et tu ne l'as pas formulé initialement de la sorte.

Tu ne parlais pas d'optimisation d'interpretation, mais de l'usage des parenthèses pour ordonner (traiter dans un certain ordre) un calcul dans une instruction ou un lot d'instructions GCODE (c'est du moins ce que j'ai compris).

Pour ce qui est optimiser, je ne vois pas bien: le gcode travaille en mode séquentiel et heureusement, sans rien optimiser (sinon il serait capable de prendre, par exemple, un raccourci pour aller d'un point à un autre!).

L'optimisation se passe AVANT la traduction en gcode (parcours d'outil, contournement).

Et pour revenir à l'ordre de calcul:
- initialement le gcode travaillait de gauche à droite (pas de mémorisation possible car, comme j'ai dit initialement, pas de processeur ni de variables mémorisées empilées).
- puis avec l’avènement des unités de calcul à mémoires, du niveau de parenthèse la plus bas vers le niveau le plus haut.

Et on peut maintenant toujours découper son calcul pour le traiter par ordonnancement séquentiel...

Si on code directement en gcode, on a toujours moyen de le découper en petites instructions séquentielles. ça n'a plus d'impact pour tout ce qui est calcul. ça peut toutefois avoir un impact si on découpe en deux instructions un parcours d'outil initialement codé en une seule instruction: hachage de vitesse de déplacement. Mais là, effectivement, les modules d'exécution du gcode peuvent parfois tenter d'optimiser... ... en bien ou en mal.
 
Y

ybou30

Compagnon
Salut à tous,

Domi U&M a dit
Pour ce qui est optimiser, je ne vois pas bien: le gcode travaille en mode séquentiel et heureusement, sans rien optimiser (sinon il serait capable de prendre, par exemple, un raccourci pour aller d'un point à un autre!).

Oooops, léger malentendu :wink:
Je parle d'optimisation intrinsèque du code, pas de ce qu'il est sensé faire :wink:
Il y a sans doute moyen de pré-traiter le code pour l'optimisation, cette fois-ci des séquences, çà me parait possible, mais c'est une toute autre affaire, bien entendu :smt003 , et pas l'objet du fil :oops:
Sinon, merci pour le reste du topo, je mets tout çà dans mon escarcelle, çà me servira sans doute, au moins pour faire joujou en prog sous Prolog :prayer:

Cdlt,
Yanik
 
D

domi.U&M

Compagnon
ça commence à prendre forme!
quand j'avais fait ça pour étiqueter des tubes de prélévements sanguins à la volée, j'avais synchronisé mécaniquement une imprimante à code barres avec un tambour mou qui happait le tube, puis qui faisait tourner le tube pour enrouler l'étiquette autour. plus une cellule pour détecter le collage ensuite (pas question de louper un tube ou de coller en double, parce que ça aurait mélangé des résultats d'analyses...)
mon système était plus rudimentaire, car c'était le moteur de l'imprimante qui était assez puissant pour faire tout le boulot: une demande d'impression étiquette déclenchait l'impression, l'appel du tube, l'enroulement et le controle collage. les tubes étaient rangés sur un chargeur au dessus de l'imprimante, et tombaient sur une grosse éponge en mousse. c'étail il y a 30 ans...
 

Sujets similaires

esloch
Réponses
0
Affichages
257
esloch
esloch
Y
Réponses
2
Affichages
620
Yhssan
Y
J
Réponses
17
Affichages
1 371
Snoopile
S
T
Réponses
2
Affichages
396
pascalp
P
N
Réponses
4
Affichages
884
BRICOLO
B
Inox 18
Réponses
20
Affichages
686
Inox 18
Inox 18
R
Réponses
11
Affichages
1 230
Rico le bricolo
R
MegaHertz
Réponses
5
Affichages
992
MegaHertz
MegaHertz
Haut