Hi,
I'm using Fanuc (for Robodrill) postprocessor on my F360 (but this probably will be the same in others as the tool list generating code is basically the same).
I have some tools that I use on a couple of T sockets (let's say it's T9 and T10).
I can use them without problems with manual tool change (I've added the manual tool change generation in the postprocessor), and that works great.
But the thing is that only one set of tools is added to the tool list generated by the postprocessor in the nc file.
I've been looking at this part of the postprocessor for about half an hour now:
var tools = getToolTable();
if (tools.getNumberOfTools() > 0) {
for (var i = 0; i < tools.getNumberOfTools(); ++i) {
var tool = tools.getTool(i);
if (tool.manualToolChange) {
writeComment("reczna wymiana narzedzia");
}
writeComment("T" + toolFormat.format(tool.number) + " - DH" + toolFormat.format(tool.lengthOffset));
writeComment(tool.comment);
var comment = "D=" + xyzFormat.format(tool.diameter) + "mm"
if (zRanges[tool.number]) {
comment += " - ZMIN=" + xyzFormat.format(zRanges[tool.number].getMinimum());
}
writeComment(comment);
var toolType = getToolTypeName(tool.type);
switch (toolType) {
case "flat end mill":
comment = "frez walcowy";
break;
case "drill":
comment = "wiertlo";
break;
case "chamfer mill":
comment = "fazownik";
break;
case "spot drill":
comment = "nawiertak";
break;
case "face mill":
comment = "glowica planujaca";
break;
case "right hand tap":
comment = "gwintownik prawoskretny";
break;
case "left hand tap":
comment = "gwintownik lewoskretny";
break;
default:
comment = getToolTypeName(tool.type);
}
writeComment(comment);
if (tool.cornerRadius > 0) {
writeComment("promien naroza=" + xyzFormat.format(tool.cornerRadius));
}
if ((tool.taperAngle > 0) && (tool.taperAngle < Math.PI)) {
writeComment("kat wierzcholkowy=" + taperFormat.format(tool.taperAngle));
}
writeBlock(" ");
}
}
writeComment("=============================");
writeBlock(" ");
}
(Yes this is "a bit" modified from the original, but the main loop is original)
As far as I understand this there is no conditional in this code that would skip outputting info for a tool if it was allready printed, even if it has the same T socket number. As long as "tools.getNumberOfTools()" outputs the total number of tools and not number of unique T sockets used everything should be fine.
This is what the generated tool list looks like now (using above code):
(=============================)
(LISTA NARZEDZI)
(RECZNA WYMIANA NARZEDZIA)
(T9 - DH30)
(HSS-8,5-YG1-ST2)
(D=8.5MM - ZMIN=-32.26)
(WIERTLO)
(KAT WIERZCHOLKOWY=135)
(RECZNA WYMIANA NARZEDZIA)
(T10 - DH40)
(GW-M10-YG1-ST2)
(D=10.MM - ZMIN=-28.5)
(GWINTOWNIK PRAWOSKRETNY)
(T11 - DH11)
(FAZ-20-SAU-ST2)
(D=20.MM - ZMIN=-4.1)
(FAZOWNIK)
(KAT WIERZCHOLKOWY=45)
(T14 - DH14)
(NAW-8-YG1-ST2)
(D=8.MM - ZMIN=-0.5)
(NAWIERTAK)
(KAT WIERZCHOLKOWY=142)
(=============================)
And this is how it should look like while generated from the same program:
(=============================)
(LISTA NARZEDZI)
(RECZNA WYMIANA NARZEDZIA)
(T9 - DH30)
(HSS-8,5-YG1-ST2)
(D=8.5MM - ZMIN=-32.26)
(WIERTLO)
(KAT WIERZCHOLKOWY=135)
(RECZNA WYMIANA NARZEDZIA)
(T9 - DH28)
(HSS-6,8-YG1-ST2)
(D=6.8MM - ZMIN=-25.158)
(WIERTLO)
(KAT WIERZCHOLKOWY=135)
(RECZNA WYMIANA NARZEDZIA)
(T10 - DH40)
(GW-M10-YG1-ST2)
(D=10.MM - ZMIN=-28.5)
(GWINTOWNIK PRAWOSKRETNY)
(RECZNA WYMIANA NARZEDZIA)
(T10 - DH38)
(GW-M8-YG1-ST2)
(D=8.MM - ZMIN=-21.75)
(GWINTOWNIK PRAWOSKRETNY)
(T11 - DH11)
(FAZ-20-SAU-ST2)
(D=20.MM - ZMIN=-4.1)
(FAZOWNIK)
(KAT WIERZCHOLKOWY=45)
(T14 - DH14)
(NAW-8-YG1-ST2)
(D=8.MM - ZMIN=-0.5)
(NAWIERTAK)
(KAT WIERZCHOLKOWY=142)
(=============================)
What can I change in the postprocessor to get the proper (full) tool list generated?
Hi I am not saying I definitely will be able to help but attaching your post processor and a fusion file with the tool changes in that you are after will definitely increase the amount of people that will take a look.
Again if you can attach those 2 I will take a look but post editing is not my forte.
Any help is welcome.
I allready managed to confirm that the "tools.getNumberOfTools()" (by printing it's output to the nc file) is in fact holding value of 4 tools instead of 6 for my program. So if the "getToolTable()" is not returning the whole tool list, but just the list with tools with unique T sockets than nothing will work, well maybe using different function to "getToolTable()" for getting tool list (if it even exists).
Attached are the test model with the test setup I used, used postprocessor, and resulting nc file I've got from using my postprocessor.
I had one of our post GODS look at this. They have got it to work, effectively building a new tool table in the post based on tool number, diameter offset and length offset. Rather than just tool number alone.
The edits should only effect the list at the top, but as always please be cautious when running new NC code.
I was to quick to accept this as a solution.
The list is fine, except that it provides the same z-min values for tools using the same T-socket.
Can't find what you're looking for? Ask the community or share your knowledge.