CNC 3018

De knowledge
Aller à la navigation Aller à la recherche

Logiciels nécessaires

Une CNC c'est bien mais "toute nue" avec seulement sa micro télécommande. c'est pas l'idéal.

Conception

Il faut d'abord faire de la conception. En 2D avec InkScape par exemple et en 3D avec FreeCAD (un excellent outil).

Avec FREECAD on peut générer des plans de coupe en 2D (des fichiers DXF) que l'on pourra utiliser avec un logiciel de FAO.

Génération du gcode

Je conseille l'utilisation de Carbide Create (lien) pour générer le gcode.

Attention.png Depuis la version 7 de Carbide Create on ne peut plus, sans payer une version pro, générer de gcode. On utilisera la V6 que l'on trouve ici.
Attention.png Pour les utilisateurs de Windows en français Carbide gère mal les séparateurs décimaux. Il n'autorise que la saisie avec des points (1.2mm par exemple) mais utilise les settings de Windows pour valider la saisie.

Pour entrer un diamètre de fraise de 1,6 mm on est obligé de taper 1.6 (carbide interdit de saisir une virgule) en revanche, lors de la vérification de la saisie il utilise les settings Windows. Donc il oblige de saisir les nombres au format anglo-saxon mais interdit la validation si ce n'est pas une "," dans le cas de la France.... On appelle ça un dead-lock ! La seule solution pour se sortir de ce mauvais pas c'est de changer les settings Windows. C'est sale car tout le PC est impacté mais c'est comme ça! Sous Windows 11 le changement est assez fastidieux. Je le décris ici.

Pilotage de la CNC

Ensuite il faudra un logiciel de gestion de la machine pour "jouer le gcode" sur la CNC. Moi j'utilise Candle GRBL.

Perçages

Avec une CNC et des fraises on peut faire des perçages en tout genres. Les "pockets" avec Carbade Create sont là pour ça. Mais leur principe est basé sur l'utilisation d'une fraise.

  • On positionne la fraise au centre du trou
  • On la descends pour faire une premiere passe
  • On la déplace pour faire le trou (éventuellement en plusieurs fois)
  • On descends un peu plus bas
  • ....

Cela implique d'avoir des fraises plus petites que le trou.

Mais si nous voulons faire un joli trou cylindrique et que l'on dispose d'un foret du bon diamètre pourquoi faire compliqué!

  • On positionne le foret au dessus du trou
  • On descends par petits coup sucessifs (pour casser le copeau)
  • Et on remonte

C'est tout.

J'ai fais deux scripts python pour gérer ça.

  1. Un pour traduire les fichiers Excellon (issue de EAGLE PCB par exemple) en une description JSON plus simple
  2. Un second qui prends un JSON généré plus haut et en fait le gCode pour Candle GRBL

Entre les deux étapes on peut modifier le JSON (ou même en créer un beau tout neuf).

On trouvera le code ici : https://github.com/villoiseaux/cnctools/tree/main/simple-drilling


Vitesse de coupe

C'est l'un des paramètres le plus difficile a gérer. Surtout lorsque on sort du traditionnel MDF qui accepte un peut tout.

Normalement la fraise doit faire de jolis copeaux. Si on avance trop vite le copeau est trop gros la fraise bloque et se casse. Si on est sous la vitesse idéale la fraise ne fait qu'user la matière. on a alors de la sciure plutôt que de beau copeaux. Normalement ça peut être un moindre mal : ça marche mais on pourrait aller plus vite.

Acrylique

Fellowes Huile pour destructeur de papier

C'est souvent ce que l'on appelle "plexiglass". Ce sont les plaques de plastique transparent que l'on a vu fleurir entre nous et les commerçants à la caisse. On en trouve beaucoup depuis la fin de la crise sanitaire.

Il est difficile a usiner car, si on va trop vite en terme d'avance la fraise casse (ça c'est du classique) mais si on ne va pas assez vite elle frotte et... elle casse.

En plus sur nos CNC bas de gamme la réduction de de la vitesse de la broche lui enlève tout son couple.

La solution : "mets de l'huile". Oui c'est la lubrification qui nous permettra de faire un joli travail.

En ce qui concerne "quel lubrifiant utiliser"; j'utilisais auparavant de l'huile de coupe achetée en grande surface de bricolage. Ca se présentait en spray et c'était pas idéal. C'est le hasard qui m'a fait trouvé le lubrifiant idéal.

Suite a un déménagement au bureau où je travailles on allait jeter un carton de liquide de lubrification pour les broyeurs à papier.

Les fraises

Les "grosses"

J'utilise des fraise HSS assez standards et elles ne s'usent pas très vites.

Classiquement j'utilise des fraises cylindrique de 2mm, 3mm, 4mm (queue de 4) et 5mm (queue de 6).

Pour l'acrylique je préfère les fraises de 2, 3 et 4mm elles marchent très bien.

https://www.amazon.fr/gp/product/B07DNJHCJS/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1
21€ le lot chez Amazon
Vitesse de la broche nb flutes Plunge rate

vitesse de descente

Feedrate

Vitesse d'avance

Depth

Profondeur de coupe

2mm max (10 000 t/min) 2 800 m/min 800 m/min 0,200 mm
3mm max (10 000 t/min) 2 800 m/min 400 m/min 0,200 mm
4mm max (10 000 t/min) 2 800 m/min 400 m/min 0,200 mm

Le truc est de laisser toujours la fraise baigner dans le lubrifiant. Tant que les copaux restent transparents c'est bon. Des qu'ils deviennent blancs c'est qu'il faut de l'huile.

Les "petites"

Pour un projet j'ai usiné de l'acrylique avec des fraises de 1mm et de 0.6mm. Le tout sur des plaques de 3 à 6mm d'épaisseur.

Je ne précise pas le nombre de "flutes" car elles sont très petites et ce n'est pas précisé dans la doc!

Je me suis fournis chez Amazon:

Dans un premier temps parlons de la fraise 1mm achetée chez Amazon. Je l'ai utilisée classiquement avec le trio freecad + carbide + candel.

Vitesse de la broche Plunge rate

vitesse de descente

Feedrate

Vitesse d'avance

Depth

Profondeur de coupe

1.0 mm max (10 000 t/min) 800 m/min 400 m/min* 0.2
0.6 mm max (10 000 t/min) 50 m/min 50 m/min 0.1

* On peut monter à 800 m/min mais ça a l'air de "forcer" à vous de voir.

Bien sur j'utilise de l'huile de coupe "Fellowes" décrite ci dessus. Pour que ce soit idéal j'usine d'abord un cadre que je pose sur la plaque à usiner. Ca fait un "petit bassin" que je remplis d'huile c'est parfait.

Les forêt

Je me fournis chez Farnell:

Pour faire des perçages à l'aide de foret carbide ne sais pas faire (ou j'ai pas compris comment faire).

Carbide sait faire des perçages de type "pockets" mais, pour celà, il faut des fraises d'un diamètre inférieur au trou.

Pocket-percages.png

On voit la l'exemple d'un perçage de 1.2mm avec une fraise de 1mm. Dans cet exemple carbide à généré 7 étapes :

  • Descendre la fraise
  • Un petit cercle
  • Un plus grand cercle
  • Remonter la fraise pour "casser le copeau"

Et ça 7 fois de suite.

Ca fait un percage tout a fait correct mais:

  • Il faut une fraise encore plus petite que notre trou (déja je veux un percage de 0.6... me faudrait une fraise de 0.4)
  • La fraise travaille latéralement et quand elle est tres fine... ça casse (surtout pour une 0.4)

La solution serait d'utiliser un foret au lieu d'une fraise et de programmer un trajet correspondant a ce que l'on ferait avec une perceuse sur colonne.

  • Je descends un peu le foret
  • Je remonte pour casser le copeau
  • Je redescends un peu plus bas
  • etc.. jusqu'a la profondeur voulue.

Je ne vois pas pourquoi ma 3018 ne serait pas capable de cela mais, apres plein de recherches, je n'ai pas trouvé d'outils pour faire ça!

En plus mon besoin était de partir d'un fichier "drl" issue d'un logiciel de CAO électronique (Eagle PCB).

Pour j'ai donc écris deux scripts python.

  • Un pour lire un fichier "drl" et construire un fichier JSON comportant les coordonnées de chaque trou et pour chaque outil (chaque diamètre)
  • Un pour convertir ce fichier JSON en gcode

J'ai fait ça en deux morceaux car je voulais pouvoir générer du gcode même dans le cas où je n'ai pas de "drl"

On va prendre un exemple ou je veux faire 6 trous de 0.6 mm sur deux rangées et espacés de 1.27 mm.

On cherche à faire une pièce qui ressemble à :

Exemple-percage.png

On ne s'occupe pas ici du contour, c'est simple avec carbide, mais des 6 trous de 0.6mm.

