HI can anybody help me with my Post Processor.In the thread cutting lathe dialog box there is an option to tick use cycle as my machine uses cycle 99 for threading.But when I post my code I get an error message (The thread turning cycle is machine specific and should always be handled in post configuration) Is there a variable I should add to post a cycle 99
Solved! Go to Solution.
Solved by Carbidecnc. Go to Solution.
Which post processor are you using, and what does the code need to look like? Specifically we need to know every code needed for a threading cycle after the tool change and until (and including) the cycle cancel code. The more you can provide the better.
Hi Neal
The typical thread cutting code should look like this as example taken out of the manual,using siemens 808d advanced for turing I will attache my post processor.
N10 GO G90 X60 z100 G95
N20 T1 D1
N40 s1000 M4
N50 CYCLE99(0, 42. -35, 42, 5, 7, 2 .76, 0 0, 0, 5 2, 4.5
300101, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, , , , ,0)
60 GO G90 X100 z100
Hope this helps
Regards
Dave
@Carbidecnc Sorry I haven't gotten back to this in a more timely fashion.
The issue with the Cycle99 code you provided is that I don't know where those numbers are coming from or doing. Do you have a manual or section pertaining to your control that you could attach or link to here?
Hi Neal
I have attached some info for you from the manual, please let me know if you need anything else
Regards
Dave
Hi Dave,
Sorry, I haven't had a chance to dive in. I've taken a quick look and I think I'll just have to sit down and devote some solid time to understanding the cycle properly. It's definitely not a format I'm used to.
Not sure why this issue was marked as solved, since no solution was presented but I've started writing a case for the "thread-turning" cycle which can be added inside the switch statement of `onCycle`. This is just the grunt work, the parameters still needs to be understood. I'd give it a shot, but I need help in determining what variables are available to me from Fusion, and what they mean. For example, I need to figure out the major/minor diameter of the thread.
case "thread-turning": var SPL = 0; // Thread starting point in the longitudinal axis var DM1 = -1; // Thread diameter at the starting point var FPL = -1; // Thread end point in the longitudinal axis var DM2 = -1; // Thread diameter at the end point var APP = -1; // Run-in path (enter without sign) var ROP = -1; // Run-out path (enter without sign) var TDEP = -1; // Thread depth (enter without sign) var FAL = -1; // Finishing allowance (enter without sign) var IANG = -1; // Infeed angle // Range of values: // >0: Infeed along the rear flank // <0: Infeed along the front flank // =0: Infeed at a right angle to the cutting direction var NSP = -1; // Starting point offset for the first thread turn (enter without sign) var NRC = -1; // Number of roughing cuts (enter without sign) var NID = -1; // Number of idle passes (enter without sign) var PIT = -1; // Thread pitch value (enter without sign). Unit defined in parameter PITA var VARI = -1; // Unit defined in parameter PITA var NUMTH = -1; // Number of threads (enter without sign) var _VRT = -1; // Variable retraction path for thread cutting, incremental (enter without sign) var PSYS = 0; // Internal parameter, only the default value 0 is possible (value: 0) var PITA = 1; // Unit of parameter PIT (thread pitch) 1 = pitch in mm/revolution, 2 = pitch in threads per inch(TPI) var THREAD_TYPE = 0; // Internal parameter, only the following values are possible (values: 0 = Longitudinal thread; 10 = Face thread; 20 = Taper thread) writeBlock( "CYCLE99(" + zFormat.format(SPL) + ", " + zFormat.format(DM1) + ", " + zFormat.format(FPL) + ", " + zFormat.format(DM2) + ", " + zFormat.format(APP) + ", " + zFormat.format(ROP) + ", " + zFormat.format(TDEP) + ", " + zFormat.format(FAL) + ", " + zFormat.format(IANG) + ", " + zFormat.format(NSP) + ", " + zFormat.format(NRC) + ", " + zFormat.format(NID) + ", " + zFormat.format(PIT) + ", " + zFormat.format(VARI) + ", " + zFormat.format(NUMTH) + ", " + zFormat.format(_VRT) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PITA) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(PSYS) + ", " + zFormat.format(THREAD_TYPE) + ")" ); break;
There is also some information available in the following video: https://www.youtube.com/watch?v=502CFOkrbbw