« CNC 3018 » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
mAucun résumé des modifications
 
(27 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== Sur Logiciels nécessaires ==
Une CNC c'est bien mais "toute nue" avec seulement sa micro télécommande. c'est pas l'idéal.
On trouve une liste de "ressources" chez [https://docs.sainsmart.com/article/3jgtgas880-genmitsu-3018-pro-resources Genmitsu].
=== Conception ===
Il faut d'abord faire de la conception. En 2D avec InkScape par exemple et en 3D avec [[FreeCad|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''' ([https://carbide3d.com/carbidecreate/ lien]) pour générer le gcode.
'''Beaucoup d'avertissements:'''
{| class="wikitable"
|[[Fichier:Attention.png|sans_cadre|70x70px]]
|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 [https://carbide3d.com/carbidecreate/download6 trouve ici].
Même le 6 est assez récente et pas la plus adaptée a la CNC3018. Moi j'utilise une "vielle" 1.1.7 mise a dispo par Genmitsu. Là c'est chrome qui nous pose des problèmes. Le lien lui plait pas!
http://s3.amazonaws.com/s3.image.smart/download/101-60-3018PROVER/Grblcontrol%28Candle_1.1.7%20%29.zip<nowiki/>Un wget fat le travail! vive la ligne de commande!
|}
{| class="wikitable"
|[[Fichier:Attention.png|sans_cadre|70x70px]]
|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 [[Changer les settings numériques sous Windows|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.
# Un pour traduire les fichiers Excellon (issue de [[EAGLE2PCB|EAGLE PCB]] par exemple) en une description JSON plus simple
# 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 ==
== 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.
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 ===
=== Acrylique ===
[[Fichier:Lubrifiant.png|vignette|154x154px|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.
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.


Ligne 11 : Ligne 74 :
La solution : "mets de l'huile". Oui c'est la lubrification qui nous permettra de faire un joli travail.
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 fraises ====
===== Les "grosses" =====
J'utilise des fraise HSS assez standards et elles ne s'usent pas très vites.
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 et 5mm en queue de 6.
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.
[[Fichier:Fraises standards.png|alt=https://www.amazon.fr/gp/product/B07DNJHCJS/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1|vignette|21€ le lot chez Amazon]]
{| class="wikitable"
|+
!
!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:
 
* 10 Fraises de 1mm à  11.99€ https://www.amazon.fr/dp/B082B46442?ref=ppx_yo2ov_dt_b_product_details&th=1
* 10 Fraises de 0.6 mm à 21.69€ https://www.amazon.fr/dp/B08TR6X93M?psc=1&ref=ppx_yo2ov_dt_b_product_details
 
Dans un premier temps parlons de la fraise 1mm achetée chez Amazon. Je l'ai utilisée classiquement avec le trio [[FreeCad|freecad]] + carbide + candel.
{| class="wikitable"
|+
!
!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
|}
<nowiki>*</nowiki> 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:
* Un foret C.I.F. de 0.6mm à 5,64€ https://fr.farnell.com/cif/du66/foret-carbure-0-6mm/dp/1418450
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.
 
[[Fichier:Pocket-percages.png|sans_cadre]]
 
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|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 à :
 
[[Fichier:Exemple-percage.png|sans_cadre]]
 
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)
{| class="wikitable"
|+
!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:<syntaxhighlight lang="json">
{"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}
        ]
}
</syntaxhighlight>J'utilise mon script de transformation:<syntaxhighlight lang="bash">
./json2gcode.py -test.nc test.json
</syntaxhighlight>et j'obtiens :<syntaxhighlight lang="gcode">
;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
</syntaxhighlight>Que je peux ouvrir avec candle:
 
[[Fichier:Exemple-percages-candle.png|sans_cadre]]
 
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 :<syntaxhighlight lang="python3">
zUpPosition=4.00000
zDownPosition=0.00000
zDepth=-6.1
zStep=0.7
plugeSpeed=203.0
</syntaxhighlight>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 : [[Gcode percage foret|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 :<syntaxhighlight lang="gcode">
(Mode normal)
$32=0
(Mode laser)
$32=1
</syntaxhighlight>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.
 
== Le hardware ==
[[Fichier:GRBL 1.1.png|alt= GRBL 1.1|vignette|119x119px|GRBL 1.1]]
 
=== La carte mère ===
Pour remplacer la carte mère livrée avec la CNC 3018 PRO d'origine j'ai trouvé une version améliorée:
 
* Il y a un bouton ON/OFF digne de ce nom (pas le pousseur infame de la version d'origine)
* Le bouton reset a changé de place (pas plus accessible qu'avant mais ailleurs)
* Les connecteurs "d'en bas" ne sont plus de bêtes broches espacés de 2.54 mais une série de "vrais" JST à deux voie.
* Un nouveau connecteur pour un bouton d'arrêt d'urgence est disponible (toujours en JST 2 voies)
 
[[Fichier:CarteMere3018grbl1.1.png|sans_cadre|473x473px]]
 
=== Installer une broche plus puissante que celle d'origine ===
 
=== Utiliser la sonde d'axe Z ===
 
=== Installer des "fin de courses" ===
Apres un an avec des "fin de courses" mécaniques de type microswitch.
 
[[Fichier:Switchs fin de course.png|sans_cadre|122x122px]]
 
Le fonctionnement était assez satisfaisant mais la durabilité a été mauvaise. Malgré des petits boitiers sur mesure imprimés en 3D pour les protéger ils n'ont pas duré plus de 12 mois en utilisation moyenne.
 
J'ai procédé à un remplacement par des modèles optiques.
 
[[Fichier:Fin de course optique.png|sans_cadre]]
 
 
C'est significativement le même prix (entre 1 et 2 € chacun)
 
Attention cependant ils sont assez sensibles et l'obstacle à la lumière doit être efficace. 4mm de CPE jaune ne suffit pas, il faut impérativement du noir.
 
J'ai crée des petits dispositifs imprimés en 3D pour placer ces capteurs:
 
[[Fichier:3D-stops-3018.png|sans_cadre|529x529px]]
 
On voit les supports en jaune. (sans compter les deux molettes X Y)
 
==== Le capteur de fin de course "X" ====
[[Fichier:X-stop.png|sans_cadre|420x420px]][[Fichier:EndstopX-2.png|sans_cadre|424x424px]]Une pièce fixe est fixée sur les rails profilés "X" avec deux "t-nuts". le capteur optique est fixé dessus. Un index est lui fixé sur le chariot "X" avec deux vis M2. Un perçage de 1.6 est fait dans le chariot puis fileté. le capteur et l'index peuvent être ajustés en serrant ou desserrant les vis. Le connecteur du capteur se retrouve tourné vers l'arrière.
 
==== Le capteur de fin de course "Y" ====
[[Fichier:Endstop-Y.png|sans_cadre|420x420px]][[Fichier:Endstop-Y-vue 2.png|sans_cadre|420x420px]]
 
Une pièce fixe portant le module optique est serrée sur le profilé Y. L'index est fixé sur le plateau Y (par dessous). La fixation se fait par des vis et des t-nuts toujours pour ajuster.
 
==== Le capteur de fin de course "Z" ====
C'est le plus difficile à réaliser et le plus complexe (3 pièces)
 
[[Fichier:Zstop.png|sans_cadre|421x421px]][[Fichier:Zstop-view2.png|sans_cadre|420x420px]]
 
Le support du module optique est fixé sur le chariot X avec une vis M2. Un perçage sera fait sur le chariot taraudé en M2.
 
L'index est fait de deux pièces affin qu'il soit "imprimable".
 
Sur la vue de droite on voit le détail des deux pièces. La partie rouge rentre dans la fente de serrage du support de broche. Elle permet un ajustement de quelques mm de l'index dans l'axe des Y. La pièce verte et la rouge seront collées à la cyano.
 
l'ajustement se fait toujours grâce à une vise M2 et a un taraudage dans le porte broche.
 
=== Molette de déplacement manue ===
A faire
 
== Liens utiles ==
Dans certains cas je n'ai pas encore eu le temps d'écrire "à ma façon" une page sur un sujet alors je donne des liens.
 
* Comment utiliser une CNC 3018 avec un [[Raspberry PI]] https://lebearcnc.com/preparation-dun-rapsberry-pi-4-pour-piloter-sa-cnc-avec-bcnc-et-ou-cncjs-on-vous-montre-tout/

Version actuelle datée du 29 octobre 2024 à 12:58

Sur Logiciels nécessaires

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

On trouve une liste de "ressources" chez Genmitsu.

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.

Beaucoup d'avertissements:

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.

Même le 6 est assez récente et pas la plus adaptée a la CNC3018. Moi j'utilise une "vielle" 1.1.7 mise a dispo par Genmitsu. Là c'est chrome qui nous pose des problèmes. Le lien lui plait pas! http://s3.amazonaws.com/s3.image.smart/download/101-60-3018PROVER/Grblcontrol%28Candle_1.1.7%20%29.zipUn wget fat le travail! vive la ligne de commande!

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.

Le hardware

GRBL 1.1
GRBL 1.1

La carte mère

Pour remplacer la carte mère livrée avec la CNC 3018 PRO d'origine j'ai trouvé une version améliorée:

  • Il y a un bouton ON/OFF digne de ce nom (pas le pousseur infame de la version d'origine)
  • Le bouton reset a changé de place (pas plus accessible qu'avant mais ailleurs)
  • Les connecteurs "d'en bas" ne sont plus de bêtes broches espacés de 2.54 mais une série de "vrais" JST à deux voie.
  • Un nouveau connecteur pour un bouton d'arrêt d'urgence est disponible (toujours en JST 2 voies)

CarteMere3018grbl1.1.png

Installer une broche plus puissante que celle d'origine

Utiliser la sonde d'axe Z

Installer des "fin de courses"

Apres un an avec des "fin de courses" mécaniques de type microswitch.

Switchs fin de course.png

Le fonctionnement était assez satisfaisant mais la durabilité a été mauvaise. Malgré des petits boitiers sur mesure imprimés en 3D pour les protéger ils n'ont pas duré plus de 12 mois en utilisation moyenne.

J'ai procédé à un remplacement par des modèles optiques.

Fin de course optique.png


C'est significativement le même prix (entre 1 et 2 € chacun)

Attention cependant ils sont assez sensibles et l'obstacle à la lumière doit être efficace. 4mm de CPE jaune ne suffit pas, il faut impérativement du noir.

J'ai crée des petits dispositifs imprimés en 3D pour placer ces capteurs:

3D-stops-3018.png

On voit les supports en jaune. (sans compter les deux molettes X Y)

Le capteur de fin de course "X"

X-stop.pngEndstopX-2.pngUne pièce fixe est fixée sur les rails profilés "X" avec deux "t-nuts". le capteur optique est fixé dessus. Un index est lui fixé sur le chariot "X" avec deux vis M2. Un perçage de 1.6 est fait dans le chariot puis fileté. le capteur et l'index peuvent être ajustés en serrant ou desserrant les vis. Le connecteur du capteur se retrouve tourné vers l'arrière.

Le capteur de fin de course "Y"

Endstop-Y.pngEndstop-Y-vue 2.png

Une pièce fixe portant le module optique est serrée sur le profilé Y. L'index est fixé sur le plateau Y (par dessous). La fixation se fait par des vis et des t-nuts toujours pour ajuster.

Le capteur de fin de course "Z"

C'est le plus difficile à réaliser et le plus complexe (3 pièces)

Zstop.pngZstop-view2.png

Le support du module optique est fixé sur le chariot X avec une vis M2. Un perçage sera fait sur le chariot taraudé en M2.

L'index est fait de deux pièces affin qu'il soit "imprimable".

Sur la vue de droite on voit le détail des deux pièces. La partie rouge rentre dans la fente de serrage du support de broche. Elle permet un ajustement de quelques mm de l'index dans l'axe des Y. La pièce verte et la rouge seront collées à la cyano.

l'ajustement se fait toujours grâce à une vise M2 et a un taraudage dans le porte broche.

Molette de déplacement manue

A faire

Liens utiles

Dans certains cas je n'ai pas encore eu le temps d'écrire "à ma façon" une page sur un sujet alors je donne des liens.