Programming Haas CNC Control G-Codes and M-Codes
CNCCookbook’s G-Code Tutorial
Haas fabrique certaines des machines CNC les plus populaires au monde, donc savoir comment utiliser leurs codes g uniques peut être une compétence importante. La bonne nouvelle est que Haas a adopté l’une des approches les plus intelligentes auxquelles je peux penser en créant leur dialecte de code g unique.
Haas : Stratégie intelligente quand il s’agit de leur dialecte de code G CNC…
Ils ont commencé avec le dialecte le plus populaire au monde, Fanuc (ce dont la majeure partie de ce cours est concernée) et ont construit par-dessus tout en maintenant la compatibilité. Ils n’ont pas fait de changements arbitraires et ils ont largement ajouté de la bonne valeur et de la commodité.
C’est une stratégie intelligente car cela signifie que la plupart du g-code Fanuc fonctionnera simplement sur un Haas, mais ils ont encore de grands avantages à parler en raison des codes spéciaux qu’ils ont ajoutés. Cela signifie également que le vaste cadre de personnes qui connaissent la programmation du code g Fanuc est prêt à être productif dès le premier jour sur les machines Haas, et qu’ils peuvent ramasser les choses que Haas a ajoutées au fur et à mesure qu’ils en ont besoin.
Cet article porte sur le ramassage de ces choses aujourd’hui, alors commençons.
Quels sont les codes G de Haas pour les moulins ?
Voici un aperçu rapide :
- G12/13 : Poches circulaires
- G51 : Mise à l’échelle
- G53 : Système de coordonnées non modales de la machine
- G68 : Rotation
- G101 : Image miroir
- G150 : Fraisage de poche à usage général
Maintenant, passons en revue et décomposons chacun d’entre eux pour voir comment il fonctionne.
G12 & G13 Codes G : Poches circulaires
L’interpolation circulaire ou interpolation hélicoïdale est quelque chose que nous voyons souvent dans la programmation CNC. C’est un cas où une fraise est programmée pour suivre une trajectoire circulaire ou hélicoïdale afin de réaliser un trou beaucoup plus grand que le diamètre de la fraise.
Ces codes g spéciaux Haas facilitent la réalisation de l’opération. G12 coupe dans le sens des aiguilles d’une montre tandis que G13 coupe dans le sens inverse des aiguilles d’une montre. Voici les mots que vous utiliserez pour créer la poche :
D* : Rayon ou diamètre de l’outil. Si vous utilisez D00, cela indique à la Haas de ne pas utiliser la compensation de l’outil de coupe. Le mot D est modal, donc si aucun n’est spécifié, la dernière valeur de D sera utilisée.
F : Vitesse d’avance
I : Radis du premier cercle (ou finition si pas de K). I doit être supérieur au rayon de l’outil mais inférieur à K.
K* : Rayon du cercle fini.
L* : Nombre de boucles pour répéter des coupes plus profondes.
Q* : Incrémentation du rayon ou passage à l’étape supérieure. A utiliser avec K.
Z : Profondeur de coupe ou incrément
* = Le mot est facultatif et peut être omis.
Pour utiliser ces g-codes, commencez par positionner l’outil au-dessus du centre du cercle. Vous avez le choix : vous pouvez soit enlever tout le matériau à l’intérieur du cercle, soit couper uniquement le rayon du cercle. Si vous souhaitez uniquement couper le rayon, utilisez une valeur I définie sur le rayon et ne spécifiez pas de valeur K ou Q. Si vous voulez enlever tout le matériau, utilisez des valeurs I et Q inférieures au diamètre de l’outil et une valeur K égale au rayon du cercle.
Voici un exemple de programme qui coupe juste le rayon :
%
(SAMPLE G12)
T1 M06 (Sélection de l’outil 1) ;
G00 G90 G40 G49 G54 (Démarrage sécurisé) ;
G00 X0 Y0 (Rapide à la 1ère position) ;
S1000 M03 (Broche sur CW) ;
G43 H01 Z0.1 (Décalage d’outil 1 activé) ;
M08 (Arrosage activé) ;
( Découpe du cercle ) ;
G12 I0.75 F10. Z-1.2 D01 (Finition de la poche CW) ;
G00 Z0.1 (Retrait) ;
G00 Z0.1 M09 (Retrait rapide, arrosage éteint) ;
G53 G49 Z0 M05 (Z home, Spindle off) ;
G53 Y0 (Y home) ;
M30 (End program) ;
%
Et voici un tracé arrière dans G-Wizard Editor du parcours d’outil de ce programme :
G12 réglé pour une coupe de style rayon…
G51 G-Code : Mise à l’échelle
La mise à l’échelle G51 est disponible sur les commandes Fanuc, mais Haas le fait de manière légèrement différente. Voici la syntaxe Haas:
G51 X_ Y_ Z_ P_
X, Y et Z vous permettent de spécifier un centre optionnel pour la mise à l’échelle. S’ils sont absents, le centre est l’origine (partie zéro). P est le facteur de mise à l’échelle. Si aucun P n’est spécifié, le paramètre 71 est le facteur d’échelle par défaut.
Notez que la mise à l’échelle est une fonctionnalité optionnelle à coût supplémentaire sur les commandes Haas.
La mise à l’échelle est pratique pour de nombreux usages, et notre chapitre sur la mise à l’échelle a plus de détails à ce sujet.
G53 G-Code : Système de coordonnées machine non-modal
G53 vous permet d’annuler le système de coordonnées de travail pour un bloc. En d’autres termes, il est non-modal. Vous devez l’utiliser avec G49 si vous avez une valeur Z car G49 annule le décalage de l’outil.
Par exemple:
G53 Y0
Ce g-code déplacera la table à la machine zéro en Y. G53 est surtout un raccourci par rapport à dire G28.
Par exemple:
G28 G91 Z0
Maintenant vous devez vous rappeler d’ajouter un G90. Avec G53, G90 reste en vigueur.
G68 G-Code : Rotation
Comme la mise à l’échelle, la rotation est également disponible sur Fanuc, mais elle est légèrement différente sur Haas. C’est également une option à coût supplémentaire pour activer la rotation.
G68 fait pivoter les valeurs X, Y, Z, I, J et K subséquentes d’un angle spécifié avec un centre de rotation. G69 annule la rotation G68.
Avant d’utiliser la rotation, assurez-vous que le plan de rotation est spécifié par G17, G18 ou G19.
Voici la syntaxe pour G68
G68 a_ b_ R
a est la coordonnée pour le centre de rotation du premier axe du plan que vous avez spécifié. Ainsi, pour G17, c’est X. b est la coordonnée du centre de rotation du deuxième axe. Pour G17, c’est Y.
R spécifie l’angle de rotation en degrés. Vous pouvez utiliser des valeurs de 360 à -360.
G101 G-Code : Image miroir
G101 peut être utilisé pour produire une image miroir d’une séquence de codes autour d’un axe X, Y, Z, A ou B.
Voici la syntaxe:
G101 X_ Y_ Z_ A_ B_
Vous devez spécifier au moins un axe. Toute valeur donnée avec le mot axe est ignorée, mais vous avez besoin de la valeur pour éviter une alarme.
Utilisez G100 pour annuler les images miroir.
G150 Code G : Fraisage de poche à usage général
G150 est un code G très fantaisiste et très pratique. Pensez-y comme l’équivalent du cycle G71 d’un tour CNC pour le fraisage. En substance, c’est un mini-programme CAM dans un code g.
Ce qu’il fait, c’est vous laisser spécifier le contour d’une poche comme un petit programme de code g. G150 va effacer cette poche.
Voici la syntaxe:
G150 G41* P_ F_ D_ I_ J_ K_ Q_ R_ X_ Y_ Z_ L_ S_
Et voici ce que font les paramètres:
- P : Le numéro du sous-programme qui spécifie le contour de la poche. Requis!
- F : Vitesse d’avance
- D : Sélection du décalage du diamètre de l’outil.
- I : Incrément de coupe sur l’axe X. Chaque passe enlève cette quantité de matière. Vous devez spécifier I ou J mais vous ne pouvez pas spécifier les deux.
- J : Incrément de coupe sur l’axe Y.
- K : Surépaisseur de coupe de finition pour la dernière passe.
- Q : Profondeur de coupe incrémentale sur l’axe Z par passe. Must peut être égal à 0 et est obligatoire. Q est un montant incrémental positif de réduction.
- R : position du plan R (obligatoire). C’est le plan de retrait pour le mouvement rapide.
- X et Y : Position du trou de départ.
- Z : Profondeur finale de la poche
- L : Nombre de répétitions en option pour les poches supplémentaires.
- S : Vitesse de broche optionnelle
La comp de coupe G41 est normalement spécifiée, mais vous pouvez également utiliser G42 si vous préférez.
La première chose à noter est que G150 s’attend à ce qu’il y ait un trou pour la profondeur de poche complète qu’il peut utiliser pour faire descendre l’endmil à la profondeur de coupe à chaque passage. Vous pouvez percer ou interpoler ce trou, mais cela doit être fait avant d’appeler G150.
Deuxièmement, votre définition de poche, à laquelle se réfère le mot P, doit être un sous-programme, et non un sous-programme.
En dernier lieu, le sous-programme doit avoir moins de 40 coups. Vous pouvez contourner cela en coupant plus d’une poche.
Autres choses à noter:
- Les codes autres que G, I, R, X et Y dans le sous-programme sont ignorés.
- Le premier mouvement dans le sous-programme doit être du trou à un point sur le bord de la poche.
- Le dernier mouvement doit être à ce même point de départ sur le bord de la poche.
- C’est correct d’utiliser des déplacements G91 (incrémentaux) ou G90 (absolus) dans le sous-programme.
- Il n’y a pas de passe de finition en profondeur Z, c’est seulement sur les parois de la poche.
- Si vous utilisez L pour répéter les poches, vous devez avoir un positionnement G91 et incrémental dans la ligne G150. Assurez-vous d’avoir percé tous les trous d’entrée de la poche au préalable !
Le code g de G150 est assez astucieux, mais en fin de compte, le logiciel de FAO rend la programmation des poches plus facile et moins sujette aux erreurs. Gardez G150 pour des poches simplement programmées et visualisées.