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.

LinuxCNC – astuces supplémentaires

Appli android pour controler linuxCNC

http://www.androidpit.fr/application/com.cncpendantforlinuxcnc.app (8.99€)

Cambam plus n’utilise pas toutes les fonctionnalités de EMC

Cambam est incapable de générer toutes les valeurs possibles des Gcodes G61/G64 pour le paramètre d’usinage global ‘Velocity mode’ et on n’atteint pas la vitesse maximale possible lors de l’usinage

Solution
Il faut ajouter un post-processeur “rapide” qui permettra d’utiliser les codes manquants.

Les post processeurs sont dans c:\Documents dans Settings\all users\application data\cambam plus 0.9.8\post.
et dans /home/votre_utilisateur/.config/CamBam plus 0.9.8/post sous Linux

Dupliquer EMC2.cbpp en EMC2-speed.cbpp, et modifier la ligne:
{$units} {$distancemode} {$velocitymode} {$cuttercomp(off)}

Pour la transformer en :
{$units} {$distancemode} {$velocitymode} P0.05 {$cuttercomp(off)}\\

Ici, la précision a été fixée à 5 centièmes de mm, ce qui est très largement suffisant pour de la gravure, mais vous pourrez avoir à trouver votre valeur pour vos besoins.

Source: http://www.usinages.com/emc2/emc2-tuto-complet-t18768.html

Exporter directement en ngc

source: http://id-conception.fr/Forum/viewtopic.php?f=24&t=1067

Voici un petit modif, qui évite pas mal de manipulation durant l’utilisation de CamBam avec LinuxCNC EMC2 (qui veut du NGC).

Dans beaucoup (Peut-être bien tous) des Tutos, il est indiqué de sauvegarder le fichier Gcode dans CamBam (Extension nc) et ensuite de le renommer sous linux avec l’extension .ngc.

Alors qu’il suffit simplement dans CamBam de faire les manipulations suivante pour que votre fichier Gcode aie automatiquement la bonne extension :

– Aller dans le menus « Outils »
– Puis sélectionner « Options »
– Aller dans la Partie « Génération du Gcode » de la nouvelle fenêtre qui c’est ouverte.
– Modifier la ligne : « Extension Gcode par défaut » en remplaçant le .nc par .ngc
– Et enfin, quitter la fenêtre, et si tout c’est bien passé, vos fichier Gcode auront directement la bonne extension.

Problème: Cambam crash avec l’utilisation de textes

Lors de l’utilisation d’options de texte, cambam se crashe. Soit lors de la demande d’utiliser du texte, soit à l’ouverture de fichier cb contenant du texte.

Le message d’erreur éventuel indique juste ./libcambam64.so

Explication
Ce problème survient quand on lance cambam par mono chemin/cambam.exe. Il ne trouve pas le fichier libcambam64.so dans son chemin. Il suffit de se rendre à l’emplacement d’installation de cambam AVANT de lancer cambam.
Solution

créer un fichier /usr/local/bin/cambam contenant le texte suivant (en admettant que cambam soit installé dans /home/manu/CamBam0.9.8):


#!/bin/bash
cd /home/manu/CamBam0.9.8
mono CamBam.exe

Rendre ce fichier exécutable par sudo chmod +x /usr/local/bin/cambam

Créer un lanceur dans /usr/share/applications/cambam.desktop contenant le texte suivant:


[Desktop Entry>
Name=Cambam
Comment=Dessiner en gcode
Exec=/usr/bin/cambam
Icon=/home/manu/CamBam0.9.8/cambam.png
Terminal=false
Type=Application
Categories=GTK;Graphics;
StartupNotify=true
X-Ubuntu-Gettext-Domain=CamBam

Attention à remplacer le nom de l’utilisateur (ici manu) par le votre dans les codes ci dessus

Revenir à la position 0 à la fin du cycle

http://www.metabricoleur.com/t1437p180-aide-cambam

Attention! Le retour de la broche à 0 peut faire des dégats à la pièce ET à la broche qui s’arrête de tourner!