![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| G-Code Programing Discuss G-code programing and problems here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
| Hi, does anyone have a macro for threadmilling using which a CNC Milling operator (Fanuc controller only) can do any threadmilling operation ? The input from user side would be Diameter of the hole, Pitch of the thread, Diameter of the threadmill, Total depth for threading, Incremental depth of threading operation AND Incremental deapth for threadmilling in Radial direction (This is very important as normal thread milling programs can be generated with all the above parameters but radial passes are not a norm). thanks a lot in advance Yaji |
|
#3
| |||
| |||
| Here is one that I wrote some time ago. You are going to have to prove it out because I originally had it setup to get the tool radius from the offset page. I also did not have it setup to do a single hole which it is set for now. It originally had been designed to do multiple holes around a bolt circle diameter. I took all of that out along with the variables. It works great and have had no complaints. R=TOOL DIAMETER I=PILOT HOLE DIAMETER Z=DEPTH OF THREAD K=PITCH OF THREAD T=TOOL NUMBER USED U=PRE CALL NEXT TOOL E=DIAMETER TO SPIN Q=PICK SIZE M=COOLANT CODE X=X LOCATION OF HOLE Y=Y LOCATION OF HOLE O0001(MAIN PROGRAM) #100=55(WORK COORDINATE) #500=3.(CLEARANCE PLANE) G65P8003R.29I.328Z.5K24T37U1E.375Q.012M8X1.Y1. M30 % O8003 (THREAD MILL EQ. SPACED HOLES 6/10/07) #18=#18/2(TOOL RADIUS) #19=60.(INCLUS. ANGLE OF CUTTER) #8=#8/2 #4=#4/2 M6T#20 T#21 #17=[TAN[#19/2]*#17]*#17(AREA CALCULATION) #31=[#4-#23]/2.(LEAD-IN RAD.) IF[#6GT3.]GOTO300(INCH) IF[#6LE3.]GOTO350(METRIC) N1#23=#18(TOOL RAD & WEAR) #31=[#4-#23]/2.(LEAD-IN RAD.) IF[#18GE#4]GOTO1030 G90G#100X#24Y#25Z#500M3 #22=0 #1=1. N2#30=SQRT[[#17*#1]/TAN[#19/2]] IF[#30GE#8-#4]TH#30=#8-#4 IF[#30EQ[#8-#4]]TH#22=#22+1(IDLE PASS) G0Z-#26 G91G1X[#4+#30-#23-#31]Y-#31M#13 G3X#31Y#31J#31Z#9 G3X0Y0I-[#4+#30-#23]Z#6 G3X-#31Y#31I-#31Z#9 G90G1X#24Y#25 IF[#30EQ#8-#4]GOTO3 #1=#1+1. GOTO2 N3IF[#22EQ1]GOTO2 G0Z#500 M5M9 #3006=10(CHECK THREADS WITH GAUGE) M99 N300(INCH PITCH CALC) #6=1./#6(PITCH TO Z MVT) #9=#6/4.(1/4 PITCH Z MVT) GOTO1 N350(MM PITCH CALC) #6=#6/25.4(PITCH TO Z MVT) #9=#6/4.(1/4 PITCH Z MVT) GOTO1 N1030#3000=10(THREADMILL TOO BIG) % |
|
#4
| |||
| |||
| I wrote this some time ago for a Mitsubishi boring mill. It makes 2 passes roughing and finishing. This checks the depth in 1/4 revolution increments. If it helps please drop me a note. Good Luck, Terry % O67890(PARAMETRIC THREAD MILLING PROGRAM) (THIS IS PROGRAM DOES 2 ROUGH AND 1 FINISH PASS) (TOOL IS A SINGLE POINT THREAD MILL) () (START OF OPERATOR VARIABLES LIST) #100=10 (TOOL NUMBER ) #101=54 (COORDINATE SYSTEM G54 - G57 - G59) #102=1500 (SPINDLE RPM) #103=4. (TEETH ON CUTTER) #104=0.075 (CHIP LOAD MM PER TOOTH) #120=0.00(X POSITION OF HOLE) #121=35.0(Y POSITION OF HOLE) #122=50.00(Z HEIGHT OF HOLE) #123=10.0(Z SAFETY DISTANCE FOR RAPID) #124=20.0(INCREMENTAL DEPTH OF THREAD FROM #122) #125=15.95(TOOLDIAMETER) #126=20.0(MAJOR THREAD DIAMETER) #127=2.5(THREAD PITCH) #128=0.00(THREAD FIT CLEARANCE) (END OF OPERATOR VARIABLES) (START OF PROGRAM CALCULATIONS) (DO NOT EDIT BELOW THIS LINE) () #100=ABS[#100](MUST BE A POSITIVE NUMBER) #101=ABS[#101](MUST BE A POSITIVE NUMBER) #102=ABS[#102](MUST BE A POSITIVE NUMBER) #103=ABS[#103](MUST BE A POSITIVE NUMBER) #104=ABS[#104](MUST BE A POSITIVE NUMBER) #123=ABS[#123](MUST BE A POSITIVE NUMBER) #124=ABS[#124](MUST BE A POSITIVE NUMBER) #125=ABS[#125](MUST BE A POSITIVE NUMBER) #126=ABS[#126](MUST BE A POSITIVE NUMBER) #127=ABS[#127](MUST BE A POSITIVE NUMBER) #128=ABS[#128](MUST BE A POSITIVE NUMBER) #130=#125/2(TOOL RADIUS CALCULATION) #133=#122+#123(Z AXIS APPROACH MOVE) #134=150.0(RAMP-ON FEEDRATE) #135=#102*#103*#104(CUTTING FEEDRATE) #134=#135*0.75(RAMP-ON FEEDRATE) #136=#135*2.0(RAMP-OFF FEEDRATE) #137=0.0(COUNTER FOR Z DEPTH) #145=0.956(FIRST ROUGH RADIUS MOVE PERCENTAGE) #138=0.986(ROUGH RADIUS MOVE PERCENTAGE) #139=1.007(FINISH MOVE PERCENTAGE) #140=[[#126*#138]/2](ROUGHING CUT RADIUS) #141=[[#126*#139]/2](FINISHING CUT RADIUS) #142=#140-#130(ROUGH INCREMENTAL MOVE) #143=#141+#128(FINISH CUT RADIUS PLUS CLEARANCE) #144=#143-#130(FINISH INCREMENTAL MOVE) (END PROGRAMMING VARIABLES) () (START OF CUTTING PROGRAM) () T#100M06 G90 G00X#120Y#121(HOLE POSITIONING) G43H#100Z#133M08(Z APPROACH) G01Z#122F1000(Z START HEIGHT) G91(SET TO INCREMENTAL) G01X#147F#134 () N25(START OF FIRST ROUGHING LOOP) G02X-#147Y-#147R#147Z-#127/4F#135 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) G02X-#147Y#147R#147Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) G02X#147Y#147R#147Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) G02X#147Y-#147R#147Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) GOTO25(LOOP RETURN IF NOT DEEP ENOUGH) N100(EXIT THE HOLE) G90(ABSOLUTE POSITIONING) G01X#120Y#121F#136(RETURN TO CENTER FOR EXIT) G00Z#122(RETURN TO Z START HEIGHT) M00 (STOP MILL FOR HOLE INSPECTION) M03(START SPINDLE) #137=0.0(RESET COUNTER) G91(SET TO INCREMENTAL) G01X#142F#134 () N50(START OF SECOND ROUGHING LOOP) G02X-#142Y-#142R#142Z-#127/4F#135 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) G02X-#142Y#142R#142Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) G02X#142Y#142R#142Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) G02X#142Y-#142R#142Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO100(DEPTH CHECK) GOTO50(LOOP RETURN IF NOT DEEP ENOUGH) N100(EXIT THE HOLE) G90(ABSOLUTE POSITIONING) G01X#120Y#121F#136(RETURN TO CENTER FOR EXIT) G00Z#122(RETURN TO Z START HEIGHT) M00 (STOP MILL FOR HOLE INSPECTION) M03(START SPINDLE) #137=0.0(RESET COUNTER) G91(SET TO INCREMENTAL) G01X#144F#134 () N150 (START OF FINISHING LOOP) G02X-#144Y-#144R#144Z-#127/4F#135 #137=#137+#127/4 IF[#137GE#124]GOTO200(DEPTH CHECK) G02X-#144Y#144R#144Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO200(DEPTH CHECK) G02X#144Y#144R#144Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO200(DEPTH CHECK) G02X#144Y-#144R#144Z-#127/4 #137=#137+#127/4 IF[#137GE#124]GOTO200(DEPTH CHECK) GOTO150(LOOP RETURN IF NOT DEEP ENOUGH) N200(EXIT THE HOLE) G90(ABSOLUTE POSITIONING) G01X#120Y#121F#136(RETURN TO CENTER FOR EXIT) G00Z#133(RETURN TO Z START HEIGHT) M05 M30 % |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Threadmilling with Fanuc 18i-TB | mroy0404 | Fanuc | 5 | 03-16-2010 08:21 AM |
| Testing program for Macro (Fanuc Macro B) | NickDP | Fanuc | 2 | 03-27-2009 03:15 PM |
| Convert Fanuc Macro to Fadal Macro | bfoster59 | Fadal | 1 | 11-08-2007 11:41 PM |
| Threadmilling Fanuc 6M-B | mtglaser | G-Code Programing | 3 | 10-07-2006 10:12 AM |
| Macro B Threadmilling on C-axis. | M-man | Fanuc | 2 | 09-22-2006 01:29 PM |