Bonjour,
Suite à des demandes, je fais un petit point sur dxf2gcode
dxf2gcode est un outil très simple qui permet de faire uniquement du détourage de formes (avec ou sans compensation du rayon d'outil). Ce n'est pas un générateur de gcode 3D, il n'est pas capable de faire de surfacage, ...
Ce logiciel permet donc de découper des formes plus ou moins complexes ; formes qui auront été dessinées avec un logiciel de dessin technique (qcad par exemple :
http://www.ribbonsoft.fr/ (logiciel libre et gratuit, au moins sous Linux), ou autocad (non testé))
Le soft est écrit en python, il doit donc marcher sous windows et sous Linux. Je vais vous présenter l'utilisation que j'en fais qui est exclusivement sous Linux
- Dessin de la pièce à usiner
Comme je l'ai mis plus haut, j'utilise l'excellent logiciel QCad qui fonctionne sous Linux et sous windows et qui est libre et gratuit sous Linux (de mémoire il coute 3x rien sous windows) :
Donc là j'ai dessiné une cale qui va nous servir d'exemple tout au long de ce post. Veillez à bien raccorder les profils de la pièce (pas de dessin à l'"à peu près", sinon dxf2gcode ne verra pas des formes fermées et n'usinera pas de tout ce que vous attendez).
- Installation de dxf2gcode
Commencez par télécharger le logiciel ici : http://code.google.com/p/dxf2gcode/down ... source.zip
Ensuite il faut l'"installer" (l'installation se résume en gros à le décompresser et à le rendre executable) :
Etapes pas à pas
- ouvrir un terminal (konsole par exemple)
- aller dans le repertoire où vous avez téléchargé le logiciel : "cd /home/xi/Logiciels" par exemple
- faire un "ls -lh" pour vérifier que tout est bien là
- creer un dossier qui s'appelle avec le nom du soft : "mkdir 2010-05-04-dxf2gcode_b02_source"
- aller dans ce dossier : "cd 2010-05-04-dxf2gcode_b02_source"
- décompresser le logiciel : "unzip ../2010-05-04-dxf2gcode_b02_source.zip" (le "../" est important !)
- étape non indispensable mais vivement conseillée (voir plus loin) : appliquer mon patch : "patch -p1 < ../add_toolpath_setting_patch__dxf2gcode_2010-05-04b02.diff"
- rendre le fichier dxf2gcode_b02.py executable : "chmod a+x dxf2gcode_b02.py"
- lancer le logiciel : "./dxf2gcode_b02.py"
A noter qu'à part le patch, tout est faisable depuis l'explorateur ![Wink ;-) ;-)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Lecture du fichier dxf
Si tout se passe comme prévu, vous pouvez ouvrir le fichier "cale.dxf" créé avec qcad (menu "File->Read DXF") :
- Choix du sens d'usinage
Sélectionner les formes à usiner avec la souris + la touche [CTRL] du clavier. Ensuite, avec le bouton de droite de la souris, choisir le type d'usinage que vous voulez faire (le choix peut s'effectuer par forme). Ici on veut couper "à gauche" des traits (ie faire un usinage en avalant) ; pour moi c'est généralement ce qui donne les meilleurs résultats :
A noter que les autres choix sont
- "G40: no correction" : ne tient pas compte du rayon de la fraise et usine sur le trait (à utiliser pour faire de la gravure de texte par exemple)
- "G42: cutting right" : usine à droite du trait (fait de l'usinage en opposition ; chez moi le résultat est généralement moins propre que pour l'usinage en avalant)
- Choix de l'usinage intérieur / extérieur
Ici, on indique si on veut usiner l'intérieur ou l'extérieur des formes. Je sélectionne toutes les formes qui ne sont pas usinées du bon coté et je fais "bouton de droite -> Switch direction" :
- Generation du Gcode
On commence par régler les paramètres d'usinage :
- "Tool diameter" : diamètre de la fraise en mm
- "Start radius (for tool comp.)" : rayon d'entrée dans la matière pour la compensation de jeu (doit valoir au moins le diamètre de la fraise pour que EMC2 soit content). A noter que dxf2gcode fait la compensation de rayon d'outil à Z = 0 - la profondeur de passe, ce qui signifie que la compensation s'effectue en usinant dans la matière ... Pour remédier à ca, il faut par exemple décaler l'origine en Z (voir plus bas).
- "Start at X" / "Start at Y" : point d'origine de la pièce (on voit ce point en bas à gauche du dessin de la pièce). En général je laisse toujours 0,0 et c'est au niveau de EMC2 qu'on réglera la position de la pièce.
- "Z retraction area" : hauteur Z où la fraise peut se déplacer sans rencontrer aucun obstacle
- "Z safety margin" : hauteur Z à laquelle la fraise se déplace pour passer d'une forme à l'autre
- "Z infeed depth" : profondeur de passe (la fraise enlèvera 1mm de matière à la fois)
- "Z mill depth" : profondeur finale d'usinage (-3mm => la fraise fera 3 passes d'usinage pour chaque forme : une à -1mm, la seconde à -2mm et la dernière à -3mm)
- "G1 feed Z direction" : vitesse de descente en Z en mm/min
- "G1 feed XY-direction" : vitesse d'usinage dans le plan X-Y
Une fois que tout est prêt, il faut faire un "Export -> write Gcode" pour générer le gcode :
Le logiciel dessine alors le parcours d'outil. On peut constater qu'il y un problème ici : le contours de la pièce est usiné avant que tous les trous ne soient percés (la pièce ne sera plus tenue). C'est pour cette raison que j'ai fait un patch pour modifier dxf2gcode (voir plus haut)
- Generation du GCode avec mon patch
Lorsque le logiciel est patché avec mon patch, on peut choisir l'ordre d'usinage des formes grace à la liste qui est en bas à gauche :
Les numéros des formes indiqués sur le dessin correspondent aux numéros dans la liste. Pour choisir l'ordre d'usinage, il suffit de cliquer sur un numéro et de le faire monter ou descendre tout en maintenant le bouton de la souris enfoncé.
- Le résultat
Voilà la pièce usinée sur un machine CNC 3 axes contrôlée par le logiciel EMC2 :
Remarque importante : sur EMC2 on travaille en coordonnées relatives (enfin c'est ce qu'il y a de plus facile). Donc il faut amener la fraise manuellement au point en bas à gauche de la matière à usiner (point qui correspond à la coordonnée 0,0,0 de la pièce) et utiliser le bouton "Toucher G54" pour chacune des coordonnées X, Y et Z. C'est de cette manière qu'on indique à EMC2 l'origine de notre pièce à usiner.
Et c'est là que c'est important : il _faut_ que le fichier GCode contienne le GCode "G54" au début du programme (à placer juste après le G17 par exemple). Ce G54 permet de dire à EMC2 qu'on travaille en coordonnées relatives. Dans la version originale de dxf2gcode, il faut ajouter ce G54 à la main en éditant le fichier. Avec mon patch, c'est déjà tout prêt, ya rien à faire ![Wink ;-) ;-)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
J'ai regroupé tous les fichiers nécessaires à la fabrication de cette pièce dans l'archive cale.zip :
Il contient les fichiers suivants :
-> cale.dxf : dessin de la pièce sous QCad
-> cale.ngc : GCode généré par dxf2gcode (parcours d'outil incorrect)
-> cale_chemin_outil_OK.ngc : GCode généré par dxf2gcode modifié pour que le parcours d'outil soit correct
-> add_toolpath_setting_patch__dxf2gcode_2010-05-04b02.diff : patch pour la génération correcte du chemin d'outil dans dxf2gcode
Voilà, j'espère que ca servira à quelqu'un ! Ce logiciel n'est pas très puissant, mais il a l'avantage d'être très rapide à utiliser et c'est un des rares qui existe sous Linux. Avec un tout petit peu de connaissances en GCode, on arrive à faire des choses pas mal comme des petits engrenages
Si vous voulez en savoir plus, je vous invite à aller voir ma présentation :
un-nouveau-avec-une-charlyrobot-emc2-sous-linux-t24645.html
Fichiers pour utilisés pour l'exemple