AXIS est une interface utilisateur graphique pour emc2, il offre un aperçu permanent du tracé de la pièce et du cheminement de l'outil. Il est écrit en Python, utilise Tk et OpenGL pour l'affichage de l'interface graphique.
Pour choisir AXIS comme interface graphique d'emc2, éditez le fichier .ini et dans la section [DISPLAY] changez la ligne DISPLAY comme ceci:
DISPLAY = axis
Puis, lancez emc2 et choisissez le fichier ini. La configuration simplifiée sim/axis.ini est déjà configurée pour utiliser AXIS comme interface.
Quand vous démarrez AXIS, une fenêtre telle que celle de la figure [.] s'ouvre.
La fenêtre d'AXIS contient les éléments suivants:
Signification des boutons, de gauche à droite:
L'affichage des coordonnées est situé en haut à gauche de l'écran graphique. Il montre les positions de la machine. A gauche du nom de l'axe, un symbole d'origine () est visible si la prise d'origine de l'axe a été faite. A droite du nom de l'axe, un symbole de limite () est visible si l'axe est sur un de ses capteurs de limite.
Pour interpréter correctement ces valeurs, référez vous à l'indicateur “Position:” de la barre d'état. Si la position est “Absolue”, alors les valeurs affichées sont exprimées en coordonnées machine. Si la position est “Relative”, alors les valeurs affichées sont exprimées en coordonnées relatives à la pièce. Quand les coordonnées affichées sont relatives, une marque d'origine de couleur cyan est visible pour représenter “l'origine machine” (). Si la position est “Commandée”, alors il s'agit de la position à atteindre -- par exemple, les coordonnées passées dans une commande G0. Si la position est “Actuelle”, alors il s'agit de la position à laquelle la machine vient de se déplacer. Ces valeurs peuvent varier pour certaines raisons: erreur de suivi, bande morte, résolution d'encodeur ou taille de pas. Par exemple, si vous demandez un mouvement à X 0.08 à votre fraiseuse, mais un pas du moteur fait 0.03, alors la position “Commandée” sera de 0.08 mais la position “Actuelle” sera de 0.06 (2 pas) ou 0.09 (3 pas).
Quand un fichier est chargé, une vue du chemin d'outil qu'il produira est visible dans la zone graphique. Les mouvements en vitesse rapide (tels ceux produits par une commande G0) sont affichés en lignes pointillées vertes. Les déplacements en vitesse programmée (tels ceux produits par une commande G1) sont affichés en lignes continues blanches. Les arrêts (tels ceux produits par la commande G4) sont représentés par une petite marque “X”.
Les “étendues” du programme sont visibles pour chacun des axes. Aux extrémités de chacune, la plus petite et la plus grande valeur des coordonnées sont indiquées. Au milieu, la différence entre ces valeurs de coordonnées est visible. Sur la figure [.], l'étendue des X du fichier va de -1.95 à 1.88 pouces, un total de 3.83 pouces.
Quand une coordonnée excède une “soft limits” établie dans le fichier .ini, la dimension correspondante est affichée dans une couleur différente. Ici, la limite maximale est dépassée sur l'axe X:
L'emplacement de la pointe de l'outil est indiqué par le “cône d'outil”. Le cône d'outil ne donne pas d'indication sur la forme, la longueur ou le rayon de l'outil.
Quand un outil est chargé, (par exemple dans le MDI, avec la commande T1M6), le cône passe de cônique à cylindrique, il indique alors le diamètre de l'outil lu dans le fichier de la table d'outil.
Quand la machine se déplace, elle laisse une trace appelée le tracé d'outil. La couleur des lignes indique le type de mouvement: Jaune pour les jogs, vert clair pour les mouvements en vitesse rapide, rouge pour les mouvements en vitesse d'avance programmée et magenta pour les mouvements circulaires en vitesse d'avance programmée.
Par un clic gauche sur une portion du chemin d'outil, la ligne sous la souris passe en surbrillance à la fois dans le graphique et dans le texte. Un clic droit dans une zone vide enlève la surbrillance.
En déplaçant la souris avec son bouton gauche appuyé, la vue est glissée sur l'écran.
En déplaçant la souris avec le bouton “Maj” enfoncé, ou en glissant avec la molette de la souris appuyée, la vue est tournée. Si une ligne du tracé est en surbrillance, elle devient le centre de rotation de la vue. Autrement, le centre de rotation est le milieu du fichier dans son ensemble.
En tournant la molette de la souris ou en glissant la souris avec son bouton droit enfoncé ou encore en glissant la souris avec son bouton gauche enfoncé et la touche Ctrl appuyée, le tracé sera zoomé en plus ou en moins.
En cliquant sur une des icônes de vue pré-définie de la barre d'outils, ou en pressant la touche “V”, cette vue est sélectionnée.
Un clic gauche sur une ligne du programme passe la ligne en surbrillance à la fois dans la zone texte et dans la zone graphique.
Quand le programme est lancé, la ligne en cours d'exécution est en surbrillance rouge. Si aucune ligne n'est sélectionnée par l'utilisateur, le texte défile automatiquement pour toujours laisser la ligne courante visible.
Quand la machine est en marche mais qu'aucun programme n'est exécuté, les éléments graphiques de l'onglet “Contrôle manuel” peuvent être utilisés pour actionner le centre d'usinage ou mettre en marche et arrêter les différents organes de la machine.
Quand la machine n'est pas en marche ou quand un programme est en cours d'exécution, le contrôle manuel est indisponible.
Certains des éléments décrits plus bas ne sont pas disponibles sur toutes les machines. Quand AXIS détecte qu'une “pin” particulière n'est pas connectée dans le fichier HAL, l'élément correspondant de l'onglet Contrôle manuel est supprimé. Par exemple, si la “pin HAL” motion.spindle-brake n'est pas connectée, alors le bouton “Frein de broche” n'apparaîtra pas sur l'écran. Si la variable d'environnement AXIS_NO_AUTOCONFIGURE est mise à 1, ce comportement est désactivé et tous les boutons sont visibles.
Les cases à cocher du groupe“Axes” permettent de choisir l'axe de la machine à actionner manuellement. Cette action s'appelle le “jog”. Premièrement sélectionnez l'axe à actionner en cochant sa case. Puis cliquez le bouton “+” ou “-” selon le sens de déplacement souhaité. Les quatre premiers axes peuvent aussi être déplacés avec les touches fléchées pour (X et Y), Page précédente et Page suivante pour (Z) et les touches [ et ] pour (A).
Si “En continu” est sélectionné, le mouvement continuera tant que la touche ou le bouton resteront appuyés. Si une autre valeur est sélectionnée, la machine se déplacera juste de la distance affichée à chaque fois que la touche ou le bouton seront appuyés. Par défaut, les valeurs disponibles sont:
0.1000 0.0100 0.0010 0.0001
Le réglage du fichier .ini [DISPLAY]INCREMENTS peut être utilisé pour remplacer ces valeurs par défaut. Ces valeurs doivent contenir des nombres décimaux (ex. 0.1000) ou des nombres fractionnaires (ex. 1/16), éventuellement suivis par une unité (une parmi 'cm', 'mm', 'um', 'inch', 'in', ou 'mil'). Si aucune unité n'est spécifiée, les unités natives de la machine seront utilisées. Pour les utilisateurs préférant les unités métriques, un bon réglage pourrait être:
INCREMENTS = 10 um, 50 um, 0.1mm, 0.5mm, 1mm, 5mm, 10 mm
Pour les utilisateurs préférant les unités “impériales”, un bon réglage pourrait être:
INCREMENTS = 1/4 in, 1/16 in, 1/32 in, 1/64 in, 1 mil, .1 mil
ou
INCREMENTS = .5 in, .1 in, 50 mil, 10 mil, 5 mil, 1 mil, .1 mil
Le mélange entre métrique et impérial est possible:
INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um
Si votre machine a une séquence de prise d'origines machine définie, le bouton “POM générale” ou les touches Ctrl+origine lanceront cette séquence. Autrement, le bouton sera lu “Origine machine”, et enverra l'axe courant à sa position d'origine. L'appui de la touche origine seule enverra l'axe courant à sa position d'origine même si une séquence de prise d'origines machine est définie. Selon votre configuration, la POM peut ajuster la valeur de la position de l'axe comme étant la position absolue 0.0, ou elle peut faire déplacer la machine vers une position d'origine spécifiée et avec l'usage de “capteurs d'origine”. Voir la section [->] pour plus d'informations sur les prises d'origine.
Si le bouton “Toucher” ou la touche Fin sont appuyés, le décalage d'origine pièce “G54” de l'axe actif prendra la valeur spécifiée dans le champ de la boite de dialogue. Les expressions peuvent être entrées en suivant les règles de programmation rs274ngc, sauf les variables qui ne peuvent pas être utilisées. La valeur résultante sera affichée sous le champ.
La case à cocher “Mouvement temporaire hors limites” permet un déplacement temporaire de la machine hors des limites définies dans le fichier ini. Par exemple, pour ramener dans les limites, un axe qui les a dépassé par erreur.
Les boutons de la première rangée permettent de sélectionner la direction de rotation de la broche: Sens anti-horaire, Arrêt, Sens horaire. Les boutons de la rangée suivante augmentent ou diminuent la fréquence de rotation. La case à cocher de la troisième rangée permet d'engager ou de relâcher le frein de broche. Selon la configuration de votre machine, ces éléments n'apparaîtront peut être pas tous.
Ces deux boutons permettent d'activer le “Brouillard” et l'“Arrosage” ou de les désactiver. Selon la configuration de votre machine, ces boutons n'apparaîtront peut être pas tous.
L'onglet d'entrée de données manuelles (encore appelées MDI), permet d'entrer manuellement et une par une, des lignes de programme en G-code. Quand la machine n'est pas en marche, ou quand un programme est en cours d'exécution, cet onglet n'est pas opérationnel.
Affiche les commandes précédemment tapées au cours de cette session.
Ce champ permet la saisie d'une ligne de commande à exécuter. La commande sera exécutée par l'appui de la touche “Entrée” ou un clic du bouton “Envoi”.
Ce champ affiche les “codes modaux” actuellement actifs dans l'interpréteur. Par exemple, “G54” indique que le décalage d'origine “G54” sera appliqué à toutes les coordonnées qui seront entrées.
En déplaçant le curseur, la vitesse de déplacement programmée peut être modifiée. Par exemple, si un programme requiert une vitesse à F60 et que le curseur est placé sur 120%, alors la vitesse résultante sera de 72.
En déplaçant ce curseur, la vitesse programmée de la broche peut être modifiée. Par exemple, si un programme requiert une vitesse à F8000 et que le curseur est placé sur 80%, alors la fréquence de rotation résultante sera de 6400. Cet élément n'apparaît que si la “HAL pin” motion.spindle-speed-out est connectée dans .ini.
En déplaçant ce curseur, la vitesse de jog peut être modifiée. Par exemple, si ce curseur est placé sur 100 mm/mn, alors un jog de 1 mm durera .6 secondes, ou 1/100 de minute. Du côté gauche du curseur (jog lent) l'espacement des valeurs est petit alors que du côté droit (jog rapide) l'espacement des valeurs est plus grand, cela permet une large étendue de vitesses de jog avec un contrôle plus fin du curseur dans les zones les plus importantes.
Sur les machines avec axes rotatifs, un second curseur de vitesse est présent. Il permet d'ajuster la vitesse de rotation des axes rotatifs (A, B et C).
La plupart des actions d'AXIS sont accessibles depuis le clavier. La liste complète des raccourcis clavier est disponible dans l'aide rapide d'AXIS qui s'affiche en cliquant sur Aide > Aide rapide. Beaucoup de ces raccourcis sont inaccessible en mode Entrées manuelles.
Les raccourcis clavier les plus fréquents sont visibles dans la table [.].
Touches | Actions produites |
F1 | Bascule l'arrêt d'urgence |
F2 | Bascule le marche/arrêt machine |
`, 1 .. 9, 0 | Correcteurs de vitesse de 0% à 100% |
X, ` | Active le premier axe |
Y, 1 | Active le deuxième axe |
Z, 2 | Active le troisième axe |
A, 3 | Active le quatrième axe |
I | Sélection d'incrément du jog |
C | jog en mode continu |
Ctrl+origine | Lance une séquence de POM |
Fin | Toucher: valide l'offset G54 de l'axe actif |
Gauche, Droite | Jog du premier axe |
Up, Down | Jog du deuxième axe |
Pg Up, Pg Dn | Jog du troisième axe |
[, ] | Jog du quatrième axe |
O | Ouvrir un fichier |
Ctrl+R | Recharger le fichier courant |
R | Exécuter le programme |
P | Pause dans l'exécution du programme |
S | Reprise de l'exécution du programme |
ESC | Stopper l'exécution |
Ctrl+K | Raffraîchi le tracé d'outil |
V | Défilement cyclique des vues prédéfinies |
AXIS inclut un programme appelé “emctop” qui affiche en détail l'état d'emc. Ce programme est accessible dans le menu Machine > Fenêtre d'état d'emc2
Le nom de chaque entrée est affiché dans la colonne de gauche. La valeur courante de chaque entrée s'affiche dans la colonne de droite. Si la valeur a changé récemment, elle s'affiche en surbrillance rouge.
AXIS inclut un programme appelé “mdi”, il permet d'envoyer des commandes à la session d'EMC2 en cours, sous forme de lignes de texte. Vous pouvez lancer ce programme en ouvrant une console et en tapant:
mdi /path/to/emc.nml
En cours d'exécution il affiche le prompt: MDI>. Quand une ligne vide est entrée, la position courante de la machine est affichée. Quand une commande est entrée, elle est passée à emc qui l'exécute. Une courte session MDI est visible sur la figure [.].
$ mdi ~/emc2/configs/sim/emc.nml
MDI>
(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI> G1 F5 X1
MDI>
(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI>
(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0)
AXIS inclut un programme appelé “axis-remote” qui permet d'envoyer certaines commandes vers l'application AXIS fonctionnant à distance. Les commandes disponibles sont visibles en faisant: axis-remote --help pour vérifier qu'AXIS est en marche, inclure: (--ping), charger un fichier, recharger le fichier courant avec: (--reload) et quitter le programme AXIS avec: (--quit).
AXIS inclut un composant Hall appelé “hal_manualtoolchange”, il ouvre une fenêtre d'appel d'outil (Figure [.]) quand la commande M6 est invoquée. Dés que le bouton Continuer a été pressé, l'exécution du programme reprend.
Le fichier de configuration .hal: configs/sim/axis_manualtoolchange.hal montre les commandes HAL nécessaires pour l'utilisation de ce composant.
hal_manualtoolchange peut être utilisé même si l'interface graphique AXIS n'est pas en service.
AXIS inclut plusieurs modules en Python qui peuvent être très utiles. Pour des informations complètes sur ces modules, faites: “pydoc <nom du module>” ou lisez son code source. Modules inclus:
Pour utiliser ces modules dans vos propres scripts, assurez-vous que le répertoire où ils se trouvent est dans le chemin d'accès des modules Python. Avec une version installée d'EMC2, ça se fera automatiquement. Avec une version installée en “in-place”, ça peut être fait avec l'aide de: scripts/emc-environment.
En incluant cette ligne dans le fichier ini le mode tour (lathe) sera sélectionné:
[DISPLAY]
LATHE = 1
L'axe “Y” ne sera pas visible dans l'affichage des coordonnées, la vue sera modifiée pour placer l'axe Z dans le sens gauche/droite et l'axe X dans le sens avant/arrière et différents éléments (tels que les icônes des vues prédéfinies) seront supprimés.
La touche “V” agit alors sur le zoom pour afficher le tracé complet du fichier chargé.
En mode tour (lathe), la forme de l'outil chargé est visible.
AXIS a la capacité d'envoyer des fichiers chargés à travers un “filtre de programme”. Ce filtre peut faire diverses tâches: Simple, comme s'assurer que le programme se termine bien par un: 'M2' ou complexe, comme détecter que l'entrée est une image et générer le g-code qui permettra d'usiner sa forme.
La section [FILTER] du fichier ini défini comment les filtres doivent agir. Premièrement, pour chaque type de fichier, écrire une ligne: PROGRAM_EXTENSION puis, spécifier le programme à exécuter pour chaque type de fichier. Ce programme reçoit comme argument le nom du fichier d'entrée, il doit produire le code selon le standard rs274ngc, en sortie. Les lignes de cette sortie s'affichent alors dans la zone texte, le chemin d'outil résultant est visible dans la zone graphique, enfin il sera exécuté quand emc recevra la commande “Exécuter le programme”. Les lignes suivantes fournissent la possibilité d'utiliser “image-to-gcode”, le convertisseur d'images fourni avec EMC2:
[FILTER]
PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image
png = image-to-gcode
gif = image-to-gcode
Il est également possible de spécifier un interpréteur:
PROGRAM_EXTENSION = .py Python Script
py = python
De cette manière, n'importe quel script Python pourra être ouvert et sa sortie traitée comme du g-code. Un autre exemple est disponible dans: nc_files/holecircle.py. Ce script crée le g-code pour percer une série de trous selon la circonférence d'un cercle.
Si la variable d'environnement: AXIS_PROGRESS_BAR est active, alors les lignes seront écrites sur stderr de la forme:
FILTER_PROGRESS=%d
AXIS fixera la barre de progression selon le pourcentage donné. Cette fonction devrait être utilisée pour un filtre qui fonctionne suffisamment longtemps.
Les couleurs de la plupart des éléments de l'interface utilisateur d'AXIS peuvent être personnalisées grâce à la base de données X. Le fichier: axis_light_background modifie les couleurs de la fenêtre du chemin d'outil sur le modèle “lignes noires et fond blanc”, il sert aussi de référence des éléments configurables dans l'écran graphique.
Pour plus d'informations au sujet des éléments configurables dans les applications Tk, référez vous aux manuels de Tk.
Les bureaux graphiques modernes effectuent certains réglages dans la base de données des ressources X ces réglages peuvent affecter ceux d'AXIS, par défaut ces réglages sont ignorés. Pour que les éléments des ressources X écrasent ceux par défaut dans AXIS, il faut inclure cette ligne dans vos ressources X:
*Axis*optionLevel: widgetDefault
ce qui entraînera la construction des options au niveau “widgetDefault”, de sorte que les ressources X (qui sont elles, au niveau “userDefault”) puissent l'emporter.
Pour accroître l'interaction d'AXIS avec une manivelle de jog physique, l'axe actif courant sélectionné dans l'interface graphique est aussi reporté sur une “pin Hal” avec un nom comme axisui.jog.x. Excepté pendant un court instant après que l'axe courant ait changé, une seule de ces pins à la fois est TRUE, les autres restent FALSE.
Après qu'AXIS ait créé ces “HAL pins”, il exécute le fichier hal déclaré avec: [HAL]POSTGUI_HALFILE. Ce qui diffère de [HAL]HALFILE, qui lui ne s'utilise qu'une seule fois.
Si il existe, le contenu de: ~/.axisrc est exécuté comme un code source Python juste avant l'ouverture de l'interface graphique d'AXIS. Les détails de ce qui peut être écrit dans .axisrc sont sujets à changement durant le cycle de développement.
Les lignes visibles sur la figure [.] ajoutent un Ctrl+Q comme raccourci clavier pour Quitter et activer l'option “Distance restante” par défaut.
En définissant: [DISPLAY]EDITOR, les options de menu: Fichier > Editer ainsi que Fichier > Editer la table d'outils, deviennent accessibles. Deux valeurs qui marchent bien: EDITOR=gedit et EDITOR=gnome-terminal -e vim.
AXIS peut afficher le fichier xml pyVCP dans le panneau droit de l'interface.