Page 1 of 2 12 LastLast
Results 1 to 12 of 19

Thread: Ball in a cage example

  1. #1
    Registered
    Join Date
    Feb 2006
    Location
    United States
    Posts
    293
    Downloads
    0
    Uploads
    0

    Ball in a cage example

    I was feeling like making something fun, and this looked like it.

    I stole the original code from EMC's wiki but then modified it slightly to run on fanuc controls, and added roughing passes. I only had a stub ball mill, so the roughing lets you specify a max cutter engagement depth for each pass. There are lots more ways to clean it up an add more features.

    Code:
    %
    O0070  (BALL IN CUBE)
    (CENTER TOP OF CUBE IS XYZ ZERO)
    #1=1.5 (SIZE OF BOX AND DIAMETER OF FINISHED BALL)
    #2=0.0625 (BALL MILL CUTTER RADIUS)
    #3=0.125 (SIZE OF BOX BARS)
    #4=5.0 (DEGREES OF STEPOVER RESOLUSION AT THE CORNERS)
    #5=#4 (STEPOVER COUNTER)
    #6=[[#1/2]+#2] (ACTUAL CUTTER PATH RADIUS OF SPHERE -- CUTTER RADIUS + RADIUS)
    (#6 ALSO MINIMUM TOOL FLUTES REQUIRED FOR FULL SPHERE)
    #7=5.0 (FEED RATE)
    #10=2.0 ( > 1 EQUALS A ROUGH PASS AT #10*#4 STEPOVER)
    IF [#10 LT 1.0] THEN #10=1.0 (SAFTEY CHECK - KEEP #10 >= 1.0)
    #11=0.05 (ROUGH PASS MATERIAL TO LEAVE IN Z)
    #12=0.17 (MAX Z DEPTH PER ROUGH PASS)
    #13=FUP[[#6-#11]/#12] (ROUGH PASSES TO TAKE)
    #14=[#6-#11]/#13 (Z PER ROUGH PASS)
    #15=#11+#14*#13 (SET ROUGHPASS Z OFFSET)
    
    G90 G57 G0 X0 Y0 M3 S4000
    (G43 Z1.0 H1)
    Z0.1
    
    N0010
       IF [#10 LE 1.0] THEN #15=0 (FINISH Z LEVEL)
       #8 = [[SIN[#5*#10]*#6]*SIN[45]] ( X AND Y ARC START POSISION)
       #9 = [0-[[1-COS[#5*#10]]*#6]]+#15 (ARC Z START HIGHT)
       IF [#8 LT [#1/2-#2-#3]] GOTO 20
       #8 = [#1/2-#2-#3]  (SET LAST PASS AT FINISHED BAR SIZE)
       #9 = 0-[#6 - SQRT[#6*#6 - [#8*#8+#8*#8]]]+#15
       N0020
       IF [#9 GT 0] GOTO 15 (WOULD ONLY CUT AIR, STILL ABOVE Z0)
       G1X[#8]Y[#8] F#7
       Z[#9] F[#7/3]
       G18 G02 X[0-#8]Z[#9]I[0-#8]K[0-[#9+[#6]]] F[#7]
       G19 G03 Y[0-#8]Z[#9]J[0-#8]K[0-[#9+[#6]]]
       G18 G03 X[#8]Z[#9]I[#8]K[0-[#9+[#6]]]
       G19 G02 Y[#8]Z[#9]J[#8]K[0-[#9+[#6]]]
       N0015
       #5=[#5+#4]
    IF [#8 LT [#1/2-#2-#3]] GOTO 10
    
    #5=#4 (RESET STEPOVER COUNTER FOR NEXT ROUGH-FINISH PASS) 
    G0 Z0.1 
    X0 Y0
    
    IF [#10 LE 1.0] GOTO 9000 (DONE)
    #13=#13-1.0 (STEP DOWN Z RIOUGHING PASS)
    IF [#13 LT 0] GOTO 100 (ROUGHING DONE)
    #15=#11+#14*#13 (STARTING ROUGHPASS Z OFFSET)
    GOTO 10
    N0100
    #10=1.0
    GOTO 10
    
    N9000
    G0 Z1.0
    M9
    M5
    M30
    %
    I made the mistake of trying to cut the 6th side while just grabbing the sides of the ball :/ It is cut free at least, just not a full sphere.
    Attached Thumbnails Attached Thumbnails Ball in a cage example-dscn1344.jpg  


  2. #2
    Registered CNCRim's Avatar
    Join Date
    Feb 2006
    Location
    usa
    Posts
    949
    Downloads
    0
    Uploads
    0
    nice work!!!!!!!
    The best way to learn is trial error.


  3. #3
    Registered
    Join Date
    Feb 2006
    Location
    india
    Posts
    1,273
    Downloads
    0
    Uploads
    0
    The cube appears to have been machined from five sides, after suitably tilting it everytime. How did you ensure accuracy in positioning, so that the workpiece zero point does not shift. The starting cube may not have been a perfect cube.

    I also have machined a half-sphere, but used a CAM software to generate the toolpath.


  4. #4
    Moderator tobyaxis's Avatar
    Join Date
    Jan 2006
    Location
    USA
    Posts
    4,394
    Downloads
    0
    Uploads
    0
    This is one of the best things about being a machinist. We can make what ever we can imagine.

    Great job on this dpuch!!!!!
    Toby D.
    "Imagination and Memory are but one thing, but for divers considerations have divers names"
    Schwarzwald

    (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)

    www.refractotech.com


  • #5
    Registered ImanCarrot's Avatar
    Join Date
    Nov 2005
    Location
    UK
    Posts
    1,468
    Downloads
    0
    Uploads
    0
    Oh, I am sooo gonna make one of them. That is awesome!
    I love deadlines- I like the whooshing sound they make as they fly by.


  • #6
    Registered
    Join Date
    May 2005
    Location
    canada
    Posts
    1,164
    Downloads
    0
    Uploads
    0
    Quote Originally Posted by dpuch View Post
    I made the mistake of trying to cut the 6th side while just grabbing the sides of the ball :/ It is cut free at least, just not a full sphere.
    How would you approach the 6th side if cutting another one ?

    Very cool btw
    Anyone who says "It only goes together one way" has no imagination.


  • #7
    Registered
    Join Date
    May 2007
    Location
    US
    Posts
    779
    Downloads
    0
    Uploads
    0
    Quote Originally Posted by cyclestart View Post
    How would you approach the 6th side if cutting another one ?

    Very cool btw
    There are some metal alloys available from MSC, Travers, etc. which melt at low temps, less then boiling water. And when the freeze they expand a very little bit.
    So freeze the part in some of that, machine it, then melt it to get the parts.


  • #8
    Registered
    Join Date
    Jul 2003
    Location
    Holmen, WI
    Posts
    1,193
    Downloads
    0
    Uploads
    0
    That is just awesome. I wrote that program initally to test the owords in emc2. I never acutally finished one to see if it actually worked.

    Nice work!

    sam
    Attached Thumbnails Attached Thumbnails Ball in a cage example-woodcube.jpg   Ball in a cage example-axisubuntu.jpg  
    Last edited by samco; 02-26-2010 at 09:34 AM. Reason: add screenshot


  • #9
    Registered
    Join Date
    Jul 2003
    Location
    Holmen, WI
    Posts
    1,193
    Downloads
    0
    Uploads
    0
    re: holding for the last cut..

    I was always going to machine a negative of the ball and cage and put it in a vise. The negative would hold the ball and cage well enough to finish the last side. (that was my hope anyways)

    sam


  • #10
    Registered ImanCarrot's Avatar
    Join Date
    Nov 2005
    Location
    UK
    Posts
    1,468
    Downloads
    0
    Uploads
    0
    I've seen stuff like this b4 (but it was a lose cube) and they used wax to hold the last face.
    I love deadlines- I like the whooshing sound they make as they fly by.


  • #11
    Registered
    Join Date
    Feb 2006
    Location
    United States
    Posts
    293
    Downloads
    0
    Uploads
    0
    Thanks everyone for the comments.

    Quote Originally Posted by sinha_nsit View Post
    How did you ensure accuracy in positioning, so that the workpiece zero point does not shift.
    Nothing special, I did start out with a cube I machined to about ±0.002" within square. I just used a fixed stop in a vice to relocate the block as I rotated it. As this was a first try I didn't really worry about trying to get really tight tolerances or fine finish.

    Quote Originally Posted by cyclestart View Post
    How would you approach the 6th side if cutting another one?
    Anders comment below is exactly what I was thinking of. The way the program is written you can have VERY small squares of material left on the 6 sides of the ball. I had a minor hope that clamping tight enough on these (flexing in the cage) and reducing the feed rate to about 10% would be enough. But the ball rotates too easily on such small contact points. I think it might work if it a clamp was put on 90° to keep it from rotating.

    Quote Originally Posted by Andre' B View Post
    There are some metal alloys available from MSC, Travers, etc. which melt at low temps, less then boiling water. And when the freeze they expand a very little bit.
    So freeze the part in some of that, machine it, then melt it to get the parts.
    Yep, CeroBEND or CeroSAFE or similar.

    Quote Originally Posted by samco View Post
    That is just awesome. I wrote that program initally to test the owords in emc2. I never acutally finished one to see if it actually worked.
    Great to have your input! Yep the math and code worked well. Like I said, I did have to change the o code loop logic to fanuc IF GOTO but otherwise the original ran fine as well. Most of the other changes were just to add the roughing passes capability. Oh, and one other to make sure the last pass left the right bar size regardless of the step over.

    If I get a chance to run another soon I'll take some more pictures of it in progress.


  • #12
    Registered
    Join Date
    Oct 2009
    Location
    usa
    Posts
    5
    Downloads
    0
    Uploads
    0
    Great job --- Nice


  • Page 1 of 2 12 LastLast

    Similar Threads

    1. Need help: Identify ball screw/ ball nut
      By RickOmatic in forum General Metal Working Machines
      Replies: 1
      Last Post: 07-27-2012, 05:04 PM
    2. Need Help!- KM3P Card Cage wires
      By winds1sj in forum HURCO
      Replies: 1
      Last Post: 07-05-2011, 09:48 PM
    3. Need Help!- Programming a Ball
      By stuby in forum G-Code Programing
      Replies: 1
      Last Post: 05-05-2008, 04:11 PM
    4. Ball Screws
      By jessslp05 in forum Linear and Rotary Motion
      Replies: 6
      Last Post: 04-27-2008, 12:28 PM
    5. Big Ball Screw & Ball Nut mistake.
      By Jack F in forum General Metal Working Machines
      Replies: 12
      Last Post: 04-28-2006, 11:53 PM

    Posting Permissions


     


    About CNCzone.com

      We are the largest and most active discussion forum from DIY CNC Machines to the Cad/Cam software to run them. The site is 100% free to join and use, so join today!

    Follow us on

    Facebook Dribbble RSS Feed


    Search Engine Friendly URLs by vBSEO ©2011, Crawlability, Inc.