Migration du post-processeur POST_BASE

Avant la V11.0, nous disposions de la variable globale POST_BASE pour alléger certaines répétitions inhérentes aux post-processeurs afin de faciliter leur gestion et leur organisation. Cela a semblé créer des problèmes au fil des années, c'est pourquoi nous avons cessé de le soutenir.

Ce guide vous aidera à migrer à partir de certains des anciens post-processeurs.

Post-processeurs par défaut

Si vous n'avez apporté aucune modification à votre post-processeur, vous pouvez le retrouver dans la base de données fournie par Vectric dans la boîte de dialogue Gestion du post-processeur et simplement cliquer sur « Personnaliser » pour l'ajouter à nouveau à votre dossier My_PostP.

Pour les besoins de ce guide, nous démontrerons cela sur le post-processeur Next Wave, mais les directives présentées ici peuvent être appliquées à n'importe quel post-processeur.

La base n'a pas besoin de changer

Dans ce guide, nous verrons comment remplacer l'instruction POST_BASE. Nous n'aurons jamais à modifier le post-processeur de base (référencé dans cette instruction), mais uniquement le post-processeur contenant cette instruction. Veuillez toujours sauvegarder votre fichier en premier.

Vérifiez votre sortie

Enregistrez quelques parcours d'outils en utilisant ce nouveau message et vérifiez le résultat !

Qu'est-ce qu'un poteau de base

Dans les versions précédentes du logiciel, il était alors possible pour un post-processeur d'avoir un post-processeur de base. Le post-processeur de base contenait des sections communes. Ensuite, n'importe quel autre post-processeur pourrait prendre ce post-processeur comme point de départ, écrasant les bits dont il avait besoin. Dans ce cas on dirait que ce nouveau post-processeur a hérité du post-processeur de base.

Résumé de la migration

En supposant un post-processeur Next_Wave_CNC_mm.pp qui hérite des post-processeurs Next_Wave_CNC.pp :

La syntaxe d'une instruction POST_BASE typique est POST_BASE = "Next_Wave_CNC.pp"

Puisque cela n'est plus pris en charge, nous devrons remplacer cette instruction par le contenu de Next_Wave_CNC.pp, supprimant toute duplication du contenu copié.

Exemple étape par étape

Encore une fois, en supposant que les post-processeurs Next Wave

Suivant_Wave_CNC.pp

Nous avons Next_Wave_CNC.pp (post-processeur en pouces) avec le contenu contenant les éléments suivants,


POST_NAME = "Next Wave CNC (inch)(*.tap)"
FILE_EXTENSION = "tap"
UNITS = "INCHES"
DIRECT_OUTPUT = ""
SUBSTITUTE = "({)}"
LASER_SUPPORT = "YES"
+------------------------------------------------
+ Line terminating characters
+------------------------------------------------
LINE_ENDING = "[13][10]"
+------------------------------------------------
+ Block numbering
+------------------------------------------------
LINE_NUMBER_START = 0
LINE_NUMBER_INCREMENT = 10
LINE_NUMBER_MAXIMUM = 999999
+================================================
+
+ Formating for variables
+
+================================================
VAR LINE_NUMBER = [N|A|N|1.0]
VAR POWER = [P|A| S|1.0|10]
VAR SPINDLE_SPEED = [S|A|S|1.0]
VAR CUT_RATE = [FC|A|F|1.1]
VAR PLUNGE_RATE = [FP|A|F|1.1]
VAR X_POSITION = [X|A| X|1.4]
VAR Y_POSITION = [Y|A| Y|1.4]
VAR Z_POSITION = [Z|A| Z|1.4]
VAR ARC_CENTRE_I_INC_POSITION = [I|A| I|1.4]
VAR ARC_CENTRE_J_INC_POSITION = [J|A| J|1.4]
VAR X_HOME_POSITION = [XH|A| X|1.4]
VAR Y_HOME_POSITION = [YH|A| Y|1.4]
VAR Z_HOME_POSITION = [ZH|A| Z|1.4]
VAR DWELL_TIME = [DWELL|A|P|1.2]
+================================================
+
+ Block definitions for toolpath output
+
+================================================
+---------------------------------------------------
+ Commands output at the start of the file
+---------------------------------------------------
begin HEADER
"( [TP_FILENAME] )"
"( File created: [DATE] - [TIME])"
"( for Next Wave Automation from Vectric )"
"( Material Size)"
"( X= [XLENGTH], Y= [YLENGTH], Z= [ZLENGTH])"
"( Z Origin for Material = [Z_ORIGIN])"
"( XY Origin for Material = [XY_ORIGIN])"
"( XY Origin Position = X:[X_ORIGIN_POS], Y:[Y_ORIGIN_POS])"
"( Home Position)"
"( X = [XH] Y = [YH] Z = [ZH])"
"( Safe Z = [SAFEZ])"
"([FILE_NOTES])"
"(Toolpaths used in this file:)"
"([TOOLPATHS_OUTPUT])"
"(Tool used in this file: )"
"([TOOLS_USED])"
"([TOOLNAME])"
"(|---------------------------------------)"
"(| Toolpath:- '[TOOLPATH_NAME]' )"
"(|---------------------------------------)"
"G90"
"G20"
"[FC]"

