View Full Version : G03


cibressus
07-28-2006, 12:47 PM
Sagely minds of the CNC Zone.

I am working on a program to make holes around a center point. (you can check it out here (http://www.cibressus.net/jscript/))
like this (x is center point, 0s are holes):
0
0 x 0
0
At anyrate, whats the best way to make a round hole using the G03 or G02 command?

Also, i'm considering implementing a piece of code where you can enter in your own gcode at each location drill point arround the center hole. but i can't think of a real use for it. your thoughts?

wmyerscnc
07-29-2006, 01:40 AM
I have a format I use frequently. I will assume the cutting path is at a 1.000 radius for simplicity. you can easily scale it appropriately:

G00X0Y0
Z.1
G01Z-1.
G41D1(CUTTER COMP LEFT)
G01X.5Y-.5
G03X1.Y0I0J.5
G03I-1.J0
G03X.5Y.5I-.5J0
G01X0Y0
G40
G00Z.1

Good luck.

dertsap
07-29-2006, 03:06 AM
create a g3 sub program using g91 , and execute the sub at each abslute position

cibressus
07-29-2006, 05:51 PM
I have a format I use frequently. I will assume the cutting path is at a 1.000 radius for simplicity. you can easily scale it appropriately:

G00X0Y0
Z.1
G01Z-1.
G41D1(CUTTER COMP LEFT)
G01X.5Y-.5
G03X1.Y0I0J.5
G03I-1.J0
G03X.5Y.5I-.5J0
G01X0Y0
G40
G00Z.1

Good luck.

can you explain the g41 and g40 a bit? i tried playing arround with the numbers on my simulator, but the only thing that seems to make a difference is removing the line, which makes the hole a bit bigger.

wmyerscnc
07-29-2006, 10:59 PM
G41 and G42 are for left and right cutter radius compensation. G40 cancels either. Most machines have this capability, but some do not. It allows you to compensate for variations in cutter size or deflection, and in this case make the hole larger or smaller by adjusting an offset in the machine control. The "D1" specifies that it will use the value stored in offset #1 for the compensation. This is common nomenclature. Most controls require that compensation does not start or end on an arc, and should be done on a linear move.

As Dertsap said, make the path incremental as such:

O0001
(POSITION AND MILL CIRCULAR HOLE)
G90 G00 X0 Y0 Z.1
M98 P0002
G90 G00 X1. Y0 Z.1
M98 P0002
G90 G00 X1. Y1. Z.1
M98 P0002
G90 G00 X0 Y1.Z.1
M98 P0002
M30

O0002
(CIRCULAR HOLE SUB)
G90Z.1
G01Z-1.
G41D1(CUTTER COMP LEFT)
G91G01X.5Y-.5
G03X.5Y.5I0J.5
G03X0Y0I-1.J0
G03X-.5Y.5I-.5J0
G01X-.5Y-.5
G40
G90G00Z.1
M99

If your machine supports the G65 command, you can use the same sub program for any size hole:

O0001
(POSITION AND MILL CIRCULAR HOLE)
G90 G00 X0 Y0 Z.1
G65 P0002 A1.0 (1.0 RADIUS)
G90 G00 X1. Y0 Z.1
G65 P0002 A2.0 (2.0 RADIUS)
G90 G00 X1. Y1. Z.1
G65 P0002 A1.5 (1.5 RADIUS)
G90 G00 X0 Y1.Z.1
G65 P0002 A1.0 (1.0 RADIUS)
M30

O0002
(VARIABLE RAD CIRCULAR HOLE MACRO)
G90Z.1
G01Z-1.
G41D1(CUTTER COMP LEFT)
G91G01X[#1/2]Y-[#1/2]
G03X[#1/2]Y[#1/2]I0J[#1/2]
G03X0Y0I-[#1]J0
G03X-[#1/2]Y[#1/2]I-[#1/2]J0
G01X-[#1/2]Y-[#1/2]
G40
G90G00Z.1
M99

Bluesman
07-30-2006, 12:06 PM
For hole machining

8000(PILLAR HOLES)
#100=1.0(CUTTER DIAMETER)
#101=30.0(X CENTRE)
#102=30.0(Y CENTRE)
#103=0.0
#104=30.0(DEPTH OF HOLE)
#105=50.0(DIA OF HOLE)
#106=3000(SPNDLE SPEED)
#107=500.0(FEED)
#108=10(TOOL POS)
#110=20.0(DEPTH OF CUT)
G00G91G28Z0.0
G91G28X0.0Y0.0
T#108M06
G00G90G54X#101Y#102S#106M03
G43Z10.0H#108M08
N1WHILE[-#104LE#103]DO1
#103=[#103-#110]
IF[-#104GT#103]GOTO20
G1Z#103F[#107/3]
G03X[#101+#105-#100/2]R[[#105-#100]/4]F#107 I-[#105/2-#100/2]J0.0
X#101R[[#105-#100]/4]
G00Z10.0
END1
N20#103=-#104
G01Z#103F[#107/3]
G03X[#101+#105-#100/2]R[[#105-#100]/4]F#107[[#10-#100]/4]
G00Z10.0 M09
G00G91G28Z0.0
G91G28X0.0Y0.0
M30

tobyaxis
07-30-2006, 02:41 PM
This may not be on topic but has personal liking. A Yasnac MX2 Control has a G12/G13 which is a Spiral Interpolation. It starts in the middle and spirals out.

This removes a lot of material pretty fast with a lot less stress on the End Mill. Incorporated into a Sub-Program it is very useful. As for now it is a Canned Cycle. Maybe someone here can write a Macro for this? This had a pre-drilled hole first.

%
O9997
(G13 FORMAT)
G0G17G40G49G80G90M5
G91G28Z0M9
N1(REM .75D 3FLT C/C S/C M42 CBT)
G90G54G43G0H1X0Y0Z1.0S3500M3
G1Z.1F50.0
Z-.5F25.0
G13I.5D31K3.0Q.5F45.0
G1Z.1F75.0
G90G0Z1.0
G80M9
G91G28Z0M19
M30
%

G13 (CCW Interpolation)
I (Starting Arc Radius)
D (Tool Offset Designation Number)
K (Radius of the Finished Circle)
Q (Radius Increment or Step Over Distance)
F (Feed Rate "IPM")
**Note Parameter #6225 has to be set to use "D31" Radius Compensation G41/G42

Here is a basic Picture of what this Canned Cycle does
:cheers: