I've put a bit of work into this post to get it actually function properly.
It needs just a few more tweaks to get it to the point where I don't have to hand edit code every time. One of which is getting it to output the current C position when running a Canned Cycle radially.
OSP300L requires a C position be called on the cycle line.
The current code looks like this:
(DRILL3) G138 G0 X25. Z10. M146 G94 G19 M110 M147 N1 T070707 SB=4500 M13 M8 M146 G0 C0. G0 Z-0.1481 X2.1 Y0. G180 G0 X1.7 G181 X0.6879 Y0. Z-0.1481 I0.5157 D0.4963 F9. G180 G0 X2.1 G136 N2(DRILL3) G138 G19 M146 G0 C180. G1 X2.1 Y0. Z-0.1481 F300. G0 X1.7 G181 X0.6879 Y0. Z-0.1481 I0.5157 D0.4963 F9. G180
It needs to look like this:
(DRILL3) G138 G0 X25. Z10. M146 G94 G19 M110 M147 N1 T070707 SB=4500 M13 M8 M146 G0 C0. G0 Z-0.1481 X2.1 Y0. G180 G0 X1.7 G181 X0.6879 Y0. Z-0.1481 C0. I0.5157 D0.4963 F9. G180 G0 X2.1 G136 N2(DRILL3) G138 G19 M146 G0 C180. G1 X2.1 Y0. Z-0.1481 F300. G0 X1.7 G181 X0.6879 Y0. Z-0.1481 C180. I0.5157 D0.4963 F9. G180
Even though the machine is at C180 in the second call, it needs that position to be called on the cycle line otherwise it will roll back to C0 and re-drill the same hole.
It doesn't have a problem when the cycle is run axially as it calls each C position on the cycle line.
I can't seem to figure out how to get this done.
Any help is much appreciated!
Thanks,
Brandon
Solved! Go to Solution.
Solved by BrandonTBFBF. Go to Solution.
Well,
I sat down today and figured it out. Handled it in the getCommonCycle function.
For anyone interested:
function getCommonCycle(x, y, z, r) { if (machineState.useXZCMode) { var currentC = getCClosest(x, y, cOutput.getCurrent()); zOutput.reset(); cOutput.reset(); forceXYZ(); return [xOutput.format(getModulus(x, y)), cOutput.format(currentC), zOutput.format(z), conditional(r != 0, (gPlaneModal.getCurrent() == 19 ? "I" : "K") + spatialFormat.format(r))]; } else if (machineState.axialCenterDrilling){ forceXYZ(); return [xOutput.format(x), zOutput.format(z), conditional(r != 0, (gPlaneModal.getCurrent() == 19 ? "I" : "K") + spatialFormat.format(r))]; } else{ var currentC = cOutput.getCurrent(); cOutput.reset(); forceXYZ(); return [xOutput.format(x), yOutput.format(y), zOutput.format(z), cOutput.format(currentC), conditional(r != 0, (gPlaneModal.getCurrent() == 19 ? "I" : "K") + spatialFormat.format(r))]; } }
It worked !!!
THANK YOU!
Ill try it on an machine on Monday and see if it works, but from what i can see, comparing to the code resulted from IGF , it should work.
Did you encountered the gear (M41/42 ) problem ?
IGF spits out M42 for S>1100 and M41 for S<=1100. If you don't put an M42 in the line it will stai under 1100 rpm no mater what S you specify in the program.
My machine stays in M42 for 99% of what I do. If I need the extra torque at low revs I'll manually enter the M41 and be sure to finish the program with an M42.
Do you have a complete fixed post to share? I am using the lb3000 post from the library but still having alarms for simple radial drilling. It is not outputting a z variable in the G181 line but doing it in the G0 positioning move ahead and when i added it manually it alarmed out trying to rotate c 180 degrees even though I am on position. Trying to edit my post using your above lines but not very exp with editing post processors.
See this thread:
https://forums.autodesk.com/t5/hsm-post-processor-forum/okuma-lb3000-post-inside/m-p/9717088#M25308
I'm continually updating my post processor and will continue to share it.
Can't find what you're looking for? Ask the community or share your knowledge.