Okuma OSP-U100M Spiral pocket milling
First of all, there's no real point in this, im just trying to figure out how to do it for the fun of it.
I wanna mill a spiral into the face of my part. Say we make a program:
Code:
[Tool-selection and spindle-speed and all that goes here...]
G00 Z100 (Positioning)
G00 X100 Y0 (Positioning)
G01 Z-3 (Positioning)
G03 X0 Y0 I100 (Milling a full circle around X0 Y0 with a radius of 100)
G00 Z10 (Positioning)
Here the mill will start in X100 Y0, make it's way around, and return to X100 Y0. However, i want it to end it's circle at X50 Y0.
So the radius of the toolpath gradually decreases as it goes around.
I found this:
Code:
First you position yourself at the desired starting coordinates of the toolpath.
Next, you add the following line of code:
G17 G2.1 or G3.1 X__ Y__ I__ J__ P__
Detail:
G17 = Cutting-face X-Y
G2.1 or G3.1 = Milling direction
X and Y = Arc end point Coordinates
I and J = Arc center coordinates
P = Number of pitches ( P can be omitted If equal to 0.)
(Source: How to make Spiral interpolation G02.1 G03.1 Program - Online Education)
Naturally this does not work with okuma as it does not recoqnize G2.1 and G3.1 (?)
Re: Okuma OSP-U100M Spiral pocket milling
If you want it in true G01/G02 arcs, then you are probably not going to find a "true" spiral as an answer.
But if you break it up into small straight-line moves, it becomes pretty straightforward.
I don't have the time to do it right now, been off for a few days and playing catch up - but give me a few days, or someone else can run with this one...
Start with
CDIA=100 (current diameter)
PTCH=50 (dx between each loop of the spiral)
RZLN=.2 (resolution / chord length of each cut)
then a loop with some sin/cos x/y moves, decrease the CDIA each pass...
I may look into this tonight... sounds like fun!
EDIT:
OK, it gnawed at my brain until I just did it...
I think this will work, I may have my sin/cos flipped
I pulled out the chord length calculation, and just went with 1 degree of arc per move.
Apologies if there is something wrong; I don't have a machine available at the moment to verify it, but this should be pretty close!
CDIA=100 (CURRENT DIAMETER)
CANG=0 (CURRENT ANGLE)
PTCH=10 (PITCH)
N10 (LOOP HERE)
CANG=CANG+1 (1 MORE DEGREE)
IF [CANG LT 360] N11 (IF MORE THAN 360)
CANG=0 (THEN RESET TO 0)
N11 JUMP HERE
X=[[COS[CANG]]*CDIA]/2 (DIVIDE BY 2 FOR DX FROM CENTER)
Y=[[SIN[CANG]]*CDIA]/2 (DITTO)
CDIA=CDIA-[[PTCH/2]*[CANG/360]] (SHRINK THE DIAMETER]
GOTO N10
Re: Okuma OSP-U100M Spiral pocket milling
Had the opportunity to test this just now.
Threw an error.
2206 - syntax 2
Re: Okuma OSP-U100M Spiral pocket milling
Re: Okuma OSP-U100M Spiral pocket milling
OK, I'm done playing with it...
I added RZLN variable, this will be the angle per straight-line move.
Setting it at 90, for example, will produce a square shape (a "squiral?"), at 45 will give an octagon, 1 should be pretty close to round, but the smaller this value, the more accurate the shape. At some point, setting it too small will produce moves too small for the machine resolution.
CDIA=100 (CURRENT DIAMETER)
PTCH=10 (PITCH)
RZLN=1 (DEGREES PER CHORD)
CANG=0 (CURRENT ANGLE)
N10 (LOOP HERE)
CANG=CANG+RZLN (1 MORE DEGREE)
IF [CANG LT 360] N11 (IF MORE THAN 360)
CANG=0 (THEN RESET TO 0)
N11 (JUMP HERE)
X=[[COS[CANG]]*CDIA]/2 (DIVIDE BY 2 FOR DX FROM CENTER)
Y=[[SIN[CANG]]*CDIA]/2 (DITTO)
CDIA=CDIA-[[PTCH/2]*[RZLN/360]] (SHRINK THE DIAMETER)
GOTO N10
Re: Okuma OSP-U100M Spiral pocket milling
Check the "shrink the diameter" line; my initial post had the message end with a square bracket rather than a parenthesis.
I'll be in the shop working on a few projects today; I'll plug this in and make sure it runs through the graphics OK.
Re: Okuma OSP-U100M Spiral pocket milling
Quote:
Originally Posted by
ghyman
CDIA=100 (CURRENT DIAMETER)
PTCH=10 (PITCH)
RZLN=1 (DEGREES PER CHORD)
CANG=0 (CURRENT ANGLE)
N10 (LOOP HERE)
CANG=CANG+RZLN (1 MORE DEGREE)
IF [CANG LT 360] N11 (IF MORE THAN 360)
CANG=0 (THEN RESET TO 0)
N11 (JUMP HERE)
X=[[COS[CANG]]*CDIA]/2 (DIVIDE BY 2 FOR DX FROM CENTER)
Y=[[SIN[CANG]]*CDIA]/2 (DITTO)
CDIA=CDIA-[[PTCH/2]*[RZLN/360]] (SHRINK THE DIAMETER)
GOTO N10
So i made it work, but i did some adjustments (Some in order to make it work, and some for fun):
VC1=100 (CURRENT DIAMETER, RENAMED FROM VCDIA)
VC2=10 (PITCH, RENAMED FROM PTCH)
VC3=1 (DEGREES PER CHORD, RENAMED FROM RZLN)
VC4=0 (CURRENT ANGLE, RENAMED FROM CANG)
VC5=4 (NUMBER OF CIRCLES, TURNS, TO MAKE)
VC6=0 (TURN COUNTER)
-
VC5=VC5+1 (THIS ADDS 1 TURN TO THE COUNTER, THIS IS NECESSARY AS IT MAKES 1 LESS TURN THEN THE ENTERED VALUE)
N10 (LOOP HERE)
VC4=VC4+VC3 (1 MORE DEGREE)
-
IF [VC4 LT 360] N11 (IF MORE THAN 360)
VC4=0 (THEN RESET TO 0)
VC6=VC6+1 (ADDS 1 TO THE TURN COUNTER)
IF[VC6 EQ VC5] N12 (IF IT HAS COMPLETED ALL THE TURNS, IT WILL GO TO N12)
-
N11 (JUMP HERE)
X=[[COS[VC4]]*VC1]/2 Y=[[SIN[VC4]]*VC1]/2
VC1=VC1-[[VC2/2]*[VC3/360]] (SHRINK THE DIAMETER)
GOTO N10
-
N12
G01 Z5
G00 Z100
M30
Thanks for the help, much appreciated.
Re: Okuma OSP-U100M Spiral pocket milling
Hello and thank you for your work!
How could I change the direction CW/CCW via variable?
Is it possible to add a circle at the end so that there is no step left?
How to call this via a macro call ?
Thank you !
Re: Okuma OSP-U100M Spiral pocket milling
Code:
NOEX LVX = ... LVY = ... LVR = ... ( xy pos, rad )
NOEX LVSS = 0 LVSG = 0 ( spindle & toolpath sense : 0 right , 1 left )
NOEX LVZC = 5 LVZS = 0.1 LVZL = 20 ( z clearance, z step, number of loops )
( * )
index position T M110
G137 G00 X + LVX + LVR Y + LVY Z + LVZC SB = ? M = 13 + LVSS M08 M63 II = 0 JJ = - 1
( helix ) CALL OCUT II = II + 1 Q = LVZL * 2
( bottom circle ) CALL OCUT Q2
G136 G00 Z + LVZC M12 M09
index position T M109 M02
OCUT
G = 102 + LVSG X + LVX + LVR * JJ Y + LVY L = LVR Z + LVZC - LVZS / 2 * II F ? G95/94 JJ = - JJ
RTS