Linux CNC – Ajouter un panneau supplémentaire à Axis

De base, l’interface d’Axis suffit pour la plupart des opérations. Je vais vous montrer comment ajouter un panneau avec des boutons qui peuvent vous simplifier la vie.
Nous allons modifier les fichiers correspondant au paramétrage de votre machine mais si vous relancez stepconf par la suite, vos modifications seront perdues. Sachez que, en général, une fois la machine paramétrée, il est plus simple d’aller modifier directement le fichier de configuration que de passer toutes les étapes de l’assistant. Donc on ne relance plus stepconf après quelques semaines d’utilisation.

Nous allons le relancer une dernière fois pour lui dire que nous voulons ajouter un nouveau panneau. Sélectionnez la modification de machine, sélectionnez votre machine et cochez les cases tel que sur l’image suivante lorsque vous arrivez à la partie concernée:

Allez jusqu’au bout de l’assistant.

Ouvrez maintenant geany que nous avons installé précédemment (Applications/Developpement/Geany) . Ouvrez le fichier votre_utilisateur/linuxcnc/configd/nom_de_machine/custompanel.xml

Collez le texte suivant dedans:

<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<!-- 
Include your PyVCP panel here.
The contents of this file will not be overwritten when you run stepconf again.
-->

<labelframe text="Boutons de Jog">
      <font>("Helvetica",16)</font>

       <!-- le bouton de jog de l'axe X -->
       <hbox>
           <relief>RAISED</relief>
           <bd>3</bd>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"x-plus"</halpin>
               <text>"X+"</text>
           </button>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"x-moins"</halpin>
               <text>"X-"</text>
           </button>
       </hbox>

       <!-- le bouton de jog de l'axe Y -->
       <hbox>
           <relief>RAISED</relief>
           <bd>3</bd>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"y-plus"</halpin>
               <text>"Y+"</text>
           </button>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"y-moins"</halpin>
               <text>"Y-"</text>
           </button>
       </hbox>

       <!-- le bouton de jog de l'axe Z -->
       <hbox>
           <relief>RAISED</relief>
           <bd>3</bd>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"z-plus"</halpin>
               <text>"Z+"</text>
           </button>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"z-moins"</halpin>
               <text>"Z-"</text>
           </button>
       </hbox>

       <!-- le curseur de vitesse de jog -->
       <vbox>
           <relief>RAISED</relief>
           <bd>3</bd>
           <label>
               <text>"Vitesse de Jog"</text>
               <font>("Helvetica",16)</font>
           </label>
           <scale>
               <font>("Helvetica",14)</font>
               <halpin>"jog-speed"</halpin>
               <resolution>1</resolution>
               <orient>HORIZONTAL</orient>
               <min_>0</min_>
               <max_>80</max_>
           </scale>
       </vbox>


       <vbox>
           <relief>RAISED</relief>
           <bd>3</bd>
           <button>
               <font>("Helvetica",20)</font>
               <width>2</width>
               <halpin>"rapid-to-home"</halpin>
               <text>"Home"</text>
           </button>
       </vbox>

   </labelframe>

<labelframe text="Temps écoulé">
   <font>("Helvetica",10)</font>
   <hbox>
       <relief>RAISED</relief>
       <bd>1</bd>
           <label>
               <text>"Time:"</text>
               <font>("Helvetica",10)</font>
           </label>
       <u32>
           <halpin>"elaps_hour"</halpin>
           <font>("Helvetica",10)</font>
           <format>"02d:"</format>
       </u32>
       <u32>
           <halpin>"elaps_min"</halpin>
           <font>("Helvetica",10)</font>
           <format>"02d:"</format>
       </u32>
       <u32>
           <halpin>"elaps_sec"</halpin>
           <font>("Helvetica",10)</font>
           <format>"02d"</format>
       </u32>
   </hbox>

   </labelframe>

</pyvcp>

Sauvegardez.

Le panneau est désormais présent dans l’interface, mais il n’est connecté à rien, donc les boutons ne fonctionneront pas. On va faire la liaison entre le programme et l’interface en modifiant le fichier custom_postgui.hal. Ouvrez le avec geany et copiez le code suivant dedans:

# Inclure vos commandes HAL personnalisées ici
# Les commandes contenues dans ce fichier seront lancées après quel'interface graphique AXIS (PyVCP inclus) aura démarré.

sets spindle-at-speed true

# connecte les boutons PyVCP pour X
net my-jogxmoins halui.jog.0.minus <= pyvcp.x-moins
net my-jogxplus halui.jog.0.plus <= pyvcp.x-plus

# connecte les boutons PyVCP pour Y
net my-jogymoins halui.jog.1.minus <= pyvcp.y-moins
net my-jogyplus halui.jog.1.plus <= pyvcp.y-plus

# connecte les boutons PyVCP pour Z
net my-jogzmoins halui.jog.2.minus <= pyvcp.z-moins
net my-jogzplus halui.jog.2.plus <= pyvcp.z-plus

# connecte le curseur de vitesse de jog PyVCP
net my-jogspeed halui.jog-speed <= pyvcp.jog-speed-f


net remote-rapid-to-home halui.mdi-command-00 <= pyvcp.rapid-to-home
net remote-rapid-to-home halui.mdi-command-01 <= pyvcp.rapid-to-home


# Elapsed time
# Charge le composant timer
loadrt time
# Ajoute le fil de servo
addf time.0 servo-thread
# Dès que le programme démarre, le timer se lance
net prog-is-running <= halui.program.is-running
net prog-is-running => time.0.start
# Affiche l'heure dans le paneau
net cycle-seconds time.0.seconds => pyvcp.elaps_sec
net cycle-minutes time.0.minutes => pyvcp.elaps_min
net cycle-hours time.0.hours => pyvcp.elaps_hour

C’est presque fini. Il faut maintenant dire à Axis qu’on veut utiliser ce panneau. Ouvrez avec geany le fichier votre_machine.ini. Vous constaterez que tous les réglages effectués avec stepconf y sont notés de façon simple.

Nous allons ajouter certaines choses:
Dans le section DISPLAY ajoutez une ligne PYVCP = custompanel.xml (indique à Axis d’utiliser ce panneau)
Dans la section HAL assurez vous d’avoir POSTGUI_HALFILE = custom_postgui.hal et HALFILE = custom.hal, sinon, ajoutez les lignes (commandes à lancer après Axis)
Dans la section HALUI ajoutez les lignes MDI_COMMAND = G0 Z30 et MDI_COMMAND = G0 X0 Y0 Z30 (commandes qui seront effectuées par le retour au home: en premier lieu montée de la broche à 30, puis retour à X0 et Y0 et Z30. Modifiez la valeur de Z au besoin)

Enregistrez et relancez Linuxcnc, vous devriez avoir un beau panneau fonctionnel supplémentaire.

Articles en relation: