What's new
What's new

Is starting in the middle of a program on Fanuc 0i really this f*%#king difficult?

xnewmanx

Aluminum
Joined
May 19, 2016
Let me preface this by saying I have zero CNC training so it’s highly possible I’m a huge moron.

Anyway, I have a 2021 vf2ssyt and a 2022 lynx 2100lb and am having a 2023 dnm 5700 delivered next week in my home garage.

I’ve been using the haas for a few years now. I make a lot of one-off parts and am often making a lot of changes mid-part. I always do it in cam and repost (I don’t really know any g-code at all or even how to use any of the conversational programming). On the haas I can just scroll down to wherever I want to start back up (usually the beginning of an operation) and hit cycle start. It looks through the program, turns on any code that needs to be turned on and then does its thing. Easy peasy.

On my lynx, it’s a nightmare. I’ve tried following this procedure on DN’s webpage:

but it’s got so many button presses and having to write code in MDI that it’s a fucking nightmare and half the time it doesn’t even work or pick up where I tell it to.

Generally this isn’t a huge problem on the lathe because I’m usually not changing much. However, with the new mill coming, I’m concerned my workflow is going to be slowed down on my frequent changes and restarts. I have to be missing something, right? My workaround is only posting from wherever I need to start, but there are a lot of other instances where I want to start in the middle of a program that I don’t want to repost for.
 
Former DN employee here.
I *REALLY* hate to say this but DON'T do it the way the video shows it. I never taught it that way in all the years I did the training and classes there.
One wrong move or skipped button press and you'll have a pile up. A big one.

I always wrote the code so that I could pick it up by searching the "N" number of the start line and pressing cycle start. Simple, fast, and SAFE.
 
Former DN employee here.
I *REALLY* hate to say this but DON'T do it the way the video shows it. I never taught it that way in all the years I did the training and classes there.
One wrong move or skipped button press and you'll have a pile up. A big one.

I always wrote the code so that I could pick it up by searching the "N" number of the start line and pressing cycle start. Simple, fast, and SAFE.
So I can basically do it the same way? Can I just page down or search for the tool? On haas in mem mode I just type in “T12” and press the down arrow. Then I’ll usually scroll up to the comment about the operation that my cam normally sticks in there and just hit cycle start. You’re telling me I can do that on the doosan too?
 