Suivant_Wave_CNC_mm.pp

Nous avons aussi Next_Wave_CNC_mm.pp qui en hérite comme


POST_NAME = "Next Wave CNC (mm)(*.tap)"
POST_BASE = "Next_Wave_CNC.pp"
UNITS = "MM"
LASER_SUPPORT = "YES"
+================================================
+
+ Formating for variables
+
+================================================
VAR LINE_NUMBER = [N|A|N|1.0]
VAR POWER = [P|A| S|1.0|10]
VAR SPINDLE_SPEED = [S|A|S|1.0]
VAR CUT_RATE = [FC|A|F|1.1]
VAR PLUNGE_RATE = [FP|A|F|1.1]
VAR X_POSITION = [X|A| X|1.3]
VAR Y_POSITION = [Y|A| Y|1.3]
VAR Z_POSITION = [Z|A| Z|1.3]
VAR ARC_CENTRE_I_INC_POSITION = [I|A| I|1.3]
VAR ARC_CENTRE_J_INC_POSITION = [J|A| J|1.3]
VAR X_HOME_POSITION = [XH|A| X|1.3]
VAR Y_HOME_POSITION = [YH|A| Y|1.3]
VAR Z_HOME_POSITION = [ZH|A| Z|1.3]
VAR DWELL_TIME = [DWELL|A|P|1.2]
+================================================
+
+ Block definitions for toolpath output
+
+================================================
+---------------------------------------------------
+ Commands output at the start of the file
+---------------------------------------------------
begin HEADER
"( [TP_FILENAME] )"
"( File created: [DATE] - [TIME])"
"( for Next Wave Automation from Vectric )"
"( Material Size)"
"( X= [XLENGTH], Y= [YLENGTH], Z= [ZLENGTH])"
"( Z Origin for Material = [Z_ORIGIN])"
"( XY Origin for Material = [XY_ORIGIN])"
"( XY Origin Position = X:[X_ORIGIN_POS], Y:[Y_ORIGIN_POS])"
"( Home Position)"
"( X = [XH] Y = [YH] Z = [ZH])"
"( Safe Z = [SAFEZ])"
"([FILE_NOTES])"
"(Toolpaths used in this file:)"
"([TOOLPATHS_OUTPUT])"
"(Tool used in this file: )"
"([TOOLS_USED])"
"([TOOLNAME])"
"(|---------------------------------------)"
"(| Toolpath:- '[TOOLPATH_NAME]' )"
"(|---------------------------------------)"
"G90"
"G21"
"[FC]"

Résumé des modifications

Nous aimerions changer le contenu de Next_Wave_CNC_mm.pp de telle sorte qu'il n'ait pas POST_BASE et ne dépende pas du contenu de Next_Wave_CNC.pp.

Vous remarquerez que Next_Wave_CNC_mm.pp a modifié les éléments suivants :

  1. POST_NAME
  2. UNITS
  3. LASER_SUPPORT
  4. Diverses variables
  5. La rubrique HEADER

Nous devons nous assurer que ces choses restent les mêmes dans le nouveau Next_Wave_CNC_mm.pp.

Pas

Cela servira d’ensemble d’étapes approximatives sur la façon d’aborder ce problème.

  1. Créez un nouveau fichier vide (appelé Next_Wave_CNC_mm_2.pp, par exemple) et copiez-y le contenu de Next_Wave_CNC.pp.
  2. Parcourez l'ancien post-processeur héritant (Next_Wave_CNC_mm.pp) et copiez/remplacez les variables et les sections.
  3. Par exemple, remplacez POST_NAME, UNITS et LASER_SUPPORT

Les débuts du nouveau post-processeur devraient ressembler à ceci

POST_NAME = "Next Wave CNC (mm)(*.tap)"
FILE_EXTENSION = "tap"
UNITS = "MM"
DIRECT_OUTPUT = ""
SUBSTITUTE = "({)}"
LASER_SUPPORT = "YES"

Continuez et remplacez/ajoutez les variables (en commençant par VAR).

Remplacez la section de début HEADER.

Vérifiez le résultat

Différez le contenu de Next_Wave_CNC.pp et Next_Wave_CNC_mm_2.pp et vous devriez voir que les différences sont essentiellement le contenu de Next_Wave_CNC_mm.pp.

Supprimez Next_Wave_CNC_mm.pp et renommez Next_Wave_CNC_mm_2.pp en Next_Wave_CNC_mm.pp.

Vérifiez votre sortie

Enregistrez quelques parcours d'outils en utilisant ce nouveau message et vérifiez le résultat !