CNC Percages gcode

De knowledge
Aller à la navigation Aller à la recherche

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.