On DN you search by the "N" sequence number. So, what I told Haas users was to sync the "N" with the tool number. This way the tool is called and swapped into the spindle (if it wasn't there already) and then the start line is activated and away you go.

Something like this:

N1 T1;
M6;
M1;
G0 G40 G49 G54 G80 G90 G94 X0 Y1. F20. S1500 M3;
G43 Z1. H1 D1 M8
etc
etc

Written like this, all old offsets/comps/cycles/feeds/speeds are cancelled and the machine picks up like it never missed a beat.

In MEM mode, press "Seq No Srch" and type the number!
If T1 is already in the spindle, the M6 is ignored and the party continues.
If T1 isn't in the spindle, it gets called into place BEFORE any offsets or comps are instated.
 
  • Like
Reactions: VTM
So I can basically do it the same way? Can I just page down or search for the tool? On haas in mem mode I just type in “T12” and press the down arrow. Then I’ll usually scroll up to the comment about the operation that my cam normally sticks in there and just hit cycle start. You’re telling me I can do that on the doosan too?
yep typical fanuc controller. nothing new there.
some will start, others wont depending where its at in the cycle.
 
On DN you search by the "N" sequence number. So, what I told Haas users was to sync the "N" with the tool number. This way the tool is called and swapped into the spindle (if it wasn't there already) and then the start line is activated and away you go.

Something like this:

N1 T1;
M6;
M1;
G0 G40 G49 G54 G80 G90 G94 X0 Y1. F20. S1500 M3;
G43 Z1. H1 D1 M8
etc
etc

Written like this, all old offsets/comps/cycles/feeds/speeds are cancelled and the machine picks up like it never missed a beat.

In MEM mode, press "Seq No Srch" and type the number!
If T1 is already in the spindle, the M6 is ignored and the party continues.
If T1 isn't in the spindle, it gets called into place BEFORE any offsets or comps are instated.
Ok but in order to do that I need to change the postprocessor to put all those codes (work offsets, cutter comps, etc) at each tool change, right? My post only puts those once at the beginning. The haas goes through and grabs them all.

Keep in mind that despite owning well over 300k of machining equipment I’ve literally never written one gcode. I certainly don’t want to manually have to edit my programs to insert that information.
 
I think it’s important to clarify one thing, are you trying to restart at the beginning of the tool (at tool change) or in the middle of the tool ( eg: between rough and finish passes)?
 
I think it’s important to clarify one thing, are you trying to restart at the beginning of the tool (at tool change) or in the middle of the tool ( eg: between rough and finish passes)?
I’m fine with just starting at the beginning of a tool, but ideally I’d like to start at just the finish pass.
 
My story ...

A program stopped in the middle due to some reason.
I manually inserted the necessary codes in the program at that location, and restarted execution.
There was a minor accident.

Reason: The original program used G58. I missed inserting it. Therefore, it started using G54.
 
Ok but in order to do that I need to change the postprocessor to put all those codes (work offsets, cutter comps, etc) at each tool change, right? My post only puts those once at the beginning. The haas goes through and grabs them all.

Keep in mind that despite owning well over 300k of machining equipment I’ve literally never written one gcode. I certainly don’t want to manually have to edit my programs to insert that information.
Yes, your post would need to be modified.
As mentioned in this thread, the work coordinate and offsets would be called as needed on that start line, rather than *BOOM* - oops, I forgot the G54.

I've found this to be the safest way to restart.
 
Reason #476 as to why the Okuma control is superior to the Fanuc control.
Reason #477 as to why he can't do it the Okuma way. The OP doesn't have one, he has a Fanuc.
Douglas is correct but you don't even need to make it that hard. I don't use N numbers in any of my programs. If I want to start in the middle, I just search for T?? M06 and off we go. But, I will never start in the middle inbetween tool changes. Fanuc makes it much too difficult.
 
Another method that you may use for certain controls is to use GOTO commands to pick up the needed information at the beginning of the tool then skip to the point you want to start at.

T06 M06
g90 g00 g54 x20. y10.
G43 h6 z1.
GOTO 6969
...
...
...
N6969
( FINISH PASS)
X-2. Y2.

This is also somewhat dangerous if you forget to take out the GOTO after you are done, you will have a big bang on the next part.
 
Here's an example of a hass milling program.

Code:
%
O02410 (SPORTYMAG JAWS 1)
(Using G0 which travels along dogleg path.)
(T1 D=0.5 CR=0. - ZMIN=-0.754 - flat end mill)
(T11 D=0.5 CR=0. TAPER=45deg - ZMIN=-0.5234 - chamfer mill)
(T24 D=0.25 CR=0. - ZMIN=-0.5184 - flat end mill)
N10 G90 G94 G17
N15 G20
N20 M158
N25 G53 G0 Z0.

(Adaptive1)
N30 T1 M6
(Ax .75 Rad .25 Slot .5)
N35 S12000 M3
N40 G55
N45 M8
N50 G0 X4.4049 Y0.9543
N55 G43 Z0.6 H1
N65 G0 Z0.2
N70 Z-0.2937
...
...
...
N8225 G0 Z0.6
N8230 M9
N8235 M5
N8240 G53 G0 Z0.

(2D Contour2)
N8245 M1
N8250 T24 M6
(Ax .375 Rad .1)
N8255 S12000 M3
N8260 G55
N8265 M8
N8270 G0 X1.3521 Y0.3904
N8275 G43 Z0.6 H24
N8285 G0 Z0.2
...
...
...
N8520 G0 Z0.6


(2D Chamfer1)
N9170 M1
N9175 T11 M6
N9180 S10000 M3
N9185 G55
N9190 M8
N9195 G0 X0.9711 Y-0.2485
N9200 G43 Z0.6 H11
N9210 G0 Z0.2
...
...
...
N12130 G0 Z0.64

N12135 M5
N12140 M9
N12145 G53 G0 Z0.
N12150 X0.
N12155 G53 G0 Y0.
N12160 M30

%

On the Haas I can just put my cursur on N9170 and hit cycle start. Are you guys saying this will work as-is on the DN? What happens to G90 G94 G17 & G20?

Here's a program for the lathe (Fanuc)

Code:
%
O3110 (SPORTYMAG ADAPTER 1)
N10 G98 G18
N11 G20
N12 G50 S3000
N13 M11
N14 G28 U0.
N15 G28 W0.

(FACE1)
N16 T0101
N17 G54
N18 M8
N19 G99
N20 G97 S590 M3
N21 G0 X2.2 Z0.1969
N22 G50 S3000
N23 G96 S340 M3
N24 G0 Z0.0506
...
...
N31 Z0.1969
N32 G97 S590 M3



(DRILL2)
N59 M1
N60 T0505
N61 G54
N62 M8
N63 G98
N64 G97 S1150 M3
N65 G0 X0. Z0.6
N66 G0 Z0.2
N67 G83 X0. Z-0.3 F1.72
N68 G80
N69 Z0.6
N70 M9
N71 G28 U0.
N72 G28 W0.

(DRILL2 2)
N73 M1
N74 T1111
N75 G54
N76 M8
N77 G98
N78 G97 S760 M3
N79 G0 X0. Z0.6
N80 G0 Z0.2
N81 G83 X0. Z-0.7 F3.57
N82 G80
N83 Z0.6
N84 M9
N85 G28 U0.
N86 G28 W0.


N212 M9
N213 G28 U0.
N214 G28 W0.
N215 M30
%

I can just cursur to line N73 and hit cycle start?
 
Here's an example of a hass milling program.

Code:
%
O02410 (SPORTYMAG JAWS 1)
(Using G0 which travels along dogleg path.)
(T1 D=0.5 CR=0. - ZMIN=-0.754 - flat end mill)
(T11 D=0.5 CR=0. TAPER=45deg - ZMIN=-0.5234 - chamfer mill)
(T24 D=0.25 CR=0. - ZMIN=-0.5184 - flat end mill)
N10 G90 G94 G17
N15 G20
N20 M158
N25 G53 G0 Z0.

(Adaptive1)
N30 T1 M6
(Ax .75 Rad .25 Slot .5)
N35 S12000 M3
N40 G55
N45 M8
N50 G0 X4.4049 Y0.9543
N55 G43 Z0.6 H1
N65 G0 Z0.2
N70 Z-0.2937
...
...
...
N8225 G0 Z0.6
N8230 M9
N8235 M5
N8240 G53 G0 Z0.

(2D Contour2)
N8245 M1
N8250 T24 M6
(Ax .375 Rad .1)
N8255 S12000 M3
N8260 G55
N8265 M8
N8270 G0 X1.3521 Y0.3904
N8275 G43 Z0.6 H24
N8285 G0 Z0.2
...
...
...
N8520 G0 Z0.6


(2D Chamfer1)
N9170 M1
N9175 T11 M6
N9180 S10000 M3
N9185 G55
N9190 M8
N9195 G0 X0.9711 Y-0.2485
N9200 G43 Z0.6 H11
N9210 G0 Z0.2
...
...
...
N12130 G0 Z0.64

N12135 M5
N12140 M9
N12145 G53 G0 Z0.
N12150 X0.
N12155 G53 G0 Y0.
N12160 M30

%

On the Haas I can just put my cursur on N9170 and hit cycle start. Are you guys saying this will work as-is on the DN? What happens to G90 G94 G17 & G20?

Here's a program for the lathe (Fanuc)

Code:
%
O3110 (SPORTYMAG ADAPTER 1)
N10 G98 G18
N11 G20
N12 G50 S3000
N13 M11
N14 G28 U0.
N15 G28 W0.

(FACE1)
N16 T0101
N17 G54
N18 M8
N19 G99
N20 G97 S590 M3
N21 G0 X2.2 Z0.1969
N22 G50 S3000
N23 G96 S340 M3
N24 G0 Z0.0506
...
...
N31 Z0.1969
N32 G97 S590 M3



(DRILL2)
N59 M1
N60 T0505
N61 G54
N62 M8
N63 G98
N64 G97 S1150 M3
N65 G0 X0. Z0.6
N66 G0 Z0.2
N67 G83 X0. Z-0.3 F1.72
N68 G80
N69 Z0.6
N70 M9
N71 G28 U0.
N72 G28 W0.

(DRILL2 2)
N73 M1
N74 T1111
N75 G54
N76 M8
N77 G98
N78 G97 S760 M3
N79 G0 X0. Z0.6
N80 G0 Z0.2
N81 G83 X0. Z-0.7 F3.57
N82 G80
N83 Z0.6
N84 M9
N85 G28 U0.
N86 G28 W0.


N212 M9
N213 G28 U0.
N214 G28 W0.
N215 M30
%

I can just cursur to line N73 and hit cycle start?
Yes, provided that after the M6 there's adequate data for work cords, offset, comp, etc.
 
Yes, provided that after the M6 there's adequate data for work cords, offset, comp, etc.
Is this enough?

N73 M1
N74 T1111
N75 G54
N76 M8
N77 G98
N78 G97 S760 M3
N79 G0 X0. Z0.6
N80 G0 Z0.2
N81 G83 X0. Z-0.7 F3.57
N82 G80
N83 Z0.6
N84 M9
N85 G28 U0.
N86 G28 W0.
 
I would have my post edited to include all safety codes added after every tool change. This way you don't have to worry about it not picking up a code that should be in there. Have this done on the Haas as well, as it's a good safety practice. It may find them, but why leave it to chance?

---(from a previous post by CAMasochism)---
T06 M06
g90 g00 g54 x20. y10.
G43 h6 z1.
GOTO 6969
...
...
...
N6969
( FINISH PASS)
X-2. Y2.
---end copied text (I don't know how to quick quote within a comment)---

This is a great way to do it if you're having your code posted with comments, and want to jump into the middle of a program. GOTO commands are great, just don't forget to delete them for the next part if you're running some sort of production.
 








 
Back
Top