On a donc 6 trous à faire (origine à l'angle du bas à gauche)

Trou x y
1 1.90 1.27
2 3.17 1.27
3 4.44 1.27
4 1.90 2.54
5 3.17 2.54
6 4.44 2.54

On construit le JSON suivant:

{"tools":{
        "T3":0.6,
        "T2":0.9,
        "T1":2
        },
"holes":[
        {"tool":"T3","x":1.900,"y":1.270},
        {"tool":"T3","x":3.170,"y":1.270},
        {"tool":"T3","x":4.440,"y":1.270},

        {"tool":"T3","x":1.900,"y":2.540},
        {"tool":"T3","x":3.170,"y":2.540},
        {"tool":"T3","x":4.440,"y":2.540}
        ]
}

J'utilise mon script de transformation:

./json2gcode.py -test.nc test.json

et j'obtiens :

;Generated with json2gcode.py (c) Jean PINON 2024
G90
G21
M05
G0Z4.0
M0 ;T3
M03S10000
;drill
G0X1.9Y1.27Z4.0
G1Z0.0F203.0
G1Z-0.7F203.0
G0Z4.0
G1Z-1.4F203.0
G0Z4.0
G1Z-2.0999999999999996F203.0
G0Z4.0
G1Z-2.8F203.0
G0Z4.0
G1Z-3.5F203.0
G0Z4.0
G1Z-4.2F203.0
G0Z4.0
G1Z-4.9F203.0
G0Z4.0
G1Z-5.6000000000000005F203.0
G0Z4.0
G1Z-6.1F203.0
G0Z4.0
;drill
G0X3.17Y1.27Z4.0
G1Z0.0F203.0
G1Z-0.7F203.0
G0Z4.0
G1Z-1.4F203.0
G0Z4.0
G1Z-2.0999999999999996F203.0
G0Z4.0
G1Z-2.8F203.0
G0Z4.0
G1Z-3.5F203.0
G0Z4.0
G1Z-4.2F203.0
G0Z4.0
G1Z-4.9F203.0
G0Z4.0
G1Z-5.6000000000000005F203.0
G0Z4.0
G1Z-6.1F203.0
G0Z4.0
;drill
G0X4.44Y1.27Z4.0
G1Z0.0F203.0
G1Z-0.7F203.0
G0Z4.0
G1Z-1.4F203.0
G0Z4.0
G1Z-2.0999999999999996F203.0
G0Z4.0
G1Z-2.8F203.0
G0Z4.0
G1Z-3.5F203.0
G0Z4.0
G1Z-4.2F203.0
G0Z4.0
G1Z-4.9F203.0
G0Z4.0
G1Z-5.6000000000000005F203.0
G0Z4.0
G1Z-6.1F203.0
G0Z4.0
;drill
G0X1.9Y2.54Z4.0
G1Z0.0F203.0
G1Z-0.7F203.0
G0Z4.0
G1Z-1.4F203.0
G0Z4.0
G1Z-2.0999999999999996F203.0
G0Z4.0
G1Z-2.8F203.0
G0Z4.0
G1Z-3.5F203.0
G0Z4.0
G1Z-4.2F203.0
G0Z4.0
G1Z-4.9F203.0
G0Z4.0
G1Z-5.6000000000000005F203.0
G0Z4.0
G1Z-6.1F203.0
G0Z4.0
;drill
G0X3.17Y2.54Z4.0
G1Z0.0F203.0
G1Z-0.7F203.0
G0Z4.0
G1Z-1.4F203.0
G0Z4.0
G1Z-2.0999999999999996F203.0
G0Z4.0
G1Z-2.8F203.0
G0Z4.0
G1Z-3.5F203.0
G0Z4.0
G1Z-4.2F203.0
G0Z4.0
G1Z-4.9F203.0
G0Z4.0
G1Z-5.6000000000000005F203.0
G0Z4.0
G1Z-6.1F203.0
G0Z4.0
;drill
G0X4.44Y2.54Z4.0
G1Z0.0F203.0
G1Z-0.7F203.0
G0Z4.0
G1Z-1.4F203.0
G0Z4.0
G1Z-2.0999999999999996F203.0
G0Z4.0
G1Z-2.8F203.0
G0Z4.0
G1Z-3.5F203.0
G0Z4.0
G1Z-4.2F203.0
G0Z4.0
G1Z-4.9F203.0
G0Z4.0
G1Z-5.6000000000000005F203.0
G0Z4.0
G1Z-6.1F203.0
G0Z4.0
G0X0Y0Z4.0G1
M05
M02

Que je peux ouvrir avec candle:

Exemple-percages-candle.png

Il n'y a plus qu'à lancer l'usinage! J'utilise toujours ma méthode de bain d'huile et ca marche tres bien même avec les fraises de 0.6 bon marché Amazon.

Pour les vitesses j'ai mis les constantes suivantes dans mon script :

zUpPosition=4.00000
zDownPosition=0.00000
zDepth=-6.1
zStep=0.7
plugeSpeed=203.0

Déplacement à 4mm au dessus de la plaque (oui c'est pas haut).

  • On commence à percer à 0.
  • Un trou de 6.1 mm.
  • Par pas de 0.7 mm
  • Avec une vitesse de plongée de 203 m/min

Une page de ce wiki présente ce script : génération gcode de perçage.

Mode LASER

La CNC possède deux modes un mode normal et un mode LASER.

  • Mode normal : Durant l'usinage la broche continue à tourner pendant les déplacements rapides entre deux traveaux.
  • Mode Laser : Le laser est éteint lors des parcours rapides.

L'usage du mode Laser en usinage fait allumer la broche alors que la fraise est déja rentré dans la matière.

L'usage du mode normal en marquage (découpe) laser va faire des traits lors des déplacements.

Pour changer de mode c'est :

(Mode normal)
$32=0
(Mode laser)
$32=1

Dans mon cas le logiciel de laser (Laser GRBL) Force le paramètre à $32=1 alors que Candle ne le positionne pas à $32=0! On peut le rajouter dans la chaine d'init mais ce n'est pas la conf par défaut.