What's new
What's new

G41 on a Speedio - mostly working

cosmos_275

Hot Rolled
Joined
Jun 9, 2015
Trying to insert a G41 into code to tweak a bore size on a part. For some reason, if the call is before the G100 toolchange it doesn't work. The G40 is shown to be active while boring. If I do two consecutive bores and put the G41 in between, it works. My post processor (using Inventor HSM 2016, can't upgrade to current post, I tried) puts the G41 pass through before the tool change even though it appears to be after, see pic.

Anyway, can anyone tell me what is cancelling the G41?

Thanks

G00 Z27.855
G83 X45.108 Y-38.288 Z-24.616 R26.855 Q10 F1900
X107.508 Y-38.266
G80
G00 Z37.855
G41
M05

(BORE1)
G54
M09
G100 T28 X44.766 Y-37.164 G43 Z37.855 H28 D28 S7000 M03
M08
G00 X44.766 Y-37.164
G00 Z37.855
G00 Z23.855
G01 Z22.49 F1500
G01 X44.76 Y-37.159 Z22.391

G41.jpg
 
My workaround is to cut air and put the G41 call in between. So this works:

(cutting air)
G01 X47.175 Y-37.273 Z24.034
G01 X47.15 Y-37.229 Z24.105
G01 X47.131 Y-37.198 Z24.184
G01 X47.12 Y-37.178 Z24.268
G01 X47.116 Y-37.171 Z24.355
G00 Z37.855
G41

(BORE1)
G00 X44.766 Y-37.164
G00 Z37.855
G00 Z23.855
G01 Z22.49 F1500
G01 X44.76 Y-37.159 Z22.391
G01 X44.742 Y-37.144 Z22.294

Your explanation makes sense. I'm just trying to understand. I was chasing this around for a good while.
 
I always thought you had to make an X and/or Y G01 move on the same line as G41 (and G40 for that matter.) I also thought you shouldn’t (or couldn’t?) make Z moves with cutter comp on. Apparently not!
 
Yeah G100 works as basically an "all the safety code" line so it kinda calls G80, G49, G40, etc.

And just like FANUC you need a linear interpolation move between the G41/G42 call and the cut. HSM/Fusion 360 likes to use G18/G19 for the vertical lead-in radii but if you replace that with a linear move after the offset call it works fine in my experience.
 
I am not a brothers programmer but I have hand coded for 35+ years ... it looks like Brothers used a G100 for the tool call, and you would need a G41 or G42 "AFTER" the tool call in that it well reset the control to a G40 as soon as you called the G100 line ... Also there should be no GO0 ( rapid ) movers between your G41/G42 line and your G40 line ,, you cant rapid "any" axis well under cutter comp .

Also your first G1 move after G41/G42 needs to be larger than your tool rad and the G40 move coming out of cutter comp needs to be longer than the rad
 
Yeah G100 works as basically an "all the safety code" line so it kinda calls G80, G49, G40, etc.

And just like FANUC you need a linear interpolation move between the G41/G42 call and the cut. HSM/Fusion 360 likes to use G18/G19 for the vertical lead-in radii but if you replace that with a linear move after the offset call it works fine in my experience.

no the G41/G42 call can be your first cut ,, it just needs to be longer than the rad of the tools
 
I am not a brothers programmer but I have hand coded for 35+ years ... it looks like Brothers used a G100 for the tool call, and you would need a G41 or G42 "AFTER" the tool call in that it well reset the control to a G40 as soon as you called the G100 line ... Also there should be no GO0 ( rapid ) movers between your G41/G42 line and your G40 line ,, you cant rapid "any" axis well under cutter comp .

Also your first G1 move after G41/G42 needs to be larger than your tool rad and the G40 move coming out of cutter comp needs to be longer than the rad
Pretty sure the bolded part above isn't correct. That should even work on your Haas. IIRC I've used cutter comp on multiple profiles, with rapid Z up and rapid XY then Z down at new location. (I'm on the home confuser right now, and don't have code to pull and post from a program. If my memory is wrong, you have my apologies))
I've often cut air when activating the comp, as noted above. Also Z up at the end, and cut air while turning compensation off.
Agree that the linear move activating the compensation needs to be longer than the amount of compensation. (I think that what you mean above, even though you said rad)

ETA: I just checked, and I can rapid with the cutter comp still active. I program with the post set up to automatically compensate for the nominal cutter diameter, and only compensate enough to tweak dimensions as needed. The move that activates the compensation needs to be greater than the amount of compensation - some people say "radius" - but that might be more than needed, just trying to be accurate in description.

CosmosK - I'm not familiar enough with your CAD package to help with the post, sorry. Sure seems weird that the G41 is so far into the code, looking at post 18. I'm using the infamous BobCad-Cam. You might reach out to BrotherFrank. I've had wonderful support from Yamazen for stuff like this. I know he's really busy at this time, but I've found his advice to be excellent. Good luck!
 
Last edited:
no the G41/G42 call can be your first cut ,, it just needs to be longer than the rad of the tools

That's what I'm trying to say - it functions exactly like FANUC where you need a linear move that allows the compensation to physically happen as you enter the cut. I can't recall if the C00 has a parameter that allows the G43 calls to be "virtual" instead of actual but I don't think so, I think the G43 also needs enough space to call and cancel during an actual move.

I'd have to post some code out to check but I don't recall having to cancel and re-call radius compensation for positioning (G00) moves?

Too bad the OP can't get the newest HSM post installed for whatever reason - the Autodesk Brother Speedio post is VERY squared away.
 
