Im vergleich zu den Anpassungen am Postprozessor für die alte Sinumerik muss hier nur wenig geändert werden, da wir bereits einen sicheren Werkzeugwechsel haben. Aber ich wollte auch hier die Möglichkeit haben die Tischseite vorgeben zu können. Außerdem hatte ich den Effekt das bei hohen Vorschüben LinuxCNC dazu neigte den Vorschub über die Genauigkeit zu stellen, also wollte ich die zusätzlichen Toleranzen setzten daher habe ich drei Zeilen in den // user-defined properties ergänzt:

indexTable: 3, //Side of index table under Spindle 3 if no change
useG61orG64: true,// use G64 or G61 for tolerance control
G64tolerance: 0.005, //G64 Tolenace uses G61 if 0

Dann mussten das ganze noch umgesetzt werden. Dazu habe ich dann am Ende von function onOpen() noch den dazugehörigen Code ergänzt

//custom codes for Igor
 //index Table
 if(properties.indexTable == 1)
 {
 writeBlock(mFormat.format(31));
 }
 else if(properties.indexTable == 2)
 {
 writeBlock(mFormat.format(32));
 }
 //end index table
 //begin tolecrance control 
 if(properties.useG61orG64 == true)
  {if(properties.G64tolerance == 0)
   {
      writeBlock(gFormat.format(61)); // G61
   }
   else
   {
      writeBlock(gFormat.format(64), "P" + properties.G64tolerance ); // G64 PQ
   }}
//end tolerance control

Ein zweiter Punkt sind meine Werkzeugnummern. Ich verwende vierstellige Werkzeugnummern. Die erst Stelle steht für den Typ und die drei folgenden stellen sind der Durchmesser in 1/10” mm. Also ein Bohrer mit 10,5mm Durchmesser wäre 1105 verschieden die Wahrscheinlichkeit, dass ich zwei gleiche Werkzeuge mit unterschiedlichen Längen in einem Programm brauche sind im Hobbyeinsatz eher gering. Und 10-99 wären dafür noch frei:

NrTyp1.stelle2.Stelle3.Stelle4.Stelle
0Werkzeug in Spindel0000
001temporäre werkzeuge00TypTyp
01Probes01TypTyp
02Spindle02typtyp
03T-Slot0310er1er
04Scheibenfräser04druchmesser 10erDurchmesser 1er
05Prismenfräser05Winkel 10erWinkel 1er
1Drill11010,1
2Spotdrill2TypTypTyp
3Index31010,1
4Endmill41010,1
5Roughingendmill51010,1
6Bullnose6101Radius
7Ball endmill71010,1
8Formfräser8TypTypTyp

Der Standard-Post für LinuxCNC unterstützt keine 9999 Werkzeuge, daher mussten hier zwei Zeilen angepasst werden:

if (tool.number > 9999) {
warning(localize("Tool number exceeds maximum value."));
}

und

if (lengthOffset > 9999) {
error(localize("Length offset out of range."));
return;
}