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:
Nr | Typ | 1.stelle | 2.Stelle | 3.Stelle | 4.Stelle |
0 | Werkzeug in Spindel | 0 | 0 | 0 | 0 |
001 | temporäre werkzeuge | 0 | 0 | Typ | Typ |
01 | Probes | 0 | 1 | Typ | Typ |
02 | Spindle | 0 | 2 | typ | typ |
03 | T-Slot | 0 | 3 | 10er | 1er |
04 | Scheibenfräser | 0 | 4 | druchmesser 10er | Durchmesser 1er |
05 | Prismenfräser | 0 | 5 | Winkel 10er | Winkel 1er |
1 | Drill | 1 | 10 | 1 | 0,1 |
2 | Spotdrill | 2 | Typ | Typ | Typ |
3 | Index | 3 | 10 | 1 | 0,1 |
4 | Endmill | 4 | 10 | 1 | 0,1 |
5 | Roughingendmill | 5 | 10 | 1 | 0,1 |
6 | Bullnose | 6 | 10 | 1 | Radius |
7 | Ball endmill | 7 | 10 | 1 | 0,1 |
8 | Formfräser | 8 | Typ | Typ | Typ |
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;
}