I always thought you had to make an X and/or Y G01 move on the same line as G41 (and G40 for that matter.) I also thought you shouldn’t (or couldn’t?) make Z moves with cutter comp on. Apparently not!

The manual also indicates you need to call the tool # (G41 D#), but you don’t. In fact, I’m not sure I need to insert the G40 to turn it off… just let the next tool change do it.

I got lots or errors when putting comp 0.5mm or more trying to test it out. I assume it would error out if the path didn’t like it.

Rapids seemed fine.
 
What size hole and what size end mill are you using? I'll post it for my Brother and compare the two.
 
Not sure what to change. The pass through puts it at the end of the last toolpath. I don't know how I would get it to go between the TC and the paths associated with it


Writes the specified optional block.
*/
function writeOptionalBlock() {
if (properties.showSequenceNumbers) {
var words = formatWords(arguments);
if (words) {
writeWords("/", "N" + sequenceNumber, words);
sequenceNumber += properties.sequenceNumberIncrement;
}
} else {
writeWords("/", arguments);
}
}

function onPassThrough( text ) {
var lines = String( text ).split( ";" );

for ( var i in lines ) {
writeln( lines[ i ] );
}
}

function formatComment(text) {
return "(" + filterText(String(text).toUpperCase(), permittedCommentChars).replace(/[\(\)]/g, "") + ")";
}

/**
Output a comment.
*/
function writeComment(text) {
writeln(formatComment(text));
}
 
Ok, I think I'm doing it wrong. I don't need to be inserting this as a pass through at all. there is an option in the tool path setup for "wear" compensation and it puts it after the TC and after the rapids:


G100 T28 X44.575 Y-37.003 G43 Z37.855 H28 D28 S7000 M03
M08
G17
G00 X44.575 Y-37.003
G00 Z37.855
G00 Z23.855
G01 Z22.49 F1500
G01 X44.569 Y-36.998 Z22.391
G01 X44.552 Y-36.983 Z22.294
G01 X44.523 Y-36.958 Z22.202
G01 X44.483 Y-36.924 Z22.117
G01 X44.434 Y-36.882 Z22.041
G01 X44.376 Y-36.833 Z21.976
G01 X44.311 Y-36.778 Z21.924
G01 X44.241 Y-36.719 Z21.886
G01 X44.167 Y-36.656 Z21.863
G01 X44.091 Y-36.592 Z21.855
G01 G41 X43.849 Y-36.386 D28
G03 X42.954 Y-36.459 I-0.411 J-0.484
 
There are various sizes. One for example is 11.5mm with a 6.35mm end mill.

Here is what my Mastercam post spits out for my Brother:

(in inches)

Doing 1 pass, starting from the center of the hole.

(JAN. 24 2020)
(1:21 PM)
(MATERIAL - 1018)
( T1 | 1/4 FINISHER )
( CIRCLE MILL-- )
N1 G100 T1 G00 G90 G54 X0. Y0. S3750 M03
N2 G43 H1 Z2. M08
N3 Z.25
N4 G01 Z-.5 F75.
N5 G41 D1 X.0148 Y-.0358 F20.
N6 G03 X.1014 Y0. I.0359 J.0358
N7 I-.1014 J0.
N8 X.1013 Y.0045 I-.1014 J0.
N9 X.0132 Y.0365 I-.0507 J-.0023
N10 G01 G40 X0. Y0.
N11 G00 Z.25
N12 Z2.
N13 G91 G28 Z0. M09
N14 M30

Starting at center, 45 deg line, arc into the hole, go around 1 time, arc off, 45deg back to center.
hole.jpg
 
This is exactly how its supposed to look.

Courtesy of Mtndew.
N4 G01 Z-.5 F75.
N5 G41 D1 X.0148 Y-.0358 F20.
N6 G03 X.1014 Y0. I.0359 J.0358

I think what is needed here is to go back to basics.

I think the basics of how cutter comp works isn't
completely understood. Which is fine, it can be
really confusing, I still fight with it on occasion,
and I fought with it A LOT when I was first starting
out.

You mention "Wear"..

Again. Back to basics. 2 kinds of cutter comp, and you don't
want to mix them up, or BAD things happen (guess how I know that?).

"Wear" is where you are programming to centerline. Your tool table
is generally going to have zero's in it for D's. Then if you need
to comp something, its only a few thou.

The other type of comp. I'm not even sure what to call it. Full
Radius Comp? Full Diameter? Should be in the same drop down box
as you found "Wear" in. May be called "Machine", as in the machine
does all the math.

This is where the program coordinates are the actual coordinates
of the part. The actual tool diameter (or radius) will be in
your tool table. Lead ins and lead outs are a lot trickier than
with "wear" comp.


Pick ONE method and stick with it.


Some people like running full r/d comp. I don't. I like "wear" comp.

Why?

Because I run a lot of stuff with no compensation at all. If I don't need
it, I don't use it. I don't have to worry about what is in the 'D' register
of the tool table, one less thing I have to worry about. I find it easier to
program that way also, I'm not always messing with my lead in's and lead out's
if I don't absolutely have to.

Also double check how your machine is set up. Usually a parameter, but some use
tool RADIUS, others use DIAMETER. Again, pick ONE and stick with it.

Then comes the whole lead in and lead out thing, and trying to understand how
that works.. But I've typed enough for now, somebody else can handle that.


Once you wrap your head around it, its not too bad. If you had somebody
sitting there with you, instead of trying to learn through a message board,
it would have been a lot quicker also. The written word just doesn't
come across as it should sometimes.
 








 
Back
Top