Hi,
i have noticed that if i use multiple WCS offsets (each has a different C axis position/rotation on round table in machine) and I use same tool on them where i order it by operation (to reduce the number of rotation (example B-45 C0 i want that he makes milling on all 3 WCS offsets g54,55,56 in that rotation and then turn C90 and do it again on all three WCS)) PP will not output cycle 800 or G0 B? C? for other WCS offsets then first (g54). How can i fix this to force him to call rotation for every WCS separetly?
TIA
We are working on a fix for siemens post this will get fixed there but time being to fix this issues you can make changes to the setWCS function to resolve this problem
Edit the post in any editor and find for following code
function setWCS(section) {
if (section.workOffset != currentWorkOffset) {
writeBlock(section.wcs);
currentWorkOffset = section.workOffset;
}
}
And modify it like below
function setWCS(section) {
if (section.workOffset != currentWorkOffset) {
if (!is3D() && useMultiAxisFeatures && !section.getId() == 0 && !isToolChangeNeeded(getProperty("toolAsName") ? "description" : "number")) {
writeBlock("CYCLE800()");
forceWorkPlane();
}
writeBlock(section.wcs);
currentWorkOffset = section.workOffset;
}
}
save the post and test it. you should able to get the expected output
Hi,
it posts now NC code correctly if I use cycle 800. If not he is not calling B0 C0 on other offset then first (I have 2m table in X with C round table D800. So i sometimes work only with coordinate rotation on fix part of table.) I am not sure will the machine read it correctly with cycle 800 ticked. I need to test it tomorrow on machine.
Thanks
Hi,
I managed to finally test it. Given solution works perfectly with cycle 800. Thanks a lot for that input.
On the other hand when I want to work only with coordinate rotation on machine, no cycle 800 active
(when it is active machine does not use coordinate rotation) and multiple WCS with same tool it does not output G0 B0 C0 after WCS call for any other WCS then first. See picture above.
Modify the setWCS logic to something like this
function setWCS(section) {
if (section.workOffset != currentWorkOffset) {
if (!is3D() && !section.getId() == 0 && !isToolChangeNeeded(getProperty("toolAsName") ? "description" : "number")) {
if (useMultiAxisFeatures) {
writeBlock("CYCLE800()");
}
forceWorkPlane();
}
writeBlock(section.wcs);
currentWorkOffset = section.workOffset;
}
}
Can't find what you're looking for? Ask the community or share your knowledge.