Adaptation d'un post-processeur pour les lasers
Introduction
Le module laser permet à la fois de nouveaux types d'outils de représenter les lasers dans la base de données d'outils, ainsi que de nouvelles stratégies spécifiques au laser.
Le module laser fournit désormais des enregistrements et des variables indépendants pour les outils laser et les parcours d'outils. Étant donné que ces sorties ont été séparées du contrôle conventionnel du routeur, pour la plupart des machines et des contrôleurs, il est souvent possible de créer un seul post-processeur pour fonctionner de manière transparente avec les parcours d'outils du routeur ou du laser, mais veuillez noter que vous devrez peut-être toujours vous assurer que la configuration physique de votre machine est modifiée en fonction du type de parcours d'outil.
Les post-processeurs précédents ne fonctionneront pas correctement avec le module laser
Veuillez noter que de nombreux fabricants de kits de conversion fournissaient des post-processeurs Vectric avant la sortie du module laser. Ceux-ci utilisaient des solutions de contournement pour permettre à certaines stratégies de parcours d'outil de routeur, telles que le profilage, d'être utilisées avec une tête laser. Les post-processeurs créés sans prise en charge explicite des fonctionnalités supplémentaires documentées ici ne fonctionneront pas correctement.
Il y a généralement 4 zones qui doivent être modifiées dans un post-processeur conventionnel pour l'étendre à la prise en charge du parcours d'outil laser.
- Ajoutez la prise en charge d'une nouvelle variable
Power
, qui sera utilisée par les nouvelles stratégies laser. - Ajoutez de nouveaux blocs de post-processeur spécifiques au laser pour formater correctement les parcours d'outils laser pour votre machine et votre contrôleur.
- Modifiez tous les blocs de post-processeur existants pour garantir une alimentation indépendante et un comportement spécifique au laser.
- Ajoutez un indicateur pour indiquer au logiciel de Vectric que cet article prend désormais en charge les stratégies de parcours d'outil laser.
Les sections suivantes traitent chaque domaine tour à tour et un exemple utilisant le contrôleur gcode GRBL est fourni. Ces exemples proviennent du post-processeur grbl (mm & pouces) fourni par défaut avec le logiciel Vectric.
Puissance variable
Le logiciel de Vectric produira le réglage de puissance pour un parcours d'outil laser dans la plage de 1 à 100 %. Nous devons ajouter une nouvelle variable pour montrer comment formater ce paramètre pour votre contrôleur particulier. C'est également l'occasion d'adapter la valeur brute du pourcentage à la plage numérique requise par votre contrôleur.
Exemple
Pour les contrôleurs basés sur GRBL, le réglage de puissance d'un laser est généralement associé à la commande de contrôle de vitesse de broche gcode « S ». En mode laser, le contrôleur répondra à un changement de commande de vitesse de broche en ajustant la puissance du laser. Bien qu'il puisse être défini dans le contrôleur, le paramètre par défaut pour la valeur « S » maximale attendue - ou puissance laser - est de 1 000.
Pour GRBL, nous devons donc formater la variable POWER pour qu'elle soit une commande gcode 'S' et mettre à l'échelle sa valeur de sortie d'un facteur dix afin qu'elle soit comprise entre 1 et 1 000 (au lieu de la valeur par défaut de 1 à 100). .
L'entrée de variable dans le post-processeur se lit :
VAR POWER = [P|C|S|1.0|10.0]
Pour décomposer cette entrée en anglais simple, nous disons que la sortie POWER de notre parcours d'outil doit être utilisée partout dans notre fichier de post-définition ultérieur où nous avons la variable [P]. Mais nous ne devrions émettre une commande que lorsque la valeur POWER change (C). Nous remplacerons les emplacements des variables [P] dans notre sortie de parcours d'outil par la commande 'S' (S). La valeur de puissance doit être formatée sous forme de nombre entier sans virgule décimale (1,0) et doit être multipliée par défaut par un facteur de 10.
Nouveaux blocs de post-processeur laser
Pour permettre le contrôle du laser, de nouveaux blocs post-processeur sont disponibles dans le post-processeur. Ceux-ci sont:
JET_TOOL_ON
- Sortie chaque fois que le parcours d'outil nécessite que le laser soit activéJET_TOOL_POWER
- Sortie chaque fois que le parcours d'outil a besoin que la puissance laser changeJET_TOOL_OFF
- Sortie chaque fois que le parcours d'outil nécessite d'éteindre le laser
Exemple
Dans notre exemple GRBL, nous avons ajouté les 3 nouveaux types de blocs. Pour allumer le laser, GRBL utilise la commande gcode M4 (normalement destinée à la direction de la broche, mais « réutilisée » par GRBL pour la prise en charge du laser). Nous pouvons maintenant utiliser notre variable POWER, définie ci-dessus comme [P], pour fournir la valeur de puissance requise. Le bloc JET_TOOL_ON
est donc :
+---------------------------------------------------
+ Commands output when the jet is turned on
+---------------------------------------------------
begin JET_TOOL_ON
"M4[P]"
Pour éteindre le laser, GRBL utilise la commande gcode M5 :
+---------------------------------------------------
+ Commands output when the jet is turned off
+---------------------------------------------------
begin JET_TOOL_OFF
"M5"
Enfin, pour régler la puissance elle-même, pour GRBL, nous produisons simplement la puissance :
+---------------------------------------------------
+ Commands output when the jet power is changed
+---------------------------------------------------
begin JET_TOOL_POWER
"[P]"
Modifier les blocs existants
Nous voulons également que lorsque nous effectuons un mouvement d'alimentation, nous produisons également de la puissance, donc pour ce faire, nous mettons à jour les blocs FEED_MOVE
pour inclure [P].
Nous devons le faire pour tous des différents types de mouvements de flux.
De plus, nous devons éviter les mouvements de plongée lorsque le laser est allumé. Pour le fraisage ou le routage conventionnel, nous avons besoin que la broche soit allumée avant un mouvement de plongée, mais pour un laser, il est crucial de l'allumer seulement après nous nous sommes déplacés au bon niveau Z (ce problème se manifeste par ' overburn' au début de chaque segment de parcours d'outil). Pour nous assurer que nous pouvons séparer correctement ces exigences, nous devrons peut-être supprimer toutes les commandes de broche des mouvements de plongée ou d'autres types de blocs (certains peuvent les avoir dans l'en-tête, par exemple) et les diviser en SPINDLE_ON
& explicites. PLUNGE_MOVE
blocs. Cela garantira que ces mouvements sont effectués uniquement pour des stratégies de parcours d'outil non laser et dans le bon ordre.
Exemple
Pour GRBL, il s'agit d'un simple ajout à la fin de l'instruction feed move :
+---------------------------------------------------
+ Commands output for feed rate moves
+---------------------------------------------------
begin FEED_MOVE
"G1[X][Y][Z][P]"
N'oubliez pas que nous avons défini notre variable POWER sur une sortie uniquement en cas de changement (C). Notez donc que dans la sortie pour les mouvements d'alimentation à puissance constante, seule une commande de puissance initiale, changeante, sera incluse. Pour certains contrôleurs, le nombre de commandes pouvant être traitées est un facteur limitant la vitesse du parcours d'outil et pour les images laser, en particulier, cela peut être quelque peu atténué en pas envoyant des commandes inutiles chaque fois que cela est possible.
Pour la broche GRBL séparée et la commande de plongée, les blocs sont :
+---------------------------------------------------
+ Command output after the header to switch spindle on
+---------------------------------------------------
begin SPINDLE_ON
"[S]M3"
+---------------------------------------------------
+ Commands output for the plunge move
+---------------------------------------------------
begin PLUNGE_MOVE
"G1[X][Y][Z][F]"
Vous remarquerez que GRBL utilise le M3 pour contrôler le routeur ou le broyeur. Notez également que le mouvement de plongée nécessite la capacité de déplacer la machine en X et Y afin de prendre en charge la rampe.
Marquer explicitement le post-processeur comme compatible laser
Enfin, un post-processeur nécessitera l'ajout de la nouvelle déclaration de fichier global LASER_SUPPORT="YES" pour être disponible pour la sélection en tant que post-processeur laser dans le logiciel.
Ceci n'est ajouté aux post-processeurs pour un usage général qu'une fois que le post-processeur a reçu des tests complets par le créateur.
Exemple
LASER_SUPPORT = "YES"