Brother circular pocket cycle? Alternatives?
Close
Login to Your Account
Page 1 of 2 12 LastLast
Results 1 to 20 of 29
  1. #1
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default Brother circular pocket cycle? Alternatives?

    So, the Brother does not accept a Z argument for G12/13 [as some controls apparently do] and I am really stumped at how to pull off what I need to to, all day every day

    Here is how I have been running things for decades:

    Create a list of hole locations
    Drill at those hole locations
    countersink at those hole locations
    tap at those hole locations

    Pretty simple, and I can make the Speedio do that, however, it is so foooking fast, it needs to back burr, both for quality and the simple fact I cannot back burr in the time it takes to make the part. I own most of those stupid back burring tools and they will not will not will not work for my application.

    Dovetail tool circular interpolate from the top.

    Period.

    Tools are 50 bucks a pop. I am simply unwilling to risk a clerical error burying one in the middle of the part


    So I need to have it circular/helical interpolate using the same set of hole locations

    Possible, or do I have a 100k paperweight?

  2. #2
    Join Date
    Aug 2013
    Location
    Chicago, IL
    Posts
    1,322
    Post Thanks / Like
    Likes (Given)
    977
    Likes (Received)
    527

    Default

    Youíre looking to deburr the back side of a drilled and tapped thru-hole with a dovetail cutter? Why not rapid or feed straight down the center of the hole and then G12/13 and come back up? Because you donít want to risk breaking it? But how would going down in a helix help that? Iím probably misunderstanding you. Either way, Iím sure you can helix down if you need to. I would offer to look into it tomorrow but no doubt Andy or Frank will chime in and solve your programming Q. Good luck!

  3. #3
    Join Date
    Jul 2015
    Country
    UNITED STATES
    State/Province
    Wisconsin
    Posts
    349
    Post Thanks / Like
    Likes (Given)
    23
    Likes (Received)
    127

    Default

    Couldn't you write a G03 arc move to do this and switch it to incremental mode once you are at your hole location or just make it a subprogram? If it's a subprogram you would only have to edit it once to get your desired chamfer, or run it on cutter comp. I am not familiar with how Brother does circular interp. sounds like the Z would have to come from the line before though. Haas you can put the Z either in a line above or in the G13 line. I typically put it above unless I am doing an incremental step down.

    Edit::: If you want a helical arc use G02/3 with a Z move.

  4. #4
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    Quote Originally Posted by Nerdlinger View Post
    You’re looking to deburr the back side of a drilled and tapped thru-hole with a dovetail cutter? Why not rapid or feed straight down the center of the hole and then G12/13 and come back up? Because you don’t want to risk breaking it? But how would going down in a helix help that? I’m probably misunderstanding you. Either way, I’m sure you can helix down if you need to. I would offer to look into it tomorrow but no doubt Andy or Frank will chime in and solve your programming Q. Good luck!
    YOu misunderstand the problem

    OF course I can do that

    I have 10000 holes to do.

    This week

    So, I can, define a drill cycle [G-watever]
    Call a subprogram that consists of:
    X1 Y1
    X2 Y2
    X3 Y42
    etc

    Than redefine the drill cycle and call the Csink and call the same subprogram

    Then redefine the cycle and call the tap, call the same subprogram
    [this works and I can make parts to this point]


    What I need to do is have a circular or helical[it matters not at this point which] cycle that can use the same set of points. This G13 will not work on this machine[I am fairly certain]

    I am actually pretty shocked there is not a canned thread milling cycle. That is what I used successfully on my other machine to do the job[although I ran into other issues]

  5. #5
    Join Date
    Jun 2008
    Location
    VA
    Posts
    827
    Post Thanks / Like
    Likes (Given)
    213
    Likes (Received)
    332

    Default

    Never mind

  6. #6
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    From a google search of this site,

    It is literally Greek to me, but is this something like what I will need to do?



    yardbird yardbird is online now
    Titanium
    Join Date
    Jul 2013
    Location
    Indiana
    Posts
    3,441
    Post Thanks / Like
    Likes (Given)
    5066
    Likes (Received)
    1764
    Default
    I copied this from training materials given to me a few years ago. I altered it to suit the purpose of this thread with the G13 call is the only modification done. I'm not smart enough to do this nor do I have access to actually test it on a machine at this point and time. Could/Would one of you macro guys look this over? Possibly run it though a simulator and see if it works?

    Brent

    Fanuc 0i series control.

    (Circular Pocket)

    6053 = 13 G-Code to call Macro program 9013

    G13 X0. Y0. Z-750 R1. A.05 I.02 J.02 K.25 W.8 C5.0 D3 F20.

    X = X axis center
    Y = Y axis center
    Z = Depth of pocket
    R = Radius of pocket
    D = Direction of cut. D2 CW / D3 CCW
    C = Feedrate for plunging
    I = Finish cut
    J = Finnish allowance on bottom of pocket
    A = Reference point above the part
    F = Feedrate
    K = Depth of cut for roughing
    W = Width of cut. % of endmill diameter


    O9013(CIRCULAR POCKET)
    IF[#3EQ#0]THEN#3000=8(NO PLUNGE FEEDRATE
    GIVEN)
    IF[#9EQ#0]THEN#3000=3(NO FEEDRATE GIVEN)
    IF[#23EQ#0]THEN#3000=5(NO WIDTH OF CUT GIVEN)
    IF[#1EQ#0]THEN#3000=21(NO REFERENCE POINT)
    N1G0X#24Y#25Z#1
    #100=0
    #106=0
    #140=#5003
    #141=#5001
    #142=#5002
    #32=#4107+12000
    #32=#[#32]
    #33=#4107+13000
    #33=#[#33]
    #144=#32+#33(D+2000)
    #10=#18-#144(POCKETRAD-EMRAD)
    #143=#142-[#10-#4]
    #145=[#10-#4]
    #146=2*#145
    #12=#23*[#144*2](WIDTH-OF-CUT)
    #104=[#12*.01]
    #27=#26+#5(ZDEPTH-FINISH)
    IF[#7EQ2]THEN#104=[#104*[-1]]
    IF[#6EQ#0]GOTO3000
    #100=ABS[FIX[[#26-#1+#5]/#6]]
    #101=#100
    N2G90G0Z#1
    N3G0G90X#141Y#142
    N500IF[#106GE#100]GOTO3000
    #14=0
    G91G1Z-#6F#3
    WHILE[[#12+#14]LT[#145]]DO2
    N4G1G91Y-#12F#3
    #14=#14+#12
    N5G#7X0Y[2*#14]R#14F#9
    N6G#7X0Y-[2*#14]R#14
    N31G0Y0.0
    N32END2
    N2000#106=#106+1
    N19G90G1Y[#143]
    G#7G91X0.0Y#146R145F#9
    G#7X0.0Y-#146R145
    G0Y0
    N8G90G0X#141Y#142
    N201GOTO500
    N3000IF[#5EQ#0]GOTO4000
    N9G90G0X#141Y#142
    #14=0
    N10G1Z#27F#3
    N40WHILE[[#12+#14]LT[#145]]DO3
    N11G1G91Y-#12F#3
    #14=#14+#12
    N12G#7X0Y[2*#14]R#14F#9
    N13G#7X0Y-[2*#14]R#14
    N14G0Y0
    END3
    N19G90G1Y#143
    G#7G91X0.0Y#146R#145F#9
    G#7X0.0Y-#146R#145
    G0Y0
    N4000G0G90X#141Y#142
    N14G1Z#26F#3
    #14=0
    WHILE[[#12+#14]LT[#145]]DO1
    G1G91Y-#12F#3
    #14=#12+#14
    G#7X0Y[2*#14]R#14F#9
    G#7X0Y-[2*#14]R#14
    G0Y0
    END1
    N1000IF[#4EQ#0]GOTO23(IF NO FIN ALLOW)
    N19G90G1Y#143
    G#7G91X0.0Y#146R#145F#9
    G#7X0.0Y-#146R#145
    G0Y0
    IF[#5003NE#26]GOTO4000
    N23G90G1Y[#142-#10]
    N24G#7G91X0Y[2*#10]R#10F#9
    N25G#7X0Y-[2*#10]R#10
    N26G#7X#104Y[ABS[#104]]R[ABS[#104]]
    N67G0G90Z#140
    G0X#141Y#142
    M99

  7. #7
    Join Date
    May 2011
    Country
    UNITED STATES
    State/Province
    New Jersey
    Posts
    3,833
    Post Thanks / Like
    Likes (Given)
    445
    Likes (Received)
    2229

    Default

    Sooooo are you not using cam software?

  8. Likes lumley32 liked this post
  9. #8
    Join Date
    Jun 2009
    Country
    UNITED STATES
    State/Province
    California
    Posts
    208
    Post Thanks / Like
    Likes (Given)
    141
    Likes (Received)
    67

    Default

    Iím curious why you need a Z value in the interpolation. Are you trying to helix with it or does the Z value simply tell it what depth to rapid to before executing the circular interpolation in other controls? Personally havenít seen this as a canned cycle before. This would be very handy. Iíve always just used CAM to program this or if the qty is low enough, have done it manually. Sounds like a sub program is the way to go for this.

    Iíve attached a screenshot of the page that outlines G12/G13 from the C00 programming manual.

    72a1e3ee-fdfb-47ee-b336-b1b364980c59.jpg

  10. #9
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    Quote Originally Posted by plastikdreams View Post
    Sooooo are you not using cam software?
    Yup, cause pounding a bunch of code you cannot read is the best way to program a new machine, if you didn't pay for it.....


    First I need to learn how to program the machine

    Then I can let the computer do it for me

    Unless you are saying that those guys who sit in an office an spit out code and have never run a machine do a better job.....perhaps...but I am thinking no.


    I have been programming CNC of the better part of 30 years, just different machines

  11. #10
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    Quote Originally Posted by couch View Post
    I’m curious why you need a Z value in the interpolation. Are you trying to helix with it or does the Z value simply tell it what depth to rapid to before executing the circular interpolation in other controls? Personally haven’t seen this as a canned cycle before. This would be very handy. I’ve always just used CAM to program this or if the qty is low enough, have done it manually. Sounds like a sub program is the way to go for this.

    I’ve attached a screenshot of the page that outlines G12/G13 from the C00 programming manual.

    72a1e3ee-fdfb-47ee-b336-b1b364980c59.jpg
    I have the C00 programming manual in front of me.

    Without a z value you must put a z value in the subprogram which is incompatible with the other parts of the program using that same subprogram.

    haven't seen this as a subprogram?

    1986 Heidenhain.

    trying to figure out how to get a 2021 control to do what was simple 35 years ago. that is all.
    If you read my previous posts you can see what i am trying to do, use the same set of points[subroutine] to do several different operations. This is simple on this control for drilling, tapping, countersinking, but I am stuck past this.

    This is also relevant for other work I do as frequently I will interpolate a subset of holes in a larger program rather than have to load a special tool. Using literally the same lines of code prevents crashes

    Since I work with a limited set of shapes in this segment of my work, constructing the code this way makes it so once I have a program proofed for a single part, I can then copy and modify it for dozens of other parts by adding or moving hole locations

  12. #11
    Join Date
    Dec 2013
    Country
    UNITED STATES
    State/Province
    California
    Posts
    1,157
    Post Thanks / Like
    Likes (Given)
    309
    Likes (Received)
    718

    Default

    I am thinking a sub program to hand code this. I believe the G13 will work. I is the radius of the circle or chamfer you are looking for, D is the offset # it will reference and F is feedrate of interpolation. D will typically be the same as your tool #. You will set the radius of your cutter in the cutter comp of that tool # in the Tool Data. You can make adjustments here and in your Z to adjust your chamfer. Position above the center of the drilled hole. The sub would look something like this:

    G1 Z-.200 F100. (or G0 if you have big huevos, adjust Z for your parts);
    G13 I.1 D2 F10. (assuming .200 dia chamfer, set cutter comp in offset 2 for Tool 2);
    G0 Z.1;
    M99;

    G13 (CCW) starts and stops at the center of the bore.
    If you are doing tool breakage detection with drill and tap big huevos not necessary.

    To call the sub you have two choices. External program use M98 P1000 to call external program 1000. For a local sub, use M98 H1000 (or number of your choice up to 8999). Put local sub after M30 in main Program with a N1000 like this:

    ;
    ;
    M30;
    N1000;
    G1 Z-.200 F100. ;
    G13 I.1 D2 F10. ;
    G0 Z.1 ;
    M99;

    Run this in the air with your numbers and make adjustments as necessary. You'll get it!

  13. #12
    Join Date
    Jun 2015
    Country
    UNITED STATES
    State/Province
    Minnesota
    Posts
    791
    Post Thanks / Like
    Likes (Given)
    12
    Likes (Received)
    288

    Default

    Make a copy your hole location sub.

    Give it a new number

    Insert a sub routine call after each location (creating a nested sub)

    Create your nested deburr tool path. Do this in full Incremental mode, at least with X and Y, though while inside the nested sub there is freedom to use Absolute Z moves if it makes it easier.

    When your deburr tool comes up, just swap out the existing subroutine number call to your nested sub number.

    Unless I'm not understanding correctly, this will solve your problem, and is the very same course a person would take to create a bunch of thread milled holes using a single (and once copied) location file, only this time you're deburring.

    This is far too simple and common for someone who has machined for 35 years. I must be missing something.

    As an aside - I believe some control trickery exists where you could use a single location plus subroutine, with the nested sub calls headed by a block skip / slash, and program in the block skip on/off signal at the head of each tool. Skip on for spot/drill/tap only. Skip off for deburr included. How programming in a block skip is done and what controls can do it is beyond my knowledge.

  14. #13
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    What I am trying to do is have one set of numbers. This has ramifications beyond the program that we are running today. It allows me to take that program as a template and in a matter of seconds modify it virtually risk free to a new completely different program [drill csink tap burr] which might have the holes in the wrong location but will be the same wrong location. I do thousands of parts but only half a dozen shapes, so add a hole, delete a hole move three holes, whatever.

    And yes Frank, on my DMG I was slamming a .115 dovetail cutter through a .12 hole at full rapid with no tool breakage detection. The program works but I could not get it to run reliably and needed to get parts out the door, so gave up.
    I need to human scale running on the Brother, a 4 minute cycle that gets 2 parts out will be a 50 second cycle and I cannot back bur that fast manually.


    Quote Originally Posted by 13engines View Post
    Make a copy your hole location sub.

    Give it a new number

    Insert a sub routine call after each location (creating a nested sub)

    Create your nested deburr tool path. Do this in full Incremental mode, at least with X and Y, though while inside the nested sub there is freedom to use Absolute Z moves if it makes it easier.

    When your deburr tool comes up, just swap out the existing subroutine number call to your nested sub number.

    Unless I'm not understanding correctly, this will solve your problem, and is the very same course a person would take to create a bunch of thread milled holes using a single (and once copied) location file, only this time you're deburring.

    This is far too simple and common for someone who has machined for 35 years. I must be missing something.

    As an aside - I believe some control trickery exists where you could use a single location plus subroutine, with the nested sub calls headed by a block skip / slash, and program in the block skip on/off signal at the head of each tool. Skip on for spot/drill/tap only. Skip off for deburr included. How programming in a block skip is done and what controls can do it is beyond my knowledge.
    Quote Originally Posted by BROTHERFRANK View Post
    I am thinking a sub program to hand code this. I believe the G13 will work. I is the radius of the circle or chamfer you are looking for, D is the offset # it will reference and F is feedrate of interpolation. D will typically be the same as your tool #. You will set the radius of your cutter in the cutter comp of that tool # in the Tool Data. You can make adjustments here and in your Z to adjust your chamfer. Position above the center of the drilled hole. The sub would look something like this:

    G1 Z-.200 F100. (or G0 if you have big huevos, adjust Z for your parts);
    G13 I.1 D2 F10. (assuming .200 dia chamfer, set cutter comp in offset 2 for Tool 2);
    G0 Z.1;
    M99;

    G13 (CCW) starts and stops at the center of the bore.
    If you are doing tool breakage detection with drill and tap big huevos not necessary.

    To call the sub you have two choices. External program use M98 P1000 to call external program 1000. For a local sub, use M98 H1000 (or number of your choice up to 8999). Put local sub after M30 in main Program with a N1000 like this:

    ;
    ;
    M30;
    N1000;
    G1 Z-.200 F100. ;
    G13 I.1 D2 F10. ;
    G0 Z.1 ;
    M99;

    Run this in the air with your numbers and make adjustments as necessary. You'll get it!

  15. #14
    Join Date
    Aug 2005
    Location
    CT
    Posts
    8,700
    Post Thanks / Like
    Likes (Given)
    528
    Likes (Received)
    2385

    Default

    Quote Originally Posted by gustafson View Post
    What I am trying to do is have one set of numbers. This has ramifications beyond the program that we are running today. It allows me to take that program as a template and in a matter of seconds modify it virtually risk free to a new completely different program [drill csink tap burr] which might have the holes in the wrong location but will be the same wrong location. I do thousands of parts but only half a dozen shapes, so add a hole, delete a hole move three holes, whatever.
    Sorry, not gonna happen unless you ( or someone ) write a macro to use the same sub for a built-in canned cycle and a custom one.
    Yes, your Heidenhein may do it because they ( Krauts ) made the custom macro, but Fanuc did not, neither did Brother.

    Could this be done? My guess is yes, perhaps not even that difficult.
    One could modify any one of the G8x cycles from the as-supplied set, give it another name, say G85.9, and after that just use it the same way
    as you're using the G81, G83 and G86 for spot, drill and tap, including the sub-calls.

    IOW you are missing something that you're used to, but, unfortunately, you just have to get used to it.
    I am fairly certain I'd hate Heidenhein for a while if I was all of a sudden exposed to it.
    But then again, if it reads standard ISO G-code, then I'd might only be pissed long enough to say fuck the German's thinking and use a common set of
    tools that works pretty much across the board with all other machines.
    That is BTW the same exact reason there will never be a conversational control in my shop.
    Ever!

  16. #15
    Join Date
    Mar 2013
    Country
    UNITED STATES
    State/Province
    Oregon
    Posts
    2,294
    Post Thanks / Like
    Likes (Given)
    952
    Likes (Received)
    2987

    Default

    Honestly, I'm a little confused why you apparently *need* to do this.

    Anyhow, if you create a sub-program that does your deburring operation using incremental coordinates, and you do do some basic macro programming, you can create your own canned cycle on the Speedio. You can even assign the sub-program it's own G-code and call it as a modal, then pass along your coordinates the same way you would with any canned cycle.

    Crack open your Programing Manual, section 6.5.

  17. Likes barbter liked this post
  18. #16
    Join Date
    Oct 2007
    Country
    SPAIN
    Posts
    6,403
    Post Thanks / Like
    Likes (Given)
    2342
    Likes (Received)
    1255

    Default

    Quote Originally Posted by gustafson View Post
    From a google search of this site,

    It is literally Greek to me, but is this something like what I will need to do?


    I copied this from training materials given to me a few years ago. I altered it to suit the purpose of this thread with the G13 call is the only modification done. I'm not smart enough to do this nor do I have access to actually test it on a machine at this point and time. Could/Would one of you macro guys look this over? Possibly run it though a simulator and see if it works?

    Brent

    Fanuc 0i series control.

    (Circular Pocket)

    6053 = 13 G-Code to call Macro program 9013

    G13 X0. Y0. Z-750 R1. A.05 I.02 J.02 K.25 W.8 C5.0 D3 F20.

    blah
    blah
    blah
    All this is, is a macro prog called via a user definable G code.
    In the (Fanuc) parameter #6053, user has inputted "13".
    User has created this prog, and named it "9013".
    Then when the user calls "G13", this macro prog is called and runs.

    Fanuc can do this for Parameters #6050>#6059.

    You can also do the same thing with user created M codes too (Parameters #6071>#6089)

    As an aside, has the control got any code verification on the machine? Even 2D wire graphics?
    If not, I would look at having something like NCPlot to backplot the progs that you're creating because it's the fast and simple editing that causes the dyslexic bangs on the machines....

  19. #17
    Join Date
    Sep 2006
    Location
    Abingdon, VA
    Posts
    3,881
    Post Thanks / Like
    Likes (Given)
    5089
    Likes (Received)
    3954

    Default

    Wonder if one of the spring-loaded deburr tools would work in this app?

    The tool where you rapid through the hole (with the cutting blade retracting against the spring), and when the tool exits the hole at the bottom, the blade extends, feed straight up in Z untill deburred, rapid out...

    ToolCat

  20. Likes 2outof3, Pete Deal liked this post
  21. #18
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    Quote Originally Posted by cnctoolcat View Post
    Wonder if one of the spring-loaded deburr tools would work in this app?

    The tool where you rapid through the hole (with the cutting blade retracting against the spring), and when the tool exits the hole at the bottom, the blade extends, feed straight up in Z untill deburred, rapid out...

    ToolCat
    Nope

    got a drawer with a few that are 20+ years old

    holes routinely pass partially through details on the far side.

  22. #19
    Join Date
    Sep 2002
    Location
    People's Republic
    Posts
    6,767
    Post Thanks / Like
    Likes (Given)
    809
    Likes (Received)
    3998

    Default

    Looks like G66 will do what I need

    G66

    I think

    Wish it allowed local subroutine call, but it appears brother only allows the 'P' call

  23. #20
    Join Date
    Jan 2014
    Country
    UNITED STATES
    State/Province
    Washington
    Posts
    5,886
    Post Thanks / Like
    Likes (Given)
    1018
    Likes (Received)
    3315

    Default

    This type thread has always made me wonder if more folks prefer builder provided special cycles or ones they create themselves.

    Personally, some builder cycles work like I want but in general I prefer the ability to make my own via macro programming.

    The OPís issue can be addressed via a macro that is written to behave exactly as desired rather than make do with a cycle the control builder thinks is good. Addditionally, as a macro the cycle can be called with a G66 and then it will execute at every subsequent XY position until cancelled just like a G8x cycle.

  24. Likes barbter liked this post

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •