Expand LinuxCNC interpreter regression coverage

This commit is contained in:
2026-06-09 14:54:54 +08:00
parent 50757e45ba
commit 5bd8f12872
143 changed files with 10895 additions and 219 deletions

View File

@@ -0,0 +1,68 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_FEED_RATE(30.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SELECT_TOOL(0)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(0.1000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.1000, 0.0000, 0.1000, 0.1000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2500, -0.2500, 1.0000, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.5000, -0.5000, 1.5000, -0.2500, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.5000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
N..... SELECT_TOOL(2)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.0500, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.0500, 0.0000, 0.0500, 0.0500, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.9500, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2500, -0.3000, 0.9500, -0.3000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.4500, -0.5000, 1.4500, -0.3000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.5000, 0.0000, 1.7000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
N..... SELECT_TOOL(7)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 1.8500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(-0.3000, 0.0000, 1.8500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-0.4000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.7000, -0.4500, 1.7000, -0.4000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.4500, 0.0000, 1.4500, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2500, -0.2500, 1.4500, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.9500, 0.0500, 0.9500, -0.2500, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0500, 0.0000, 0.0500, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.0000, 0.1000, 0.0500, 0.1000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SELECT_TOOL(0)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,49 @@
g20 g64 g18 f30
g49
t0 m6
g0x.3z0
g40
g1x.1
g3x0z.1r.1
g1z1
g2r.25x-.25z1.25
g3r.25x-.5z1.5
g1z1.75
g0x.3
t2 m6
g43 h2
g0z0
g41
g1x.1
g3x0z.1r.1
g1z1
g2r.25x-.25z1.25
g3r.25x-.5z1.5
g1z1.75
g40
g0x.3
t7 m6
g43 h9
g0z1.85
g0x-.3
g42
g1x-.4
g2x-.5z1.75r.1
g1z1.5
g2r.25x-.25z1.25
g3r.25x0z1
g1z.1
g2r.1x.1z0
g40
g0x.3
g49
t0 m6
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,19 @@
T1 P1 Z0.0 X0.0 D0.1 I95.0 J155.0 Q1;
T2 P2 Z0.0 X0.0 D0.1 I85.0 J25.0 Q2;
T3 P3 Z0.0 X0.0 D0.1 I275.0 J335.0 Q3;
T4 P4 Z0.0 X0.0 D0.1 I265.0 J205.0 Q4;
T5 P5 Z0.0 X0.0 D0.1 I210.0 J150.0 Q5;
T6 P6 Z0.5 X0.5 D0.1 I120.0 J60.0 Q6;
T7 P7 Z0.0 X0.0 D0.1 I-30.0 J30.0 Q7;
T8 P8 Z0.0 X0.0 D0.1 I240.0 J300.0 Q8;
T9 P9 Z0.0 X0.0 D0.1 I0.0 J0.0 Q9;
T10 P10 Z0.0 X0.0 D0.0 I0.0 J0.0 Q0;
T11 P11 Z0.0 X0.0 D0.0 I95.0 J155.0 Q1;
T12 P12 Z0.0 X0.0 D0.0 I85.0 J25.0 Q2;
T13 P13 Z0.0 X0.0 D0.0 I275.0 J335.0 Q3;
T14 P14 Z0.0 X0.0 D0.0 I265.0 J205.0 Q4;
T15 P15 Z0.0 X0.0 D0.0 I210.0 J150.0 Q5;
T16 P16 Z0.0 X0.0 D0.0 I120.0 J60.0 Q6;
T17 P17 Z0.0 X0.0 D0.0 I-30.0 J30.0 Q7;
T18 P18 Z0.0 X0.0 D0.0 I240.0 J300.0 Q8;
T19 P19 Z0.0 X0.0 D0.0 I0.0 J0.0 Q9;

View File

@@ -0,0 +1,50 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SELECT_TOOL(3)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.0000, 0.0000, 1.5000, -0.5000, 1, 0.5000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.0000, 1.0000, 1.0000, 1.0000, -1, 0.5000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.0000, 2.0000, -0.8229, 2.8229, 1, 0.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0000, 1.0000, 0.7000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("This is perverse on purpose.")
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... ARC_FEED(1.0884, -0.0884, 1.5979, -0.5979, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... ARC_FEED(1.0000, -0.1250, 1.0000, 0.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.1250, 1.0000, 1.0000, 1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... ARC_FEED(-0.0514, 1.1139, 0.0000, 1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.8861, 2.0514, -0.8229, 2.8229, 1, 0.4000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... ARC_FEED(1.0884, 2.0884, 1.0000, 2.0000, -1, 0.4000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0884, 1.0884, 0.2000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... ARC_FEED(2.0884, 0.9116, 2.0000, 1.0000, -1, 0.2000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0884, -0.0884, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0884, -0.0884, 1.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,28 @@
G20
T3 M6
G0 X0 Y0
F100
G0 Z1
X2Y0
G3 X1Y0 R[.5*SQRT[2]] Z.5
G2 X0Y1 R1
G3 X1Y2Z.9 R2
G1 X2Y1Z.7
X1Y0Z.5
G0Z1
(This is perverse on purpose.)
G0 Z1
G92 Z.5
X2Y0
G41
G3 X1Y0 R[.5*SQRT[2]] Z0
G91 G2 X-1Y1 R1
G90 G3 X1Y2Z.4 R2
G91 G1 X1Y-1Z-.2
G90 X1Y0Z0
G0Z1
G40
G92.1
M2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,5 @@
T1 P1 Z0.5 D0.0625;first tool
T2 P2 Z0.7 D0.125;
T3 P3 Z0.5 D0.25;
T4 P4 Z0.7 D1.0;
T32 P32 Z0.5 D0.0;last tool

View File

@@ -0,0 +1,47 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("this is the program describing entry moves for")
N..... COMMENT("radius compensation in Figure 3 of the Handbook")
N..... COMMENT("http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_38a.html#999268")
N..... SET_FEED_RATE(60.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... COMMENT("first, no compensation so we can see the part outline")
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.0000, 3.0000, 2.0000, 4.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.0000, 2.0000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0000, -1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.0000, -2.0000, 2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-2.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-2.6000, -0.2000, -2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.4000, 2.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.0000, 3.0000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("with compensation")
N..... SELECT_TOOL(4)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(1.5000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.0000, 3.5000, 2.0000, 4.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.5000, 2.0000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5000, -1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.0000, -2.5000, 2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-2.0000, -2.5000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-2.9000, 0.2000, -2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.1000, 3.2000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.0000, 3.5000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,33 @@
(this is the program describing entry moves for)
(radius compensation in Figure 3 of the Handbook)
(http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_38a.html#999268)
g20 f60
(first, no compensation so we can see the part outline)
g0 x1 y5
g1 y4
g3 x2 y3 i1
g2 x3 y2 j-1
g1 y-1
g2 x2 y-2 i-1
g1 x-2
g2 x-2.6 y-0.2 j1
g1 x1.4 y2.8
g2 x2 y3 i.6 j-.8
(with compensation)
t4 m6
g0 x1 y5
g41 g1 y4
g3 x2 y3 i1
g2 x3 y2 j-1
g1 y-1
g2 x2 y-2 i-1
g1 x-2
g2 x-2.6 y-0.2 j1
g1 x1.4 y2.8
g2 x2 y3 i.6 j-.8
g40
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,5 @@
T1 P1 Z0.5 D0.0625;first tool
T2 P2 Z0.7 D0.125;
T3 P3 Z0.5 D0.25;
T4 P4 Z0.7 D1.0;
T32 P32 Z0.5 D0.0;last tool

View File

@@ -0,0 +1,107 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_FEED_RATE(60.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... COMMENT("arc entry")
N..... COMMENT("uncomp")
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... ARC_FEED(0.5000, 0.7500, 0.5000, 0.5000, -1, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("comp")
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("line entry")
N..... COMMENT("uncomp")
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.5000, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("comp")
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.2500, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.2500, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.2500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,81 @@
g20 f60
(arc entry)
(uncomp)
g0x0y.5z.25
g1x.25
g41 g2 d0 x.5 y.75 i.25
g1 x.75
g40 x1
x1.25 z.25
(comp)
g0x0y.5z.25
g1x.25 z0
g41 g2 d2 x.5 y.75 i.25
g1 x.75
g40 x1
x1.25 z.25
g0x0y.5z.25
g1x.25
g41 g2 d2 x.5 y.75 i.25 z0
g1 x.75
g40 x1
x1.25 z.25
g0x0y.5z.25
g1x.25
g41 g2 d2 x.5 y.75 i.25
g1 x.75 z0
g40 x1
x1.25 z.25
g0x0y.5z.25
g1x.25
g41 g2 d2 x.5 y.75 i.25
g1 x.75
g40 x1 z0
x1.25 z.25
(line entry)
(uncomp)
g0x0y-.5z.25
g1x.25
g41 g1 d0 x.5 y-.25
g1 x.75
g40 x1
x1.25 z.25
(comp)
g0x0y-.5z.25
g1x.25 z0
g41 g1 d2 x.5 y-.25
g1 x.75
g40 x1
x1.25 z.25
g0x0y-.5z.25
g1x.25
g41 g1 d2 x.5 y-.25 z0
g1 x.75
g40 x1
x1.25 z.25
g0x0y-.5z.25
g1x.25
g41 g1 d2 x.5 y-.25
g1 x.75 z0
g40 x1
x1.25 z.25
g0x0y-.5z.25
g1x.25
g41 g1 d2 x.5 y-.25
g1 x.75
g40 x1 z0
x1.25 z.25
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,5 @@
T1 P1 Z0.5 D0.0625;first tool
T2 P2 Z0.7 D0.125;
T3 P3 Z0.5 D0.25;
T4 P4 Z0.7 D1.0;
T32 P32 Z0.5 D0.0;last tool

View File

@@ -0,0 +1,3 @@
;Cannot put an a in canned cycle
g81 x0 y0 z-1 r0 f12
a90

View File

@@ -0,0 +1,2 @@
;Cannot put an a in canned cycle
g81 x0 y0 z-1 r0 a90 f12

View File

@@ -0,0 +1,6 @@
;Radius to end of arc differs from radius to start: start=(X0.0000,Y0.0000) center=(X300.1428,Y0.0000) end=(X600.0000,Y0.0000) r1=300.1428 r2=299.8572 abs_err=0.2857 rel_err=0.0952%
g20
f1
g0x0y0z0
g2 x600 i[300 + [100 * [0.00101 * sqrt[2]]]]

View File

@@ -0,0 +1,6 @@
;Radius to end of arc differs from radius to start: start=(X0.0000,Y0.0000) center=(X3001.4284,Y0.0000) end=(X6000.0000,Y0.0000) r1=3001.4284 r2=2998.5716 abs_err=2.857 rel_err=0.0952%
g21
f1
g0x0y0z0
g2 x6000 i[3000 + [100 * [0.0101 * sqrt[2]]]]

View File

@@ -0,0 +1,6 @@
;Radius to end of arc differs from radius to start: start=(X0.0000,Y0.0000) center=(X99.8500,Y0.0000) end=(X200.0000,Y0.0000) r1=99.8500 r2=100.1500 abs_err=0.3 rel_err=0.2996%
g20
f1
g0x0y0z0
g2 x200 i[0.9985 * 100]

View File

@@ -0,0 +1,6 @@
;Radius to end of arc differs from radius to start: start=(X0.0000,Y0.0000) center=(X998.5000,Y0.0000) end=(X2000.0000,Y0.0000) r1=998.5000 r2=1001.5000 abs_err=3 rel_err=0.2996%
g21
f1
g0x0y0z0
g2 x2000 i[0.9985 * 1000]

View File

@@ -0,0 +1,6 @@
;Radius to end of arc differs from radius to start: start=(X0.0000,Y0.0000) center=(X2.4986,Y0.0000) end=(X5.0000,Y0.0000) r1=2.4986 r2=2.5014 abs_err=0.002857 rel_err=0.1142%
g20
f1
g0x0y0z0
g2 x5.000 y0 i[2.500 - [0.00101 * sqrt[2]]]

View File

@@ -0,0 +1,6 @@
;Radius to end of arc differs from radius to start: start=(X0.0000,Y0.0000) center=(X24.9857,Y0.0000) end=(X50.0000,Y0.0000) r1=24.9857 r2=25.0143 abs_err=0.02857 rel_err=0.1142%
g21
f1
g0x0y0z0
g2 x50.00 y0 i[25.00 - [0.0101 * sqrt[2]]]

View File

@@ -0,0 +1,7 @@
;The move just after exiting cutter compensation mode must be straight, not an arc
g0x0y0z0
g41.1d.25
g1x1f1
g1x2
g40
g2i1

View File

@@ -0,0 +1,9 @@
;Straight feed in concave corner cannot be reached by the tool without gouging
g0x0y0z0
g41.1d.25
g1x1f1
g1x2
g1y.1
g1x1
g40
g1x2

View File

@@ -0,0 +1,245 @@
%
( Storm door latch cam )
( Outside milling, clamped on center axis)
( Ed Nisley - Nov 2006 - Mar 2007)
(-----------------)
#1000 = 75.00 (tool change XYZ)
#1001 = 0.00
#1002 = 75.00
#1004 = 10.00 (traverse clearance)
(-----------------)
(Cutter and material values)
#1110 = 3.10 (cutter diameter from Sherline_mm.tbl entry, per #1113 tool slot)
#1111 = [0.0005 * 25.4] (chip load, inches/tooth -> mm/tooth)
#1112 = 2 (number of teeth)
#1113 = 1 (tool slot holding this cutter: verify this in *.tbl entry)
#1114 = 1.00 (max cut depth)
#1115 = 1.00 (max cut width)
#1120 = [150 * 12 * 25.4] (cutting speed, surface ft/min > mm/min)
#1121 = [#1120 / [3.14 * #1110]] (spindle RPM)
#1122 = [#1121 * #1111 * #1112] (milling feed, mm/min = RPM * load * teeth)
(-----------------)
(Part dimensions)
#1201 = 4.17 (shaft Z thickness)
#1202 = 2.95 (cam Z thickness)
#1211 = FUP[#1201 / #1114] (shaft Z passes)
#1212 = FUP[#1202 / #1114] (cam Z passes)
#1221 = [#1201 / #1211] (shaft Z cut depth)
#1222 = [#1202 / #1212] (cam Z cut depth)
#1230 = [17.75 / 2] (raw part OD -> radius)
#1231 = [10.30 / 2] (shaft finished OD and cam small OD)
#1232 = [17.36 / 2] (cam large OD)
#1241 = FUP[[#1230 - #1231] / #1115] (shaft radius passes)
#1242 = FUP[[#1230 - #1232] / #1115] (cam OD radius passes)
#1251 = [[#1230 - #1231] / #1241] (shaft radius cut depth)
#1252 = [[#1230 - #1232] / #1242] (cam OD radius cut depth)
#1272 = [216 / 2] (half-angle of cam solid arc)
#1300 = 1.60 (inside corner fillet radius)
(-----------------)
(Define setup)
G90 (absolute coordinates)
G21 (metric units)
S #1121 (set spindle speed)
F #1122 (set milling feed)
T #1113 M6 (set up the tool)
(-----------------)
(msg,Verify METRIC Sherline.tbl file!)
(msg,Align XY=0 at center, Z=0 at surface, spindle to match S value, hit [Run])
M0 (wait for Resume)
M3 (spindle CW)
G0 Z#1004 (get air for alignment)
(-----------------)
(Commence cutting!)
(Start cutter compensation)
(External cutting: CCW around the part)
G0 X[0-#1300] Y[0-[#1230 + 3 * #1300]] (alignment move)
G42 D#1113 (comp on: tool to right, D = cutter)
G1 X[0-#1300] Y[0-[#1230 + #1300]] (first entry move)
G2 X0 Y[0-#1230] I#1300 J0 (second entry move to part edge)
G0 Z#1004 (to traverse level)
(--- Cut shaft)
O309 IF [1]
#900 = 0 (Z iteration counter - start at surface)
#901 = 0.00 (initial Z cut depth)
O300 DO (Z iteration)
G1 Z#901 (to new Z level)
#910 = 0 (radius iteration counter)
#911 = #1230 (initial radius - start at raw OD)
O310 DO (radius iteration)
O311 IF [#911 NE #1230] (if new is not max OD, then reposition)
G91 (relative coords)
G2 Y[0 - 2 * #1300] J[0-#1300] (loop outward by min radius)
G2 Y[#1251 + 2 * #1300] J[#1300 + #1251 / 2] (loop inward to new radius)
G90 (abs coords)
O311 ENDIF
G3 Y[0-#911] J[#911] (one pass CCW around shaft)
#910 = [#910 + 1] (tick radius counter)
#911 = [#911 - #1251] (figure next radius)
O310 WHILE [#910 LE #1241] (for all radius passes)
G2 Y[0 -[#1230 + 2 * #1300]] J[0 -[[[#1230 - #1231] / 2] + #1300]] (align to max OD)
G2 Y[0 -#1230] J[#1300]
#900 = [#900 + 1] (tick loop counter)
#901 = [#901 - #1221] (next Z level)
O300 WHILE [#900 LE #1211] (for all Z steps)
O309 ENDIF
(--- Cut cam OD)
O349 IF [1]
#900 = 0 (Z iteration counter - at top of cam)
#901 = [0-#1201] (initial Z cut depth - top of cam = bottom of shaft)
O340 DO (Z iteration)
G1 Z#901 (to new Z level)
#910 = 0 (radius iteration counter)
#911 = #1230 (initial radius - start at raw OD)
O350 DO (radius iteration)
O351 IF [#911 NE #1230] (if new is not max OD, then reposition)
G91 (relative coords)
G2 Y[0 - 2 * #1300] J[0-#1300] (loop outward by min radius)
G2 Y[#1252 + 2 * #1300] J[#1300 + #1252 / 2] (loop inward to new radius)
G90 (abs coords)
O351 ENDIF
G3 Y[0-#911] J[#911] (one pass CCW around shaft)
#910 = [#910 + 1] (tick radius counter)
#911 = [#911 - #1252] (figure next radius)
O350 WHILE [#910 LE #1242] (for all radius passes)
G2 Y[0 -[#1230 + 2 * #1300]] J[0 -[[[#1230 - #1232] / 2] + #1300]] (align to max OD)
G2 Y[0 -#1230] J[#1300]
#900 = [#900 + 1] (tick loop counter)
#901 = [#901 - #1222] (next Z level)
O340 WHILE [#900 LE #1212] (for all Z steps)
O349 ENDIF
(--- Cut cam ID)
(This goes in to shaft OD)
(Realign for CW passes in air clearing max OD by a bit, CCW cutting in part)
G0 Z#1004 (reposition at clearance OD facing CW for next move)
#520 = [#1110 + 2 * #1300] (cutter dia + 2 x min fillet radius)
#521 = [#1230 + #520] ("exterior material contour" for air cutting)
G2 Y[0 -#521] J[0 -[#520 / 2]] (half-circle to new OD, cutter still to right)
#522 = [#521 - #1300] (O-P - dist origin to outer circle center)
#523 = [ASIN[#1300 / #522]] (alpha - angle cam edge to outer circle center)
#524 = [#1272 - #523] (beta - angle Y axis to outer circle center)
#525 = [#522 * COS[#523]] (O-B - dist origin to B tangent on cam edge)
#531 = [#521 * SIN[#524]] (A - X coord fairing circle tangent to OD)
#532 = [#521 * COS[#524]] (A - Y coord fairing circle tangent to OD)
#541 = [#525 * SIN[#1272]] (B - X coord fairing circle tangent to cam)
#542 = [#525 * COS[#1272]] (B - Y coord fairing circle tangent to cam)
#551 = [#522 * SIN[#524]] (P - X coord fairing circle center)
#552 = [#522 * COS[#524]] (P - Y coord fairing circle center)
#900 = 0 (Z iteration counter - start at top of cam again)
#901 = [0 -#1201] (initial Z cut level - top of cam = bottom of shaft)
O380 DO (Z iteration)
G1 Z#901 (to new Z level)
#910 = 0 (radius iteration counter)
#911 = #1230 (initial radius - start at raw OD)
O390 DO (radius iteration)
#622 = [#911 + #1300] (O-Q - dist origin to current inner circle center)
#623 = [ASIN[#1300 / #622]] (gamma - angle cam edge to inner circle center)
#624 = [#1272 - #623] (delta - angle Y axis to inner circle center)
#625 = [#622 * COS[#623]] (O-C - dist origin to C tangent on cam edge)
#631 = [#625 * SIN[#1272]] (C - X coord inner circle tangent to cam)
#632 = [#625 * COS[#1272]] (C - Y coord inner circle tangent to cam)
#641 = [#911 * SIN[#624]] (D - X coord inner circle tangent to shaft)
#642 = [#911 * COS[#624]] (D - Y coord inner circle tangent to shaft)
#651 = [#622 * SIN[#624]] (Q - X coord inner circle center)
#652 = [#622 * COS[#624]] (Q - Y coord inner circle center)
G2 X[0 -#531] Y[0 -#532] J[#521] (left side of air pass)
G2 X[0 -#541] Y[0 -#542] I[#531 - #551] J[#532 - #552] (fillet to cam edge)
G1 X[0 -#631] Y[0 -#632] (left cam edge)
G2 X[0 -#641] Y[0 -#642] I[#631 - #651] J[#632 - #652] (fillet to current shaft OD)
G3 X[#641] Y[0 -#642] I[#641] J[#642] (current shaft OD)
G2 X[#631] Y[0 -#632] I[#651 - #641] J[#642 - #652] (fillet to cam edge)
G1 X[#541] Y[0 -#542] (right cam edge)
G2 X[#531] Y[0 -#532] I[#551 - #541] J[#542 - #552] (fillet to air pass)
G2 X[0] Y[0 -#521] I[0 -#531] J[#532] (right side of air pass)
#910 = [#910 + 1] (tick radius counter)
#911 = [#911 - #1251] (figure next radius)
O390 WHILE [#910 LE #1241] (for all radius passes)
#900 = [#900 + 1] (tick loop counter)
#901 = [#901 - #1222] (next Z level)
O380 WHILE [#900 LE #1212] (for all Z steps)
(-----------------)
M5 (spindle off)
G0 Z#1002 (get air)
G40 (cutter comp off)
G0 X#1000 Y#1001 (return home)
(msg,Done!)
M2
%

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -t test.tbl -g cam.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,5 @@
T1 P1 Z0.5 D0.0625;first tool
T2 P2 Z0.7 D0.125;
T3 P3 Z0.5 D0.25;
T4 P4 Z0.7 D1.0;
T32 P32 Z0.5 D0.0;last tool

View File

@@ -0,0 +1,2 @@
This is a program generated by comp_tort.py, the cutter comp torture
tester. The paths are crazy and would never be written by a person.

View File

@@ -0,0 +1,889 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-100.0000, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.5626, -102.9785, -98.9043, -102.0972, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-97.5626, -99.9785, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-91.5626, -97.9785, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-90.3691, -100.6485, -92.9284, -100.1908, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-80.3691, -95.6485, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-100.2500, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.7510, -102.0221, -100.0000, -102.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.2047, -102.8923, -98.9043, -102.0972, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-97.4022, -100.1885, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-91.4836, -98.2156, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-91.4313, -97.7657, -91.5626, -97.9785, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-90.1230, -100.6926, -92.9284, -100.1908, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-80.3691, -95.6485, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-99.7500, -101.0449, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.7122, -103.1788, -98.9043, -102.0972, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.7706, -102.8398, -99.5626, -102.9785, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-97.7706, -99.8398, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-97.6417, -99.7413, -97.5626, -99.9785, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-92.2450, -97.9424, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-90.6151, -100.6045, -92.9284, -100.1908, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-80.3691, -95.6485, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-100.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-95.9230, -61.1205, -97.7596, -56.4700, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-97.9230, -57.1205, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-94.4408, -55.7452, -96.6064, -55.3579, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-95.5403, -52.5547, -92.6454, -53.3418, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-93.5403, -62.5547, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-100.2500, -51.8482, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-95.8312, -61.3530, -97.7596, -56.4700, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-95.6994, -61.0087, -95.9230, -61.1205, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-97.6994, -57.0087, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-97.7734, -56.9202, -97.9230, -57.1205, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-94.6869, -55.7012, -96.6064, -55.3579, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-94.5904, -55.9455, -94.4408, -55.7452, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-95.7816, -52.4891, -92.6454, -53.3418, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-93.5403, -62.5547, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-99.7500, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.8880, -52.2235, -100.0000, -52.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-96.2722, -60.9811, -97.7596, -56.4700, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-98.1209, -57.2838, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-94.1715, -55.6294, -96.6064, -55.3579, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-95.2991, -52.6203, -92.6454, -53.3418, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-93.5403, -62.5547, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-100.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-85.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-87.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-82.0000, -8.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-85.0000, -5.5000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-90.0000, 10.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-100.2500, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.9209, -2.2372, -100.0000, -2.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-85.4323, 2.5924, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-87.2321, -1.9072, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-87.1921, -2.1600, -87.0000, -2.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-83.9526, -6.0474, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-84.8400, -5.3079, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-90.0000, 10.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-99.7500, -1.6531, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-85.0791, 3.2372, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-84.7679, 2.9072, -85.0000, 3.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-86.7125, -1.9545, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-81.8079, -7.8400, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-82.1600, -8.1921, -82.0000, -8.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-85.1600, -5.6921, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-90.0000, 10.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-100.0000, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-105.0000, 43.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-103.9376, 42.8582, -104.3417, 43.8813, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-104.9376, 47.8582, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-104.1192, 52.4343, -103.3816, 49.9412, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-103.1192, 48.4343, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-100.2500, 48.1036, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-105.1768, 43.1768, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-105.1496, 42.7997, -105.0000, 43.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-103.8458, 42.6256, -104.3417, 43.8813, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-103.6925, 42.9072, -103.9376, 42.8582, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-104.6925, 47.9072, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-104.7880, 48.0585, -104.9376, 47.8582, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-104.0483, 52.1946, -103.3816, 49.9412, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-103.1192, 48.4343, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-99.7500, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.8232, 47.8232, -100.0000, 48.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-104.5808, 43.0656, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-104.2287, 43.0388, -104.3417, 43.8813, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-105.1645, 47.7177, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-104.1902, 52.6741, -103.3816, 49.9412, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-103.1192, 48.4343, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-100.0000, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-98.9901, 95.7407, -101.1557, 96.1280, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-97.5982, 97.4416, -98.3318, 96.6220, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-93.5982, 107.4416, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-96.5982, 105.4416, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-111.5982, 109.4416, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-100.2500, 98.4045, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-98.7440, 95.6967, -101.1557, 96.1280, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-98.8405, 95.9410, -98.9901, 95.7407, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-97.7649, 97.2553, -98.3318, 96.6220, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-97.3660, 97.3488, -97.5982, 97.4416, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-93.3660, 107.3488, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-93.7368, 107.6496, -93.5982, 107.4416, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-96.7368, 105.6496, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-111.5982, 109.4416, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-100.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-99.7500, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-100.1313, 97.7873, -100.0000, 98.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-99.2659, 95.6473, -101.1557, 96.1280, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-97.7149, 97.8228, -98.3318, 96.6220, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-94.1292, 106.7871, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-96.4595, 105.2336, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-111.5982, 109.4416, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-40.0977, -103.3221, -45.0196, -102.4418, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-39.5009, -104.6571, -40.7806, -104.4282, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.5009, -94.6571, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-57.8722, -99.6133, -56.0768, -97.2098, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-62.8722, -114.6133, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-50.2500, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-49.7510, -102.0221, -50.0000, -102.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-40.3437, -103.2781, -45.0196, -102.4418, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-40.2290, -103.5348, -40.0977, -103.3221, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-39.7593, -104.1844, -40.7806, -104.4282, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.3622, -94.4491, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.6322, -94.8698, -54.5009, -94.6571, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-57.7226, -99.4130, -56.0768, -97.2098, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-62.8722, -114.6133, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-49.7500, -100.1647, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-39.8257, -103.2073, -45.0196, -102.4418, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-39.2548, -104.7011, -40.7806, -104.4282, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-39.6395, -104.8651, -39.5009, -104.6571, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-53.1089, -95.8856, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-58.0218, -99.8136, -56.0768, -97.2098, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-62.8722, -114.6133, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-48.0000, -51.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, -41.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-55.0000, -44.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-53.0000, -54.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-38.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-50.2500, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-49.8882, -52.2236, -50.0000, -52.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-47.8882, -51.2236, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-47.7549, -50.9510, -48.0000, -51.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-49.7549, -40.9510, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-50.1286, -40.7856, -50.0000, -41.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-55.1286, -43.7856, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-55.2451, -44.0490, -55.0000, -44.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-53.2451, -54.0490, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-38.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-49.7500, -51.5955, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-48.2826, -50.8618, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.1756, -41.3969, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.7203, -44.1237, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-52.7549, -53.9510, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-38.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.0000, -6.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, -4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.2316, 8.2786, -52.3876, 2.0456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-48.2316, 12.2786, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-58.2316, 9.2786, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-50.2500, -1.8964, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.1768, -5.8232, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-53.8882, -6.2236, -54.0000, -6.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-49.8882, -4.2236, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-50.0918, -3.7675, -50.0000, -4.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.1606, 8.0388, -52.3876, 2.0456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.0929, 8.0706, -54.2316, 8.2786, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-48.0929, 12.0706, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-58.2316, 9.2786, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-49.7500, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-49.8232, -2.1768, -50.0000, -2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-52.7339, -5.0874, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-51.9378, -4.6894, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.3391, 8.5074, -52.3876, 2.0456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-48.3702, 12.4866, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-58.2316, 9.2786, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-52.0000, 33.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, 23.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-43.1830, 17.9077, -45.0196, 22.5582, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-46.1830, 16.9077, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-44.1830, 18.9077, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-50.2500, 48.0166, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-52.2478, 33.0330, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-52.2451, 32.9510, -52.0000, 33.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.2451, 22.9510, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-49.7510, 22.9779, -50.0000, 23.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-43.2686, 18.1427, -45.0196, 22.5582, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-46.2620, 17.1449, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-44.1830, 18.9077, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-49.7500, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-49.7522, 47.9670, -50.0000, 48.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-51.7467, 33.0082, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-49.9930, 24.2397, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-43.0911, 17.6752, -45.0196, 22.5582, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-43.1039, 17.6705, -43.1830, 17.9077, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-46.1039, 16.6705, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-44.1830, 18.9077, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-50.0000, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.0000, 104.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.5498, 105.5952, -53.1023, 105.2017, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-55.3718, 104.3868, -53.8777, 104.2543, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-57.5667, 104.8804, -56.1064, 106.2470, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-42.5667, 108.8804, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-50.2500, 98.8257, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-53.7920, 104.1387, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-53.8504, 104.2003, -54.0000, 104.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.3334, 105.4182, -53.1023, 105.2017, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-55.1272, 104.2212, -53.8777, 104.2543, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-57.7493, 104.7096, -56.1064, 106.2470, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-42.5667, 108.8804, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(-50.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(-49.7500, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-50.2080, 97.8613, -50.0000, 98.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-54.1851, 103.8269, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.7910, 105.6608, -53.1023, 105.2017, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-54.6618, 105.8187, -54.5498, 105.5952, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-55.6208, 104.4089, -53.8777, 104.2543, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-55.4636, 104.6193, -55.3718, 104.3868, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-57.3842, 105.0512, -56.1064, 106.2470, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-42.5667, 108.8804, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, -101.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(6.5716, -113.3904, 11.0601, -107.3818, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(7.3900, -108.8142, 8.1276, -111.3074, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.3900, -105.8142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(15.3900, -99.8142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-0.2500, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.0166, -102.2494, 0.0000, -102.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0166, -101.2494, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(15.1313, -100.7873, 15.0000, -101.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(6.4220, -113.5907, 11.0601, -107.3818, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(6.7212, -113.1901, 6.5716, -113.3904, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(7.4610, -109.0540, 8.1276, -111.3074, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(7.5980, -108.6756, 7.3900, -108.8142, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5980, -105.6756, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(15.3900, -99.8142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.2500, -101.7328, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(14.1180, -100.8082, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(5.3231, -111.8146, 11.0601, -107.3818, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(7.0052, -108.6877, 8.1276, -111.3074, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.1820, -105.9529, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(15.3900, -99.8142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0000, -55.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, -70.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-2.0000, -66.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-1.4008, -62.6495, -2.7346, -64.1398, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-4.4008, -68.6495, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-0.2500, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.2080, -52.1387, 0.0000, -52.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.7397, -55.0603, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.1403, -69.1604, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-1.7764, -65.8882, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-2.0918, -65.7675, -2.0000, -66.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-1.5675, -62.8358, -2.7346, -64.1398, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-4.4008, -68.6495, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.2500, -51.9243, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.2080, -54.8613, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.2478, -55.0330, 2.0000, -55.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2478, -70.0330, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.2236, -70.1118, 0.0000, -70.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-2.1265, -66.3061, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-1.2341, -62.4633, -2.7346, -64.1398, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(-4.4008, -68.6495, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-4.0000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(9.1465, 4.6122, 5.4785, 0.5140, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.7928, 4.8492, 6.2572, -0.0678, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(4.7928, 10.8492, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-0.2500, -1.1743, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-2.9824, 2.9243, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.1500, 0.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.2490, 0.9779, 0.0000, 1.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(8.9798, 4.4259, 5.4785, 0.5140, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(9.0152, 4.3995, 9.1465, 4.6122, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.9049, 4.6257, 6.2572, -0.0678, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(4.7928, 10.8492, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.2500, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.2080, -2.1387, 0.0000, -2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-4.2080, 3.8613, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-3.8500, 4.2000, -4.0000, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.1935, 1.4577, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(9.2967, 4.8132, 5.4785, 0.5140, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.6808, 5.0727, 6.2572, -0.0678, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(4.7928, 10.8492, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0000, 42.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 38.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.5892, 33.3694, 2.6342, 35.7877, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.5892, 35.3694, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(3.5892, 30.3694, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-0.2500, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.2236, 47.8882, 0.0000, 48.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.7641, 41.9127, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.7575, 37.9394, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.8687, 37.7873, 4.0000, 38.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.6457, 33.6665, 2.6342, 35.7877, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.7660, 35.5462, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(3.5892, 30.3694, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.2500, 48.0590, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.2236, 42.1118, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.2425, 42.0606, 3.0000, 42.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.2185, 38.1567, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.6810, 33.1369, 2.6342, 35.7877, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(3.4124, 33.1926, 3.5892, 33.3694, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.4124, 35.1926, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(3.5892, 30.3694, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-10.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-4.4251, 99.2557, -7.7596, 95.5300, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5749, 93.2557, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.5749, 103.2557, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(2.5749, 113.2557, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(-0.2500, 98.3050, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-9.1242, 100.0798, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-4.5918, 99.0694, -7.7596, 95.5300, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-4.5537, 99.0413, -4.4251, 99.2557, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.4463, 93.0413, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(5.8071, 93.3485, 5.5749, 93.2557, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.8071, 103.3485, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(2.5749, 113.2557, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(0.2500, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.0490, 97.7549, 0.0000, 98.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-10.0490, 99.7549, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-10.1120, 100.2235, -10.0000, 100.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-4.2763, 99.4580, -7.7596, 95.5300, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0672, 93.8519, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.3428, 103.1628, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(2.5749, 113.2557, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.0000, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.6090, -106.4074, 51.1650, -104.3244, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(54.6090, -116.4074, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(56.2815, -116.6307, 55.2811, -117.7484, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(62.2815, -106.6307, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(64.2815, -103.6307, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(49.7500, -101.8505, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.4113, -106.5709, 51.1650, -104.3244, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(54.3854, -116.5192, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(54.7210, -116.6309, 54.6090, -116.4074, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(56.1148, -116.8170, 55.2811, -117.7484, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(56.4959, -116.7593, 56.2815, -116.6307, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(62.4959, -106.7593, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(64.2815, -103.6307, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(50.2500, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(50.1120, -102.2235, 50.0000, -102.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.7586, -106.2071, 51.1650, -104.3244, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.8326, -106.2956, 49.6090, -106.4074, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(54.7287, -116.0878, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(56.2094, -116.2649, 55.2811, -117.7484, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(62.0671, -106.5021, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(64.2815, -103.6307, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(35.0000, -54.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(36.8512, -51.7379, 33.8980, -51.2097, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(38.8963, -53.2655, 38.3453, -51.8704, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(37.1643, -51.7154, 38.4188, -52.0564, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(43.1643, -55.7154, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(49.7500, -51.7811, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(36.0987, -53.6013, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(36.7952, -52.6825, 33.8980, -51.2097, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(38.9881, -53.4981, 38.3453, -51.8704, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(36.9231, -51.6498, 38.4188, -52.0564, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(43.1643, -55.7154, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(50.2500, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(50.0330, -52.2478, 50.0000, -52.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(35.0330, -54.2478, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(34.9082, -53.7675, 35.0000, -54.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(36.6051, -51.6938, 33.8980, -51.2097, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(37.1002, -51.7599, 36.8512, -51.7379, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(38.8045, -53.0330, 38.3453, -51.8704, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(37.4056, -51.7810, 38.4188, -52.0564, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(43.1643, -55.7154, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(49.0000, -7.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(51.0000, -5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.5399, -4.9354, 50.2120, -6.2764, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.9375, -5.8249, 50.5360, -5.0237, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(46.9375, -1.8249, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(49.7500, -1.9752, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(48.7549, -6.9510, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.1768, -7.1768, 49.0000, -7.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(51.0259, -5.3276, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.3385, -5.3822, 50.2120, -6.2764, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.7879, -6.0252, 50.5360, -5.0237, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(46.9375, -1.8249, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(50.2500, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(50.2451, -2.0490, 50.0000, -2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(49.4071, -6.2394, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.8232, -4.8232, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(51.1313, -4.7873, 51.0000, -5.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.4279, -4.7119, 50.2120, -6.2764, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.7889, -4.9575, 49.5399, -4.9354, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(50.0871, -5.6246, 50.5360, -5.0237, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(46.9375, -1.8249, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.0000, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(52.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(51.0000, 54.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(57.1324, 53.1813, 53.4644, 49.0830, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(47.2433, 48.2248, 53.7178, 47.6504, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(50.2433, 44.2248, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(49.7500, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(50.1768, 47.8232, 50.0000, 48.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(52.1768, 49.8232, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(52.2425, 50.0606, 52.0000, 50.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(51.2425, 54.0606, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(50.8880, 54.2235, 51.0000, 54.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(57.2992, 53.3675, 53.4644, 49.0830, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(57.2638, 53.3940, 57.1324, 53.1813, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(46.9943, 48.2469, 53.7178, 47.6504, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(50.2433, 44.2248, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(50.2500, 48.6036, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(51.7231, 50.0767, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.8355, 53.6274, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(56.9822, 52.9802, 53.4644, 49.0830, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(47.4923, 48.2027, 53.7178, 47.6504, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(50.2433, 44.2248, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(50.0000, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(55.0000, 95.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(60.0000, 96.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(61.1929, 93.3314, 62.9883, 95.7349, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(58.1929, 98.3314, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(64.1929, 96.3314, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(49.7500, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(49.8714, 97.7856, 50.0000, 98.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(54.8714, 94.7856, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(55.0490, 94.7549, 55.0000, 95.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(60.0490, 95.7549, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(60.2490, 95.9779, 60.0000, 96.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(61.3814, 93.5032, 62.9883, 95.7349, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(58.4073, 98.4601, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(64.1929, 96.3314, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(50.2500, 98.1415, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(55.0457, 95.2641, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(59.7731, 96.2096, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(61.0433, 93.1311, 62.9883, 95.7349, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(60.9785, 93.2028, 61.1929, 93.3314, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(57.9785, 98.2028, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(64.1929, 96.3314, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(110.0000, -104.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(114.4847, -114.0325, 112.4644, -108.9170, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(117.4847, -99.0325, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(118.4847, -109.0325, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(121.4847, -114.0325, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(99.7500, -102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(99.9510, -102.2451, 100.0000, -102.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(109.9510, -104.2451, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(110.1120, -104.2235, 110.0000, -104.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(114.8248, -113.6064, 112.4644, -108.9170, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(117.4021, -100.7198, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(118.2359, -109.0574, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(121.4847, -114.0325, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, -100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(100.2500, -101.7950, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(109.9658, -103.7382, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(114.5765, -114.2650, 112.4644, -108.9170, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(114.2395, -113.9835, 114.4847, -114.0325, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(117.2395, -98.9835, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(117.7334, -99.0076, 117.4847, -99.0325, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(118.7334, -109.0076, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(121.4847, -114.0325, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(115.0000, -47.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(119.0000, -51.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(123.0000, -53.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(122.1729, -62.3233, 125.4644, -57.9170, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(128.1729, -57.3233, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(99.7500, -52.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.0791, -52.2372, 100.0000, -52.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(114.9325, -47.2860, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(118.8232, -51.1768, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(118.8882, -51.2236, 119.0000, -51.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(122.8882, -53.2236, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(123.1120, -53.2235, 123.0000, -53.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(122.3225, -62.1230, 125.4644, -57.9170, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(128.1729, -57.3233, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, -50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(100.2500, -51.6531, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(114.9209, -46.7628, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(115.1768, -46.8232, 115.0000, -47.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(119.1481, -50.7945, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(123.0014, -52.7212, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(122.0233, -62.5236, 125.4644, -57.9170, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(128.1729, -57.3233, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(94.0000, -12.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(92.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.5488, -2.0854, 93.3442, 0.3180, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.8784, -0.2427, 91.1448, -1.0623, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(101.8784, 4.7573, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(99.7500, -1.9308, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(94.1533, -11.2585, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(92.2722, 2.8504, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.6985, -1.8852, 93.3442, 0.3180, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.4570, -1.8529, 91.5488, -2.0854, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.7117, -0.4290, 91.1448, -1.0623, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(101.8784, 4.7573, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(100.2500, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.2144, -2.1286, 100.0000, -2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(94.2144, -12.1286, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(93.7522, -12.0330, 94.0000, -12.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(91.7522, 2.9670, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.8880, 3.2235, 92.0000, 3.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(91.5070, -2.3629, 93.3442, 0.3180, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(92.0451, -0.0564, 91.1448, -1.0623, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(101.8784, 4.7573, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(101.6308, 44.3518, 100.8961, 46.2120, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(110.3364, 47.7899, 104.9223, 48.7582, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(111.3364, 48.7899, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(112.2333, 46.7834, 111.8293, 47.8065, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(116.2333, 36.7834, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(99.7500, 48.1482, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(101.5905, 44.0718, 100.8961, 46.2120, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(110.5680, 47.6680, 104.9223, 48.7582, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(111.4827, 48.5826, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(112.1415, 47.0159, 111.8293, 47.8065, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(116.2333, 36.7834, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 50.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(100.2500, 48.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.1120, 47.7765, 100.0000, 48.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(101.5390, 44.5843, 100.8961, 46.2120, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(101.7804, 44.5521, 101.6308, 44.3518, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(110.0903, 47.8339, 104.9223, 48.7582, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(110.1596, 47.9667, 110.3364, 47.7899, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(111.1596, 48.9667, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(111.2244, 49.0134, 111.3364, 48.7899, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(112.3252, 46.5509, 111.8293, 47.8065, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(116.2333, 36.7834, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(98.0000, 102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(102.0000, 107.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 102.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.8154, 100.1759, 100.4481, 101.1060, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(98.8154, 102.1759, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_FEED(99.7500, 99.0590, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(98.2951, 101.9687, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(101.1413, 105.5265, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(99.7679, 102.0928, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.1120, 101.7765, 100.0000, 102.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.7236, 100.4084, 100.4481, 101.1060, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(98.8154, 102.1759, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(100.0000)
N..... STRAIGHT_TRAVERSE(100.0000, 100.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... STRAIGHT_FEED(100.2500, 98.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(99.7764, 97.8882, 100.0000, 98.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(97.7764, 101.8882, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(97.8048, 102.1562, 98.0000, 102.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(101.8048, 107.1562, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(102.2321, 106.9072, 102.0000, 107.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.4114, 102.3555, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(100.9072, 99.9434, 100.4481, 101.1060, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(98.8154, 102.1759, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,476 @@
O0 sub (#1=radius)
F100
G0 X-100.000000 Y-100.000000
O1 if [#1 NE 0]
G41.1 D#1
O1 endif
g90 g1 y-102.000000
G2 I1.095697 J-0.097206 X-99.562609 Y-102.978473
G1 X-97.562609 Y-99.978473
G1 X-91.562609 Y-97.978473
G3 I-1.365837 J-2.212349 X-90.369054 Y-100.648542
G40
G1 X-80.369054 Y-95.648542
O0 endsub
F100
G21
O0 call [0]
O0 call [-.5]
O0 call [.5]
O2 sub (#1=radius)
F100
G0 X-100.000000 Y-50.000000
O3 if [#1 NE 0]
G41.1 D#1
O3 endif
g90 g1 y-52.000000
G3 I2.240368 J-4.469983 X-95.923035 Y-61.120458
G1 X-97.923035 Y-57.120458
G2 I1.316612 J1.762536 X-94.440783 Y-55.745223
G3 I1.795380 J2.403458 X-95.540324 Y-52.554728
G40
G1 X-93.540324 Y-62.554728
O2 endsub
F100
G21
O2 call [0]
O2 call [-.5]
O2 call [.5]
O4 sub (#1=radius)
F100
G0 X-100.000000 Y0.000000
O5 if [#1 NE 0]
G41.1 D#1
O5 endif
g90 g1 y-2.000000
G1 X-85.000000 Y3.000000
G1 X-87.000000 Y-2.000000
G1 X-82.000000 Y-8.000000
G1 X-85.000000 Y-5.500000
G40
G1 X-90.000000 Y10.000000
O4 endsub
F100
G21
O4 call [0]
O4 call [-.5]
O4 call [.5]
O6 sub (#1=radius)
F100
G0 X-100.000000 Y50.000000
O7 if [#1 NE 0]
G41.1 D#1
O7 endif
g90 g1 y48.000000
G1 X-105.000000 Y43.000000
G3 I0.658306 J0.881268 X-103.937643 Y42.858164
G1 X-104.937643 Y47.858164
G2 I1.555996 J2.082997 X-104.119243 Y52.434341
G40
G1 X-103.119243 Y48.434341
O6 endsub
F100
G21
O6 call [0]
O6 call [-.5]
O6 call [.5]
O8 sub (#1=radius)
F100
G0 X-100.000000 Y100.000000
O9 if [#1 NE 0]
G41.1 D#1
O9 endif
g90 g1 y98.000000
G3 I-1.155708 J-1.871988 X-98.990068 Y95.740711
G2 I0.658306 J0.881268 X-97.598155 Y97.441626
G1 X-93.598155 Y107.441626
G1 X-96.598155 Y105.441626
G40
G1 X-111.598155 Y109.441626
O8 endsub
F100
G21
O8 call [0]
O8 call [-.5]
O8 call [.5]
O10 sub (#1=radius)
F100
G0 X-50.000000 Y-100.000000
O11 if [#1 NE 0]
G41.1 D#1
O11 endif
g90 g1 y-102.000000
G2 I4.980439 J-0.441843 X-40.097651 Y-103.322073
G2 I-0.682919 J-1.106175 X-39.500873 Y-104.657107
G1 X-54.500873 Y-94.657107
G2 I-1.575966 J-2.552711 X-57.872219 Y-99.613276
G40
G1 X-62.872219 Y-114.613276
O10 endsub
F100
G21
O10 call [0]
O10 call [-.5]
O10 call [.5]
O12 sub (#1=radius)
F100
G0 X-50.000000 Y-50.000000
O13 if [#1 NE 0]
G41.1 D#1
O13 endif
g90 g1 y-52.000000
G1 X-48.000000 Y-51.000000
G1 X-50.000000 Y-41.000000
G1 X-55.000000 Y-44.000000
G1 X-53.000000 Y-54.000000
G40
G1 X-38.000000 Y-52.000000
O12 endsub
F100
G21
O12 call [0]
O12 call [-.5]
O12 call [.5]
O14 sub (#1=radius)
F100
G0 X-50.000000 Y0.000000
O15 if [#1 NE 0]
G41.1 D#1
O15 endif
g90 g1 y-2.000000
G1 X-54.000000 Y-6.000000
G1 X-50.000000 Y-4.000000
G2 I-2.387576 J6.045617 X-54.231568 Y8.278569
G1 X-48.231568 Y12.278569
G40
G1 X-58.231568 Y9.278569
O14 endsub
F100
G21
O14 call [0]
O14 call [-.5]
O14 call [.5]
O16 sub (#1=radius)
F100
G0 X-50.000000 Y50.000000
O17 if [#1 NE 0]
G41.1 D#1
O17 endif
g90 g1 y48.000000
G1 X-52.000000 Y33.000000
G1 X-50.000000 Y23.000000
G2 I4.980439 J-0.441843 X-43.182964 Y17.907682
G1 X-46.182964 Y16.907682
G40
G1 X-44.182964 Y18.907682
O16 endsub
F100
G21
O16 call [0]
O16 call [-.5]
O16 call [.5]
O18 sub (#1=radius)
F100
G0 X-50.000000 Y100.000000
O19 if [#1 NE 0]
G41.1 D#1
O19 endif
g90 g1 y98.000000
G1 X-54.000000 Y104.000000
G2 I0.897690 J1.201729 X-54.549771 Y105.595248
G2 I0.672110 J-1.340995 X-55.371792 Y104.386806
G3 I-0.734639 J1.860190 X-57.566737 Y104.880428
G40
G1 X-42.566737 Y108.880428
O18 endsub
F100
G21
O18 call [0]
O18 call [-.5]
O18 call [.5]
O20 sub (#1=radius)
F100
G0 X0.000000 Y-100.000000
O21 if [#1 NE 0]
G41.1 D#1
O21 endif
g90 g1 y-102.000000
G1 X15.000000 Y-101.000000
G3 I-3.939915 J-6.381776 X6.571635 Y-113.390421
G2 I1.555996 J2.082997 X7.390034 Y-108.814243
G1 X5.390034 Y-105.814243
G40
G1 X15.390034 Y-99.814243
O20 endsub
F100
G21
O20 call [0]
O20 call [-.5]
O20 call [.5]
O22 sub (#1=radius)
F100
G0 X0.000000 Y-50.000000
O23 if [#1 NE 0]
G41.1 D#1
O23 endif
g90 g1 y-52.000000
G1 X2.000000 Y-55.000000
G1 X0.000000 Y-70.000000
G1 X-2.000000 Y-66.000000
G2 I-0.734639 J1.860190 X-1.400808 Y-62.649544
G40
G1 X-4.400808 Y-68.649544
O22 endsub
F100
G21
O22 call [0]
O22 call [-.5]
O22 call [.5]
O24 sub (#1=radius)
F100
G0 X0.000000 Y0.000000
O25 if [#1 NE 0]
G41.1 D#1
O25 endif
g90 g1 y-2.000000
G1 X-4.000000 Y4.000000
G1 X0.000000 Y1.000000
G2 I5.478483 J-0.486028 X9.146519 Y4.612205
G2 I-2.889271 J-4.679969 X3.792843 Y4.849217
G40
G1 X4.792843 Y10.849217
O24 endsub
F100
G21
O24 call [0]
O24 call [-.5]
O24 call [.5]
O26 sub (#1=radius)
F100
G0 X0.000000 Y50.000000
O27 if [#1 NE 0]
G41.1 D#1
O27 endif
g90 g1 y48.000000
G1 X3.000000 Y42.000000
G1 X4.000000 Y38.000000
G2 I-1.365837 J-2.212349 X3.589193 Y33.369404
G1 X1.589193 Y35.369404
G40
G1 X3.589193 Y30.369404
O26 endsub
F100
G21
O26 call [0]
O26 call [-.5]
O26 call [.5]
O28 sub (#1=radius)
F100
G0 X0.000000 Y100.000000
O29 if [#1 NE 0]
G41.1 D#1
O29 endif
g90 g1 y98.000000
G1 X-10.000000 Y100.000000
G2 I2.240368 J-4.469983 X-4.425054 Y99.255683
G1 X5.574946 Y93.255683
G1 X1.574946 Y103.255683
G40
G1 X2.574946 Y113.255683
O28 endsub
F100
G21
O28 call [0]
O28 call [-.5]
O28 call [.5]
O30 sub (#1=radius)
F100
G0 X50.000000 Y-100.000000
O31 if [#1 NE 0]
G41.1 D#1
O31 endif
g90 g1 y-102.000000
G3 I1.164991 J-2.324391 X49.608995 Y-106.407388
G1 X54.608995 Y-116.407388
G2 I0.672110 J-1.340995 X56.281479 Y-116.630683
G1 X62.281479 Y-106.630683
G40
G1 X64.281479 Y-103.630683
O30 endsub
F100
G21
O30 call [0]
O30 call [-.5]
O30 call [.5]
O32 sub (#1=radius)
F100
G0 X50.000000 Y-50.000000
O33 if [#1 NE 0]
G41.1 D#1
O33 endif
g90 g1 y-52.000000
G1 X35.000000 Y-54.000000
G3 I-1.101958 J2.790285 X36.851188 Y-51.737853
G3 I1.494132 J-0.132553 X38.896299 Y-53.265549
G3 I-0.477515 J1.209123 X37.164317 Y-51.715376
G40
G1 X43.164317 Y-55.715376
O32 endsub
F100
G21
O32 call [0]
O32 call [-.5]
O32 call [.5]
O34 sub (#1=radius)
F100
G0 X50.000000 Y0.000000
O35 if [#1 NE 0]
G41.1 D#1
O35 endif
g90 g1 y-2.000000
G1 X49.000000 Y-7.000000
G1 X51.000000 Y-5.000000
G2 I-0.787983 J-1.276355 X49.539907 Y-4.935360
G3 I0.996088 J-0.088369 X49.937534 Y-5.824882
G40
G1 X46.937534 Y-1.824882
O34 endsub
F100
G21
O34 call [0]
O34 call [-.5]
O34 call [.5]
O36 sub (#1=radius)
F100
G0 X50.000000 Y50.000000
O37 if [#1 NE 0]
G41.1 D#1
O37 endif
g90 g1 y48.000000
G1 X52.000000 Y50.000000
G1 X51.000000 Y54.000000
G3 I2.464405 J-4.916982 X57.132441 Y53.181251
G3 I-3.414593 J-5.530873 X47.243277 Y48.224775
G40
G1 X50.243277 Y44.224775
O36 endsub
F100
G21
O36 call [0]
O36 call [-.5]
O36 call [.5]
O38 sub (#1=radius)
F100
G0 X50.000000 Y100.000000
O39 if [#1 NE 0]
G41.1 D#1
O39 endif
g90 g1 y98.000000
G1 X55.000000 Y95.000000
G1 X60.000000 Y96.000000
G2 I2.988264 J-0.265106 X61.192883 Y93.331436
G1 X58.192883 Y98.331436
G40
G1 X64.192883 Y96.331436
O38 endsub
F100
G21
O38 call [0]
O38 call [-.5]
O38 call [.5]
O40 sub (#1=radius)
F100
G0 X100.000000 Y-100.000000
O41 if [#1 NE 0]
G41.1 D#1
O41 endif
g90 g1 y-102.000000
G1 X110.000000 Y-104.000000
G2 I2.464405 J-4.916982 X114.484661 Y-114.032503
G1 X117.484661 Y-99.032503
G1 X118.484661 Y-109.032503
G40
G1 X121.484661 Y-114.032503
O40 endsub
F100
G21
O40 call [0]
O40 call [-.5]
O40 call [.5]
O42 sub (#1=radius)
F100
G0 X100.000000 Y-50.000000
O43 if [#1 NE 0]
G41.1 D#1
O43 endif
g90 g1 y-52.000000
G1 X115.000000 Y-47.000000
G1 X119.000000 Y-51.000000
G1 X123.000000 Y-53.000000
G2 I2.464405 J-4.916982 X122.172875 Y-62.323321
G40
G1 X128.172875 Y-57.323321
O42 endsub
F100
G21
O42 call [0]
O42 call [-.5]
O42 call [.5]
O44 sub (#1=radius)
F100
G0 X100.000000 Y0.000000
O45 if [#1 NE 0]
G41.1 D#1
O45 endif
g90 g1 y-2.000000
G1 X94.000000 Y-12.000000
G1 X92.000000 Y3.000000
G2 I1.344221 J-2.681990 X91.548841 Y-2.085448
G2 I-0.404051 J1.023104 X91.878396 Y-0.242697
G40
G1 X101.878396 Y4.757303
O44 endsub
F100
G21
O44 call [0]
O44 call [-.5]
O44 call [.5]
O46 sub (#1=radius)
F100
G0 X100.000000 Y50.000000
O47 if [#1 NE 0]
G41.1 D#1
O47 endif
g90 g1 y48.000000
G3 I0.896147 J-1.787993 X101.630786 Y44.351817
G3 I3.291530 J4.406339 X110.336417 Y47.789904
G1 X111.336417 Y48.789904
G2 I0.492881 J-0.983396 X112.233349 Y46.783403
G40
G1 X116.233349 Y36.783403
O46 endsub
F100
G21
O46 call [0]
O46 call [-.5]
O46 call [.5]
O48 sub (#1=radius)
F100
G0 X100.000000 Y100.000000
O49 if [#1 NE 0]
G41.1 D#1
O49 endif
g90 g1 y98.000000
G1 X98.000000 Y102.000000
G1 X102.000000 Y107.000000
G1 X100.000000 Y102.000000
G2 I0.448074 J-0.893997 X100.815393 Y100.175908
G40
G1 X98.815393 Y102.175908
O48 endsub
F100
G21
O48 call [0]
O48 call [-.5]
O48 call [.5]
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,161 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... MESSAGE("G10 L1: set tool offsets direct")
N..... MESSAGE(" part 1")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 0 0 0: 0.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(1.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 1 0 0: 1.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 1.0000 2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 1.0000 2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(1.0000 2.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 1 2 0: 1.000000 2.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 1.0000 2.0000 3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 1.0000 2.0000 3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(1.0000 2.0000 3.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 1 2 3: 1.000000 2.000000 3.000000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" part 2")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 0 0 0: 0.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(1.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 1 0 0: 1.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 1.0000 2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 1.0000 2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(1.0000 2.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 1 2 0: 1.000000 2.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 1.0000 2.0000 3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 1.0000 2.0000 3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(1.0000 2.0000 3.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 1 2 3: 1.000000 2.000000 3.000000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("G10 L10: set tool offsets relative to position")
N..... MESSAGE(" part 1")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... STRAIGHT_TRAVERSE(0.1000, 0.2000, 0.3000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" should be 0 0 0: 0.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.9000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.9000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.9000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.9 0 0: -0.900000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.9000 -1.8000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.9000 -1.8000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.9000 -1.8000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.9 -1.8 0: -0.900000 -1.800000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.9000 -1.8000 -2.7000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.9000 -1.8000 -2.7000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.9000 -1.8000 -2.7000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.9 -1.8 -2.7: -0.900000 -1.800000 -2.700000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" part 2")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.1000 0.2000 0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.1000 0.2000 0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(0.1000 0.2000 0.3000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be .1 .2 .3: 0.100000 0.200000 0.300000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.9000 0.2000 0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.9000 0.2000 0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.9000 0.2000 0.3000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.9 0.2 .3: -0.900000 0.200000 0.300000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.9000 -1.8000 0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.9000 -1.8000 0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.9000 -1.8000 0.3000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.9 -1.8 .3: -0.900000 -1.800000 0.300000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.9000 -1.8000 -2.7000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.9000 -1.8000 -2.7000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.9000 -1.8000 -2.7000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.9 -1.8 -2.7: -0.900000 -1.800000 -2.700000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("G10 L10: set tool offsets relative to position + 45 deg. rotation")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 0 0 0: 0.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.7071 -0.7071 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.7071 -0.7071 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(-0.7071 -0.7071 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be -.707 -.707 0: -0.707107 -0.707107 0.000000")
N..... MESSAGE(" should be 1 0: 1.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 -1.4142 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 -1.4142 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(0.0000 -1.4142 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 0 -1.414 0: 0.000000 -1.414214 0.000000")
N..... MESSAGE(" should be 1 1: 1.000000 1.000000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("G10 L10: set tool offsets relative to position with rotation")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 0 0 0: 0.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, -0.7071 -0.7071 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, -0.7071 -0.7071 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 -1.4142 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 -1.4142 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... MESSAGE(" G10 alone does not apply offset, should still be 0 0 0: 0.000000 0.000000 0.000000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 -1.4142 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" should be 0 -1.414 0: 0.000000 -1.414214 0.000000")
N..... MESSAGE(" should be 1 1: 1.000000 1.000000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("Model B contract: M6 alone and G10 alone do not change tool offset params")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... MESSAGE(" after M6 alone, should be 0 0 0: 0.000000 0.000000 0.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 5.0000 6.0000 7.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 5.0000 6.0000 7.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... MESSAGE(" after G10 alone, should still be 0 0 0: 0.000000 0.000000 0.000000")
N..... USE_TOOL_LENGTH_OFFSET(5.0000 6.0000 7.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" after G43, should be 5 6 7: 5.000000 6.000000 7.000000")
N..... SET_TOOL_TABLE_ENTRY(1, 1, 8.0000 6.0000 7.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 8.0000 6.0000 7.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... MESSAGE(" after G10 modifying loaded tool, should still be 5 6 7: 5.000000 6.000000 7.000000")
N..... USE_TOOL_LENGTH_OFFSET(8.0000 6.0000 7.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE(" after G43, should be 8 6 7: 8.000000 6.000000 7.000000")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,115 @@
g20
g10 l2 p1 x0 y0 z0
g54
(debug,G10 L1: set tool offsets direct)
(debug, part 1)
g10 l1 p1 x0 y0 z0
t1 m6 g43
(debug, should be 0 0 0: #5401 #5402 #5403)
g10 l1 p1 x1
g43
(debug, should be 1 0 0: #5401 #5402 #5403)
g10 l1 p1 y2
g43
(debug, should be 1 2 0: #5401 #5402 #5403)
g10 l1 p1 z3
g43
(debug, should be 1 2 3: #5401 #5402 #5403)
g49
(debug, part 2)
g10 l1 p1 x0 y0 z0
g43
(debug, should be 0 0 0: #5401 #5402 #5403)
g10 l1 p1 x1
g43
(debug, should be 1 0 0: #5401 #5402 #5403)
g10 l1 p1 y2
g43
(debug, should be 1 2 0: #5401 #5402 #5403)
g10 l1 p1 z3
g43
(debug, should be 1 2 3: #5401 #5402 #5403)
g49
(debug,G10 L10: set tool offsets relative to position)
(debug, part 1)
g10 l1 p1 x0 y0 z0
t1 m6 g43
g0 x.1 y.2 z.3
(debug, should be 0 0 0: #5401 #5402 #5403)
g10 l10 p1 x1
g43
(debug, should be -.9 0 0: #5401 #5402 #5403)
g10 l10 p1 y2
g43
(debug, should be -.9 -1.8 0: #5401 #5402 #5403)
g10 l10 p1 z3
g43
(debug, should be -.9 -1.8 -2.7: #5401 #5402 #5403)
g49
(debug, part 2)
g10 l10 p1 x0 y0 z0
g43
(debug, should be .1 .2 .3: #5401 #5402 #5403)
g10 l10 p1 x1
g43
(debug, should be -.9 0.2 .3: #5401 #5402 #5403)
g10 l10 p1 y2
g43
(debug, should be -.9 -1.8 .3: #5401 #5402 #5403)
g10 l10 p1 y2 z3
g43
(debug, should be -.9 -1.8 -2.7: #5401 #5402 #5403)
g49
(debug,G10 L10: set tool offsets relative to position + 45 deg. rotation)
g10 l2 p1 r45
g0 x0 y0 z0
g10 l10 p1 x0 y0 z0
t1 m6 g43
(debug, should be 0 0 0: #5401 #5402 #5403)
g10 l10 p1 x1
g43
(debug, should be -.707 -.707 0: #5401 #5402 #5403)
(debug, should be 1 0: #5420 #5421)
g10 l10 p1 y1
g43
(debug, should be 0 -1.414 0: #5401 #5402 #5403)
(debug, should be 1 1: #5420 #5421)
g49
(debug,G10 L10: set tool offsets relative to position with rotation)
g10 l2 p1 r45
g0 x0 y0 z0
g10 l10 p1 x0 y0 z0
t1 m6 g43
(debug, should be 0 0 0: #5401 #5402 #5403)
g10 l10 p1 x1
g10 l10 p1 y1
(debug, G10 alone does not apply offset, should still be 0 0 0: #5401 #5402 #5403)
g43
(debug, should be 0 -1.414 0: #5401 #5402 #5403)
(debug, should be 1 1: #5420 #5421)
g49
(debug,Model B contract: M6 alone and G10 alone do not change tool offset params)
g49
g10 l1 p1 x0 y0 z0
t1 m6
(debug, after M6 alone, should be 0 0 0: #5401 #5402 #5403)
g10 l1 p1 x5 y6 z7
(debug, after G10 alone, should still be 0 0 0: #5401 #5402 #5403)
g43
(debug, after G43, should be 5 6 7: #5401 #5402 #5403)
g10 l1 p1 x8
(debug, after G10 modifying loaded tool, should still be 5 6 7: #5401 #5402 #5403)
g43
(debug, after G43, should be 8 6 7: #5401 #5402 #5403)
g49
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc -t test.tbl | awk '{$1=""; print}' | sed 's/-0\.0000/0.0000/g'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1 @@
T1 P1 X0 Y0 Z0 ;

View File

@@ -0,0 +1,66 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... STRAIGHT_TRAVERSE(-1.3321, -1.7960, -27.0000, 0.0000, 0.0000, 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 -3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 -3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 -3.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("-3.000000")
N..... SET_G5X_OFFSET(2, 4.0000, 5.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(20.0000)
N..... STRAIGHT_TRAVERSE(-5.4689, -3.3304, -21.0000, 0.0000, 0.0000, 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 -4.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 -4.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 -4.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("-4.000000")
N..... SET_G5X_OFFSET(3, 7.0000, 8.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(30.0000)
N..... SET_G92_OFFSET(-43.0622, -47.4282, -72.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-43.0622, -47.4282, -72.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... STRAIGHT_TRAVERSE(41.7301, 45.6322, 49.0000, 0.0000, 0.0000, 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 -3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 -3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SELECT_TOOL(1)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 -3.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("-3.000000")
N..... SET_G5X_OFFSET(2, 4.0000, 5.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-43.0622, -47.4282, -72.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(20.0000)
N..... STRAIGHT_TRAVERSE(37.5933, 44.0978, 51.0000, 0.0000, 0.0000, 0.0000)
N..... SET_TOOL_TABLE_ENTRY(1, 1, 0.0000 0.0000 -4.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... SET_TOOL_TABLE_ENTRY(0, 1, 0.0000 0.0000 -4.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000, 0.0000, 0.0000, 0)
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 -4.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... MESSAGE("-4.000000")
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,41 @@
g20
g10 l2 p1 x1 y2 z-3 r10
g10 l2 p2 x4 y5 z-6 r20
g10 l2 p3 x7 y8 z-9 r30
g10 l2 p4 x10 y11 z-12 r40
g10 l2 p5 x13 y14 z-15 r50
g10 l2 p6 x16 y17 z-18 r60
g10 l2 p7 x19 y20 z-21 r70
g10 l2 p8 x22 y23 z-24 r80
; touch off fixture:
g10 l2 p9 x25 y26 z-27 r0
g54
g0 g53 z-30
g10 l11 p1 z0 ; length should be -3
t1 m6
g43
(debug,#5403)
g55
g0 g53 z-30
g10 l11 p1 z1 ; length should be -4
g43
(debug,#5403)
g56
g92 x33 y44 z55 ; add some g92 to all g5x: g92 shouldn't affect the tool touchoff fixture
g54
g0 g53 z-30
g10 l11 p1 z0 ; ... so the length should still be -3
t1 m6
g43
(debug,#5403)
g55
g0 g53 z-30
g10 l11 p1 z1 ; ... so the length should still be -4
g43
(debug,#5403)
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc -t test.tbl | awk '{$1=""; print}' | sed 's/-0\.0000/0.0000/g'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1 @@
T1 P1 X0 Y0 Z0 ;

View File

@@ -0,0 +1,45 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_RATE(60.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... MESSAGE(" Should be -1 0: -1.000000 0.000000")
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(-45.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... STRAIGHT_FEED(0.0000, 1.4142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 1.414214: 0.000000 1.414214")
N..... SET_G5X_OFFSET(1, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(90.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... STRAIGHT_FEED(0.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 3: 0.000000 3.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(90.0000)
N..... MESSAGE(" Should be 1 1: 1.000000 1.000000")
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,24 @@
g54
g20
g10 l2 p1 x0 y0 z0 r0
g1 x0 y0 z0 f60
(debug, Should be 0 0: #5420 #5421)
g10 l2 p1 x1
(debug, Should be -1 0: #5420 #5421)
g1 x0 y0 z0
(debug, Should be 0 0: #5420 #5421)
g10 l2 p1 r-45
(debug, Should be 0 0: #5420 #5421)
g1 y sqrt[2]
(debug, Should be 0 1.414214: #5420 #5421)
g10 l2 p1 x2 y1 r90
(debug, Should be 0 0: #5420 #5421)
g1 y3
(debug, Should be 0 3: #5420 #5421)
g10 l2 p1 x0 y0
(debug, Should be 1 1: #5420 #5421)
g1 x0 y0
(debug, Should be 0 0: #5420 #5421)
g10 l2 p1 r0
(debug, Should be 0 0: #5420 #5421)
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,40 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.7071, 0.7071, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... MESSAGE(" Should be -1 0: -1.000000 0.000000")
N..... SET_FEED_RATE(60.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 1.4142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... MESSAGE(" Should be 0 -1: 0.000000 -1.000000")
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(45.0000)
N..... MESSAGE(" Should be 1 1: 1.000000 1.000000")
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... MESSAGE(" Should be 0 0: 0.000000 0.000000")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,20 @@
g54
g20
g10 l2 p1 x0 y0 z0 r45
g0 g53 x0 y0 z0
(debug, Should be 0 0: #5420 #5421)
g10 l20 p1 x-1
(debug, Should be -1 0: #5420 #5421)
g1 x0 f60
(debug, Should be 0 0: #5420 #5421)
g10 l20 p1 y -1
(debug, Should be 0 -1: #5420 #5421)
g1 y0
(debug, Should be 0 0: #5420 #5421)
g10 l20 p1 x1 y1
(debug, Should be 1 1: #5420 #5421)
g1 x0 y0
(debug, Should be 0 0: #5420 #5421)
g10 l2 p1 r0
(debug, Should be 0 0: #5420 #5421)
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc | awk '{$1=""; print}' | sed 's/-0\.0000/0.0000/g'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,127 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: setting coordinate system origin")
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... SET_G5X_OFFSET(2, 4.0000, 5.0000, 6.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(20.0000)
N..... SET_G5X_OFFSET(3, 7.0000, 8.0000, 9.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(30.0000)
N..... SET_G5X_OFFSET(4, 10.0000, 11.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(40.0000)
N..... SET_G5X_OFFSET(5, 13.0000, 14.0000, 15.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(50.0000)
N..... SET_G5X_OFFSET(6, 16.0000, 17.0000, 18.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(60.0000)
N..... SET_G5X_OFFSET(7, 19.0000, 20.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(70.0000)
N..... SET_G5X_OFFSET(8, 22.0000, 23.0000, 24.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(80.0000)
N..... SET_G5X_OFFSET(9, 25.0000, 26.0000, 27.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, -10.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" X0.100000 Y0.200000 Z0.300000")
N..... SET_G5X_OFFSET(2, 4.0000, 5.0000, 6.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(20.0000)
N..... MESSAGE(" X-3.745138 Y-1.593017 Z-2.700000")
N..... SET_G5X_OFFSET(3, 7.0000, 8.0000, 9.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(30.0000)
N..... MESSAGE(" X-8.096152 Y-1.996152 Z-5.700000")
N..... SET_G5X_OFFSET(4, 10.0000, 11.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(40.0000)
N..... MESSAGE(" X-12.579488 Y-0.909312 Z-8.700000")
N..... SET_G5X_OFFSET(5, 13.0000, 14.0000, 15.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(50.0000)
N..... MESSAGE(" X-16.805985 Y1.679082 Z-11.700000")
N..... SET_G5X_OFFSET(6, 16.0000, 17.0000, 18.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(60.0000)
N..... MESSAGE(" X-20.390381 Y5.690381 Z-14.700000")
N..... SET_G5X_OFFSET(7, 19.0000, 20.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(70.0000)
N..... MESSAGE(" X-22.970830 Y10.958105 Z-17.700000")
N..... SET_G5X_OFFSET(8, 22.0000, 23.0000, 24.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(80.0000)
N..... MESSAGE(" X-24.227575 Y17.234351 Z-20.700000")
N..... SET_G5X_OFFSET(9, 25.0000, 26.0000, 27.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... MESSAGE(" X-23.900000 Y-23.800000 Z-23.700000")
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(-0.1000, -0.2000, -10.3000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... MESSAGE(" X0.000000 Y0.000000 Z-10.000000")
N..... SET_G5X_OFFSET(2, 4.0000, 5.0000, 6.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(20.0000)
N..... MESSAGE(" X-3.845138 Y-1.793017 Z-13.000000")
N..... SET_G5X_OFFSET(3, 7.0000, 8.0000, 9.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(30.0000)
N..... MESSAGE(" X-8.196152 Y-2.196152 Z-16.000000")
N..... SET_G5X_OFFSET(4, 10.0000, 11.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(40.0000)
N..... MESSAGE(" X-12.679488 Y-1.109312 Z-19.000000")
N..... SET_G5X_OFFSET(5, 13.0000, 14.0000, 15.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(50.0000)
N..... MESSAGE(" X-16.905985 Y1.479082 Z-22.000000")
N..... SET_G5X_OFFSET(6, 16.0000, 17.0000, 18.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(60.0000)
N..... MESSAGE(" X-20.490381 Y5.490381 Z-25.000000")
N..... SET_G5X_OFFSET(7, 19.0000, 20.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(70.0000)
N..... MESSAGE(" X-23.070830 Y10.758105 Z-28.000000")
N..... SET_G5X_OFFSET(8, 22.0000, 23.0000, 24.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(80.0000)
N..... MESSAGE(" X-24.327575 Y17.034351 Z-31.000000")
N..... SET_G5X_OFFSET(9, 25.0000, 26.0000, 27.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... MESSAGE(" X-24.000000 Y-24.000000 Z-34.000000")
N..... SET_G5X_OFFSET(1, 1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(10.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,61 @@
g92.1
g21
g10 l2 p1 x1 y2 z3 r10
g10 l2 p2 x4 y5 z6 r20
g10 l2 p3 x7 y8 z9 r30
g10 l2 p4 x10 y11 z12 r40
g10 l2 p5 x13 y14 z15 r50
g10 l2 p6 x16 y17 z18 r60
g10 l2 p7 x19 y20 z21 r70
g10 l2 p8 x22 y23 z24 r80
g10 l2 p9 x25 y26 z27 r0
g54
g55
g56
g57
g58
g59
g59.1
g59.2
g59.3
g54
g0 x0 y0 z-10
g92 x.1 y.2 z.3
(debug, X#5420 Y#5421 Z#5422)
g55
(debug, X#5420 Y#5421 Z#5422)
g56
(debug, X#5420 Y#5421 Z#5422)
g57
(debug, X#5420 Y#5421 Z#5422)
g58
(debug, X#5420 Y#5421 Z#5422)
g59
(debug, X#5420 Y#5421 Z#5422)
g59.1
(debug, X#5420 Y#5421 Z#5422)
g59.2
(debug, X#5420 Y#5421 Z#5422)
g59.3
(debug, X#5420 Y#5421 Z#5422)
g54
g92.1
(debug, X#5420 Y#5421 Z#5422)
g55
(debug, X#5420 Y#5421 Z#5422)
g56
(debug, X#5420 Y#5421 Z#5422)
g57
(debug, X#5420 Y#5421 Z#5422)
g58
(debug, X#5420 Y#5421 Z#5422)
g59
(debug, X#5420 Y#5421 Z#5422)
g59.1
(debug, X#5420 Y#5421 Z#5422)
g59.2
(debug, X#5420 Y#5421 Z#5422)
g59.3
(debug, X#5420 Y#5421 Z#5422)
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc -t test.tbl | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1 @@
t1 p1 x0 y0 z0

View File

@@ -0,0 +1,44 @@
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
6 N..... ON_RESET()
7 N..... COMMENT("G52 and G92 param #5210 setting behavior")
8 N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
Program start: Params all 0
G92 params: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G92: Set current position to X1 Y2
9 N..... SET_G92_OFFSET(-1.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 1.000000 -1.000000 -2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G92.2: Reset G92
10 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 0.000000 -1.000000 -2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G92.3: Restore G92
11 N..... SET_G92_OFFSET(-1.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 1.000000 -1.000000 -2.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G92.1: Clear G92
12 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G52: Set origin at X2 Y3
13 N..... SET_G92_OFFSET(2.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 1.000000 2.000000 3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G92.2: Reset G92
14 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 0.000000 2.000000 3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G92.3: Restore G92
15 N..... SET_G92_OFFSET(2.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 1.000000 2.000000 3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
G52 X0 Y0: Zero G92, but leave param 5210 set
16 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
G92 params: 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
18 N..... SET_XY_ROTATION(0.0000)
19 N..... SET_FEED_MODE(0, 0)
20 N..... SET_FEED_RATE(0.0000)
21 N..... STOP_SPINDLE_TURNING(0)
22 N..... SET_SPINDLE_MODE(0 0.0000)
23 N..... PALLET_SHUTTLE()
24 N..... PROGRAM_END()
25 N..... ON_RESET()
26 N..... ON_RESET()

View File

@@ -0,0 +1,39 @@
(G52 and G92 param #5210 setting behavior)
G20 ; use inches for readability
(PRINT,Program start: Params all 0)
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G92: Set current position to X1 Y2)
G92 X1 Y2
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G92.2: Reset G92)
G92.2
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G92.3: Restore G92)
G92.3
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G92.1: Clear G92)
G92.1
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G52: Set origin at X2 Y3)
G52 X2 Y3
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G92.2: Reset G92)
G92.2
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G92.3: Restore G92)
G92.3
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
(PRINT,G52 X0 Y0: Zero G92, but leave param 5210 set)
G52 X0 Y0
(PRINT,G92 params: #5210 #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
M30

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g g52-g92-interaction.ngc

View File

@@ -0,0 +1,168 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("G21 metric, G54 coordinate system 1, G18 ZX plane, G54 coordinate system")
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... COMMENT("G49 cancel tool length offset")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... COMMENT("G90 abs dist mode, G92.1 Reset coord sys offset")
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("G94 Feed Mode=Units per Minute, G64p Best Possible Speed p=Motion Blend Tolerance")
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.001000)
N..... SET_NAIVECAM_TOLERANCE(0.0010)
N..... COMMENT("Diameter Mode = 7, Radius Mode = 8")
N..... COMMENT("G91.1 = Relative Arc Offset Distance")
N..... SET_FEED_RATE(225.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(16.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(16.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(14.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(14.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0400, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-14.0400, 10.0000, -14.0000, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.5400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.5400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.5400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5400, 0.0000, -20.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.5400, 0.0000, -19.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0400, 0.0000, -19.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0400, 0.0000, -18.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5400, 0.0000, -18.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.5400, 0.0000, -17.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0400, 0.0000, -17.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0400, 0.0000, -16.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5400, 0.0000, -16.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.5400, 0.0000, -15.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0400, 0.0000, -15.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0153, 0.0000, -15.0153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0153, 0.0000, -15.0153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5400, 0.0000, -14.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0153, 0.0000, -14.5153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0153, 0.0000, -14.5153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0647, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0247, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,19 @@
G21 G18 G54 (G21 metric, G54 coordinate system 1, G18 ZX plane, G54 coordinate system)
G49 (G49 cancel tool length offset)
G90 G92.1 (G90 abs dist mode, G92.1 Reset coord sys offset)
G94 G64 p0.001 (G94 Feed Mode=Units per Minute, G64p Best Possible Speed p=Motion Blend Tolerance)
G8 (Diameter Mode = 7, Radius Mode = 8)
G91.1 (G91.1 = Relative Arc Offset Distance)
O200 SUB
;Change the next line from G01 X10 Z0 to G01 X5 Z0 and Axis works fine but this isn't the part profile I need.
G01 X10 Z0
G01 X10 Z-14
G01 X3
G01 X7 Z-22
O200 ENDSUB
F225
G71.1 Q200 X15.0 Z0 D0.04 I0.5 R1
G71.2 Q200 X15.0 Z0 D0.04 I0.5 R1
M2

View File

@@ -0,0 +1,24 @@
#!/bin/bash
#
# Demonstrate endless loop when encountering incorrect parameters in
# G71 call. Note, the expected output is not verified. No idea what
# it should look like on a successful termination of this endless
# loop.
rs274 -g g71-endless-loop.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 10 seconds to complete
count=10
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$((count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "E: g71-endless-loop.ngc program seem to be stuck, killing"
exit 1
fi
exit 0

View File

@@ -0,0 +1,31 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("interpreter: feed mode set to units per revolution")
N..... SET_FEED_MODE(0, 1)
N..... SET_FEED_RATE(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... SET_SPINDLE_MODE(0 700.0000)
N..... SET_SPINDLE_SPEED(0, 250.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(0.2400)
N..... STRAIGHT_TRAVERSE(168.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(168.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(168.0000, 0.0000, -333.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(170.0000, 0.0000, -333.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(170.0000, 0.0000, -415.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(300.0000, 0.0000, 10.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PALLET_SHUTTLE()
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,12 @@
G18G95
G96 M3 S250 D700
O2 SUB
Z-333
G1 X170
Z-415
O2 ENDSUB
G71 Q2 X168 Z0 F.24
G0 X300 Z10
M30

View File

@@ -0,0 +1,26 @@
#!/bin/bash
set -e
# Demonstrate endless loop when an additional segment is added in the G71 call.
# This is a subset of a file that was supplied in
# https://github.com/LinuxCNC/linuxcnc/issues/2844 and which worked up to and
# including 2.9.1~pre1. It entered an endless loop after
# https://github.com/LinuxCNC/linuxcnc/pull/2677
rs274 -g g71-endless-loop2.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 5 seconds to complete
count=5
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$((count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "error: g71-endless-loop2.ngc program seem to be stuck, killing"
exit 1
fi
exit 0

View File

@@ -0,0 +1,53 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... COMMENT("interpreter: Lathe diameter mode changed to diameter")
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_SPINDLE_MODE(0 1400.0000)
N..... SET_SPINDLE_SPEED(0, 200.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... COMMENT("interpreter: feed mode set to units per revolution")
N..... SET_FEED_MODE(0, 1)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(0.1200)
N..... SET_G92_OFFSET(0.0000, 0.0000, -1.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 2.8000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 2.8000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.3630, 0.0000, 2.8000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.3630, 0.0000, 0.8229, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.5000, 11.8630, -0.5000, 9.8630, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.8630, 0.0000, -4.0318, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-5.0000, 12.1130, -5.0000, 10.1130, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.1130, 0.0000, -25.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-27.0000, 10.1130, -25.0000, 10.1130, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.3630, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.3630, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.8630, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.8630, 0.0000, -5.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.1130, 0.0000, -5.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.1130, 0.0000, -25.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0000, 0.0000, -25.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... MIST_OFF()
N..... FLOOD_OFF()
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, -25.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,40 @@
#<_initial>=20
#<_final>=19.726
#<_champher>=0.5
#<_zmax>=0
#<_zmin>=-25
#<doc>=2
G54
G7
G18
G21
o100 sub
o101 if [#<_champher> gt 0]
G1 X[#<_final>-2.0001*#<_champher>]
Z#<_zmax>
X#<_final>C#<_champher>
o101 else
X#<_final>
o101 endif
W-5
U0.5
Z#<_zmin>
X#<_initial>
o100 endsub
M3 G96 S200 d1400
G95 F0.12
G52 z[0.1-#<doc>]
;m7
G71 Q100 Z[#<_zmax>+0.8+#<doc>] X#<_initial> D#<doc> I#<doc> R0.3
G52 z0
;m7
g42
G70 Q100 Z[#<_zmax>+1] X#<_initial> D#<doc> P1
g40
M9
G0X[#<_initial>+5]
M2

View File

@@ -0,0 +1,24 @@
#!/bin/bash
#
# Demonstrate endless loop when encountering incorrect parameters in
# G71 call. Note, the expected output is not verified. No idea what
# it should look like on a successful termination of this endless
# loop.
rs274 -g g71-endless-loop_2.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 10 seconds to complete
count=10
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$(($count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "error: g71-endless-loop.ngc program seem to be stuck, killing"
exit 1
fi
exit 0

View File

@@ -0,0 +1,259 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... SET_FEED_RATE(400.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -37.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.3000, 0.0000, -36.8000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(14.0000, 0.0000, -37.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.3000, 0.0000, -36.8000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.0000, 0.0000, -36.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.3000, 0.0000, -35.8000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.0000, 0.0000, -34.6757, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.3000, 0.0000, -34.3757, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.0000, 0.0000, -25.1780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.3000, 0.0000, -24.8780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0000, 0.0000, -19.0331, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.3000, 0.0000, -18.7331, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0000, 0.0000, -18.9820, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.3000, 0.0000, -18.6820, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0000, 0.0000, -11.2320, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.3000, 0.0000, -10.9320, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0000, 0.0000, -8.7825, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.3000, 0.0000, -8.4825, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0000, 0.0000, -8.0697, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.3000, 0.0000, -7.7697, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0000, 0.0000, -7.7679, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.3000, 0.0000, -7.4679, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.3000, 0.0000, -0.7000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0000, 0.0000, 0.4142, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.3000, 0.0000, 0.7142, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0000, 0.0000, 1.4142, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.3000, 0.0000, 1.7142, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.3000, 0.0000, 2.7410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.2020, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2020, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.6266, 1.7876, 3.0410, 3.2020, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.7876, 0.0000, 1.6266, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.7071, 0.0000, -0.2929, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.7071, 0.0000, -0.2929, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-1.0000, 4.0000, -1.0000, 3.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -4.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -4.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -7.7320, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -7.7320, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5000, 0.0000, -7.7320, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5000, 0.0000, -7.7320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-11.2320, 8.0000, -11.2320, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0000, 0.0000, -18.9820, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.6536, 0.0000, -18.9820, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.6536, 0.0000, -18.9820, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-20.1820, 10.8536, -20.1820, 9.6536, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.8536, 0.0000, -24.6565, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.8660, 0.0000, -24.6780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.8660, 0.0000, -24.6780, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-25.1780, 11.0000, -25.1780, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.0000, 0.0000, -27.1780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.0000, 0.0000, -33.4884, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-34.3983, 11.7265, -30.4731, 15.7073, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.7265, 0.0000, -34.3983, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.7121, 0.0000, -35.3979, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.7121, 0.0000, -35.3979, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-36.1000, 13.0000, -36.1000, 12.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.0000, 0.0000, -36.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.0000, 0.0000, -37.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.0000, 0.0000, -37.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -37.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.7120, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2801, 1.4411, 3.0410, 3.2020, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.3606, 0.0000, -0.6394, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-1.0000, 3.5100, -1.0000, 3.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5100, 0.0000, -4.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5100, 0.0000, -8.1391, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.8100, 0.0000, -7.8391, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.8100, 0.0000, -4.3000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5100, 0.0000, -4.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-4.2550, 3.4417, -4.0000, 3.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0100, 0.0000, -5.0028, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0100, 0.0000, -7.8456, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.3100, 0.0000, -7.5456, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.3100, 0.0000, -5.3028, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0100, 0.0000, -5.0028, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.7158, 0.0000, -5.5124, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-6.2680, 2.5100, -6.2680, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.5100, 0.0000, -6.7320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-8.2220, 4.0000, -6.7320, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5000, 0.0000, -8.2220, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-11.2320, 7.5100, -11.2320, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5100, 0.0000, -19.4720, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.8100, 0.0000, -19.1720, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.8100, 0.0000, -11.5320, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5100, 0.0000, -11.2320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-12.8933, 7.0100, -11.2320, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0100, 0.0000, -19.4720, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.3100, 0.0000, -19.1720, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.3100, 0.0000, -13.1933, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0100, 0.0000, -12.8933, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-13.3173, 6.6706, -11.2320, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-13.4876, 6.5100, -16.4820, 9.8557, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5100, 0.0000, -19.4720, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.8100, 0.0000, -19.1720, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.8100, 0.0000, -13.7876, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5100, 0.0000, -13.4876, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-14.1645, 6.0100, -16.4820, 9.8557, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0100, 0.0000, -18.7995, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.3100, 0.0000, -18.4995, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.3100, 0.0000, -14.4645, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0100, 0.0000, -14.1645, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-15.3529, 5.5100, -16.4820, 9.8557, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5100, 0.0000, -17.6111, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.8100, 0.0000, -17.3111, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.8100, 0.0000, -15.6529, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5100, 0.0000, -15.3529, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-19.4720, 6.5061, -16.4820, 9.8557, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.6536, 0.0000, -19.4720, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-20.1820, 10.3636, -20.1820, 9.6536, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.3636, 0.0000, -24.7878, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.6636, 0.0000, -24.4878, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.6636, 0.0000, -20.4820, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.3636, 0.0000, -20.1820, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-20.5370, 10.2685, -20.1820, 9.6536, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.8636, 0.0000, -21.2382, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.8636, 0.0000, -23.9218, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.1636, 0.0000, -23.6218, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.1636, 0.0000, -21.5382, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.8636, 0.0000, -21.2382, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.3636, 0.0000, -22.1042, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.3636, 0.0000, -23.0558, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.6636, 0.0000, -22.7558, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.6636, 0.0000, -22.4042, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.3636, 0.0000, -22.1042, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0889, 0.0000, -22.5800, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.4417, 0.0000, -24.9230, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-25.1780, 10.5100, -25.1780, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.5100, 0.0000, -27.1780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.5100, 0.0000, -33.6287, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.8100, 0.0000, -33.3287, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.8100, 0.0000, -27.4780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.5100, 0.0000, -27.1780, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-27.4330, 10.4417, -27.1780, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-28.3495, 10.0100, -30.4731, 15.7073, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0100, 0.0000, -32.5968, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.3100, 0.0000, -32.2968, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.3100, 0.0000, -28.6495, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0100, 0.0000, -28.3495, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-34.7423, 11.3775, -30.4731, 15.7073, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.3632, 0.0000, -35.7419, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-36.1000, 12.5100, -36.1000, 12.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.5100, 0.0000, -37.5900, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -37.5900, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.4520, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.0963, 1.2573, 3.0410, 3.2020, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.1768, 0.0000, -0.8232, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-1.0000, 3.2500, -1.0000, 3.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.2500, 0.0000, -4.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-4.1250, 3.2165, -4.0000, 3.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.4911, 0.0000, -5.3815, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-6.2680, 2.2500, -6.2680, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.2500, 0.0000, -6.7320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-8.4820, 4.0000, -6.7320, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5000, 0.0000, -8.4820, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-13.1357, 6.4846, -11.2320, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-19.7320, 6.3916, -16.4820, 9.8557, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.6536, 0.0000, -19.7320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-20.4070, 10.0433, -20.1820, 9.6536, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.7887, 0.0000, -22.5800, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.2165, 0.0000, -25.0530, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-25.1780, 10.2500, -25.1780, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.2500, 0.0000, -27.1780, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-27.3030, 10.2165, -27.1780, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-34.9249, 11.1924, -30.4731, 15.7073, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.1780, 0.0000, -35.9245, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-36.1000, 12.2500, -36.1000, 12.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.2500, 0.0000, -37.8500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -37.8500, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.2020, 0.0000, 3.0410, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.9190, 1.0810, 3.0410, 3.2020, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0000, 0.0000, -4.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.2680, 0.0000, -5.2680, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-6.2680, 2.0000, -6.2680, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0000, 0.0000, -6.7320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-8.7320, 4.0000, -6.7320, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5000, 0.0000, -8.7320, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-12.9820, 6.2850, -11.2320, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-19.9820, 6.2850, -16.4820, 9.8557, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.6536, 0.0000, -19.9820, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-20.2820, 9.8268, -20.1820, 9.6536, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5000, 0.0000, -22.5800, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0000, 0.0000, -25.1780, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0000, 0.0000, -27.1780, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-35.1000, 11.0140, -30.4731, 15.7073, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.0000, 0.0000, -36.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.0000, 0.0000, -38.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -38.1000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,32 @@
G54 G18 G21
F400
O100 SUB
G0 X0.202 Z3.041
G2 X1.081 Z0.919 I3.0 K0.0
G1 X3.0 Z-1.0
G1 Z-4.0
X2.268 Z-5.268
G2 X2.0 z-6.268 I1.73205 K-1.0
G1 Z-6.732
G2 X4.0 Z-8.732 I2.0 K0.0
G1 X4.5
G3 X6.285 Z-12.982 I-0.0 K-2.5
G2 Z-19.982 I3.57071 K-3.5
; Let's make the pawn safe to play with
G1 X10 A0.2
G1 X8.5 Z-22.58
G1 X10.0 Z-25.178
G1 Z-27.178
G2 X11.014 Z-35.1 I5.70735 K-3.29514
G1 X12.0 Z-36.1
G1 Z-38.1
G0 X15.0
O100 ENDSUB
G71.1 Q100 X15 Z3.041 D1 I1 R0.3
G71.2 Q100 X15 Z3.041 D0.51 I0.5 R0.3
G70 Q100 X15 Z3.041 E0 D0.5 P2
M2

View File

@@ -0,0 +1,21 @@
#!/bin/bash
#
# Copy of 'nc_files/lathe_g70_71_demo.ngc'. Uses both G70 and G71.
rs274 -g g71-with-g70.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 5 seconds to complete
count=5
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$((count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "E: g71_and_g70.ngc program seem to be stuck, killing"
exit 1
fi
exit 0

View File

@@ -0,0 +1,104 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_FEED_RATE(400.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... SELECT_TOOL(2)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... COMMENT("interpreter: cutter radius compensation off")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 2.5400, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SET_SPINDLE_SPEED(0, 100.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, 0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, 0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -2.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -2.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -5.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -5.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -8.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -8.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -12.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -12.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -11.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -11.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -12.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -14.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -14.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -18.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -18.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -17.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -17.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -18.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -21.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -21.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -20.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -20.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -21.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -24.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -24.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -23.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -23.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -24.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -26.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -26.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -30.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -30.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -29.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -29.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -30.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -33.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -33.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -32.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -32.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -33.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -36.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -36.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -35.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -35.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -36.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -39.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -39.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -38.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -38.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -39.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -40.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -39.9990, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PALLET_SHUTTLE()
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,10 @@
G54 G18 G21 F400
G40 T2M6G43
M3 S100
o100 sub
G1 X50 Z-40F10000
X100 Z-39.999
o100 end sub
G72 Q100 X50 Z0 I3 R0.1
G0 X0 Z0
M30

View File

@@ -0,0 +1,22 @@
#!/bin/bash
#
# Test working G71, derived from problem reported in
# https://github.com/LinuxCNC/linuxcnc/issues/707.
rs274 -g g72-iterations-present.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 10 seconds to complete
count=10
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$((count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "E: g71-iterations-present.ngc program seem to be stuck, killing"
exit 1
fi
exit 0

View File

@@ -0,0 +1,104 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_FEED_RATE(400.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... SELECT_TOOL(2)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... COMMENT("interpreter: cutter radius compensation off")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 2.5400, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SET_SPINDLE_SPEED(0, 100.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, 0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, 0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -2.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -2.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -3.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -5.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -5.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -6.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -8.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -8.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -9.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -12.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -12.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -11.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -11.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -12.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -14.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -14.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -18.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -18.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -17.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -17.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -18.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -21.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -21.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -20.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -20.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -21.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -24.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -24.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -23.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -23.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -24.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -26.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -26.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -27.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -30.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -30.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -29.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -29.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -30.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -33.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -33.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -32.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -32.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -33.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -36.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -36.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -35.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -35.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -36.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -39.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -39.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(99.9000, 0.0000, -38.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.1000, 0.0000, -38.9000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -39.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(50.0000, 0.0000, -40.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, -40.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(100.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PALLET_SHUTTLE()
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,10 @@
G54 G18 G21 F400
G40 T2M6G43
M3 S100
o100 sub
G1 X50 Z-40F10000
X100 Z-40
o100 end sub
G72 Q100 X50 Z0 I3 R0.1
G0 X0 Z0
M30

View File

@@ -0,0 +1,24 @@
#!/bin/bash
#
# Demonstrate G71 problem reported in
# https://github.com/LinuxCNC/linuxcnc/issues/707. When Z limit is
# 39.999, everything work, when it is 40, the facing is done without
# iterations.
rs274 -g g72-iterations-missing.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 10 seconds to complete
count=10
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$((count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "E: g71-iterations-missing.ngc program seem to be stuck, killing"
exit 1
fi
exit 0

View File

@@ -0,0 +1 @@
Test that g76 works as expected

View File

@@ -0,0 +1,397 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("cut a small 1/4-20 thread and part it")
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("thread")
N..... SELECT_TOOL(4)
N..... STOP_SPINDLE_TURNING(0)
N..... CHANGE_TOOL()
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.7000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... SET_SPINDLE_SPEED(0, 800.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... DWELL(1.0000)
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, 0.2000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("p = thread pitch, distance per revolution")
N..... COMMENT("z = end of drive line")
N..... COMMENT("i = offset from drive line to thread peaks")
N..... COMMENT("negative i means the threads are at a smaller radius than the drive line,")
N..... COMMENT("so i is negative for outside threads, positive for inside threads")
N..... COMMENT("j = initial cut depth; subsequent depths follow degression formula")
N..... COMMENT("r = depth degression: 1.0 = constant depth, 2.0 = constant area")
N..... COMMENT("any number >= 1.0 allowed")
N..... COMMENT("k = full thread depth")
N..... COMMENT("q = "compound slide" angle")
N..... COMMENT("h = number of spring passes")
N..... COMMENT("e = distance along drive line used for tapered start/end")
N..... COMMENT("l = which ends get the taper: 0 = neither, 1 = begin, 2 = end, 3 = both")
N..... STRAIGHT_TRAVERSE(0.2370, 0.0000, 0.1955, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1170, 0.0000, 0.1955, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1170, 0.0000, -0.4291, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1620, 0.0000, -0.4791, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2370, 0.0000, -0.4791, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2337, 0.0000, 0.1936, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1137, 0.0000, 0.1936, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1137, 0.0000, -0.4309, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1587, 0.0000, -0.4809, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2337, 0.0000, -0.4809, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2311, 0.0000, 0.1922, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1111, 0.0000, 0.1922, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1111, 0.0000, -0.4324, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1561, 0.0000, -0.4824, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2311, 0.0000, -0.4824, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2290, 0.0000, 0.1909, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1090, 0.0000, 0.1909, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1090, 0.0000, -0.4336, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1540, 0.0000, -0.4836, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2290, 0.0000, -0.4836, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2271, 0.0000, 0.1899, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1071, 0.0000, 0.1899, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1071, 0.0000, -0.4347, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1521, 0.0000, -0.4847, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2271, 0.0000, -0.4847, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2254, 0.0000, 0.1889, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1054, 0.0000, 0.1889, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1054, 0.0000, -0.4356, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1504, 0.0000, -0.4856, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2254, 0.0000, -0.4856, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2238, 0.0000, 0.1880, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1038, 0.0000, 0.1880, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1038, 0.0000, -0.4365, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1488, 0.0000, -0.4865, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2238, 0.0000, -0.4865, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2224, 0.0000, 0.1872, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1024, 0.0000, 0.1872, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1024, 0.0000, -0.4373, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1474, 0.0000, -0.4873, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2224, 0.0000, -0.4873, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2210, 0.0000, 0.1864, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.1010, 0.0000, 0.1864, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.1010, 0.0000, -0.4381, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1460, 0.0000, -0.4881, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2210, 0.0000, -0.4881, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2197, 0.0000, 0.1857, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0997, 0.0000, 0.1857, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0997, 0.0000, -0.4389, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1447, 0.0000, -0.4889, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2197, 0.0000, -0.4889, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2185, 0.0000, 0.1850, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0985, 0.0000, 0.1850, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0985, 0.0000, -0.4396, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1435, 0.0000, -0.4896, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2185, 0.0000, -0.4896, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2173, 0.0000, 0.1843, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0973, 0.0000, 0.1843, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0973, 0.0000, -0.4402, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1423, 0.0000, -0.4902, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2173, 0.0000, -0.4902, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2162, 0.0000, 0.1837, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0962, 0.0000, 0.1837, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0962, 0.0000, -0.4409, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1412, 0.0000, -0.4909, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2162, 0.0000, -0.4909, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2151, 0.0000, 0.1831, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0951, 0.0000, 0.1831, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0951, 0.0000, -0.4415, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1401, 0.0000, -0.4915, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2151, 0.0000, -0.4915, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2140, 0.0000, 0.1825, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0940, 0.0000, 0.1825, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0940, 0.0000, -0.4421, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1390, 0.0000, -0.4921, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2140, 0.0000, -0.4921, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2130, 0.0000, 0.1819, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0930, 0.0000, 0.1819, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0930, 0.0000, -0.4426, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1380, 0.0000, -0.4926, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2130, 0.0000, -0.4926, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2120, 0.0000, 0.1813, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0920, 0.0000, 0.1813, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0920, 0.0000, -0.4432, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1370, 0.0000, -0.4932, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2120, 0.0000, -0.4932, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2111, 0.0000, 0.1808, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0911, 0.0000, 0.1808, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0911, 0.0000, -0.4437, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1361, 0.0000, -0.4937, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2111, 0.0000, -0.4937, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2101, 0.0000, 0.1803, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0901, 0.0000, 0.1803, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0901, 0.0000, -0.4443, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1351, 0.0000, -0.4943, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2101, 0.0000, -0.4943, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2092, 0.0000, 0.1798, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0892, 0.0000, 0.1798, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0892, 0.0000, -0.4448, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1342, 0.0000, -0.4948, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2092, 0.0000, -0.4948, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2083, 0.0000, 0.1793, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0883, 0.0000, 0.1793, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0883, 0.0000, -0.4453, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1333, 0.0000, -0.4953, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2083, 0.0000, -0.4953, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2075, 0.0000, 0.1788, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0875, 0.0000, 0.1788, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0875, 0.0000, -0.4458, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1325, 0.0000, -0.4958, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2075, 0.0000, -0.4958, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2066, 0.0000, 0.1783, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0866, 0.0000, 0.1783, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0866, 0.0000, -0.4462, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1316, 0.0000, -0.4962, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2066, 0.0000, -0.4962, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2058, 0.0000, 0.1778, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0858, 0.0000, 0.1778, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0858, 0.0000, -0.4467, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1308, 0.0000, -0.4967, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2058, 0.0000, -0.4967, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2050, 0.0000, 0.1774, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0850, 0.0000, 0.1774, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0850, 0.0000, -0.4472, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1300, 0.0000, -0.4972, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2050, 0.0000, -0.4972, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2042, 0.0000, 0.1769, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0842, 0.0000, 0.1769, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0842, 0.0000, -0.4476, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1292, 0.0000, -0.4976, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2042, 0.0000, -0.4976, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2034, 0.0000, 0.1765, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0834, 0.0000, 0.1765, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0834, 0.0000, -0.4481, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1284, 0.0000, -0.4981, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2034, 0.0000, -0.4981, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2027, 0.0000, 0.1760, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0827, 0.0000, 0.1760, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0827, 0.0000, -0.4485, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1277, 0.0000, -0.4985, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2027, 0.0000, -0.4985, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2019, 0.0000, 0.1756, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0819, 0.0000, 0.1756, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0819, 0.0000, -0.4489, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1269, 0.0000, -0.4989, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2019, 0.0000, -0.4989, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2012, 0.0000, 0.1752, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0812, 0.0000, 0.1752, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0812, 0.0000, -0.4493, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1262, 0.0000, -0.4993, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2012, 0.0000, -0.4993, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2005, 0.0000, 0.1748, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0805, 0.0000, 0.1748, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0805, 0.0000, -0.4497, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1255, 0.0000, -0.4997, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2005, 0.0000, -0.4997, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0800, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0800, 0.0000, -0.4500, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1250, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0800, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0800, 0.0000, -0.4500, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1250, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0800, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0800, 0.0000, -0.4500, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1250, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0800, 0.0000, 0.1745, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... START_SPEED_FEED_SYNC(0.050000,0)
N..... STRAIGHT_FEED(0.0800, 0.0000, -0.4500, 0.0000, 0.0000, 0.0000)
N..... START_SPEED_FEED_SYNC(0.067268,0)
N..... STRAIGHT_FEED(0.1250, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPEED_FEED_SYNCH()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... ENABLE_FEED_OVERRIDE()
N..... STRAIGHT_TRAVERSE(0.2000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.5000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,30 @@
(cut a small 1/4-20 thread and part it)
g20 g64 g18
(thread)
t4 m6
g43
s800 m3
g4p1
g0z.2x.2
(p = thread pitch, distance per revolution)
(z = end of drive line)
(i = offset from drive line to thread peaks)
( negative i means the threads are at a smaller radius than the drive line,)
( so i is negative for outside threads, positive for inside threads)
(j = initial cut depth; subsequent depths follow degression formula)
(r = depth degression: 1.0 = constant depth, 2.0 = constant area)
( any number >= 1.0 allowed)
(k = full thread depth)
(q = "compound slide" angle)
(h = number of spring passes)
(e = distance along drive line used for tapered start/end)
(l = which ends get the taper: 0 = neither, 1 = begin, 2 = end, 3 = both)
g76 p.05 z-.5 i-.075 j.008 k.045 h3 r2.0 q29.5 e.05 l2
g0x.5
g0z0
m5
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -t test.tbl -g g76only.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,5 @@
T1 P1 Z0.5 D0.0625;first tool
T2 P2 Z0.7 D0.125;
T3 P3 Z0.5 D0.25;
T4 P4 Z0.7 D1.0;
T32 P32 Z0.5 D0.0;last tool

View File

@@ -0,0 +1,5 @@
g20
f1
g0x0y0z0
g2 x600 i[300 + [100 * [0.00099 * sqrt[2]]]]
m2

View File

@@ -0,0 +1,5 @@
g21
f1
g0x0y0z0
g2 x6000 i[3000 + [100 * [0.0099 * sqrt[2]]]]
m2

View File

@@ -0,0 +1,5 @@
g20
f1
g0x0y0z0
g2 x200 i[0.9995 * 100]
m2

View File

@@ -0,0 +1,5 @@
g21
f1
g0x0y0z0
g2 x2000 i[0.9995 * 1000]
m2

View File

@@ -0,0 +1,5 @@
g20
f1
g0x0y0z0
g2 x5.000 y0 i[2.500 - [0.00099 * sqrt[2]]]
m2

View File

@@ -0,0 +1,5 @@
g21
f1
g0x0y0z0
g2 x50.00 y0 i[25.00 - [0.0099 * sqrt[2]]]
m2

View File

@@ -0,0 +1,6 @@
This is a test program that shows all (?) the cases of lines and
arcs coming together to form concave corners, convex corners,
and tangencies.
This test does the same complicated path in XY and ZX planes.

View File

@@ -0,0 +1,592 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... COMMENT("interpreter: motion mode set to none")
N..... STOP_SPINDLE_TURNING(0)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... PROGRAM_STOP()
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... DWELL(3.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0200, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0200, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, -0.1000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.6767, 0.2334, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.3359, 0.4419, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2281, 1.3456, 0.6280, 1.0458, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.1253, 0.9881, 0.6188, 1.3456, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7669, 1.4548, 0.3690, 1.3275, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6867, 1.7527, 0.9356, 1.6600, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.3459, 1.7626, 0.5180, 1.8156, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0652, 1.5342, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0652, 2.4577, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6065, 2.4577, 0.3359, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4888, 2.4577, 1.0476, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.8597, 2.4577, 1.6743, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.3585, 2.0307, 1.4272, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.3911, 2.1499, 1.7888, 2.8353, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.1404, 1.3952, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.7494, 1.6236, 1.9143, 1.4570, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.5014, 1.3456, 2.0605, 1.3092, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.7720, 1.4846, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.6618, 2.8450, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.2708, 2.8450, 2.4663, 2.8292, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.8296, 2.8450, 2.0502, 2.8450, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.8296, 3.5600, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.2883, 3.5600, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2883, 3.2720, 1.2883, 3.4160, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4587, 3.2720, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4587, 3.0138, 1.4587, 3.1429, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7970, 3.4408, 1.4587, 3.7400, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.0376, 3.8083, 1.0341, 3.5480, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2332, 3.5004, 0.9193, -5.0194, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2132, 2.9940, 3.1651, 3.2495, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.0728, 2.5968, 3.2582, 2.7547, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.4437, 2.1003, -0.6286, -0.5553, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1530, 0.9682, 2.7799, 1.6674, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.2633, 0.4518, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.6317, 0.8391, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.3409, 0.3227, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.1805, 0.4419, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.7093, 0.1440, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4086, 0.4121, -0.1000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.0200, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0200, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, -0.1000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.7012, 0.1625, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7158, 0.2974, 0.6767, 0.2334, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7051, 0.3040, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2952, 1.3791, 0.6280, 1.0458, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.1531, 1.3456, 1.2281, 1.3456, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.4443, 0.8405, 0.6188, 1.3456, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.8618, 1.3275, 0.3690, 1.3275, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6164, 1.7789, 0.9356, 1.6600, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.4176, 1.7847, 0.5180, 1.8156, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.2986, 1.8208, 0.3459, 1.7626, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.1402, 1.6919, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.1402, 2.4577, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.5315, 2.4577, 0.3359, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6815, 2.4577, 0.6065, 2.4577, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.4138, 2.4577, 1.0476, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.5638, 2.4577, 1.4888, 2.4577, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.7847, 2.4577, 1.6743, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.3704, 2.1047, 1.4272, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.3231, 1.9646, 1.3585, 2.0307, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.2497, 1.9620, 1.7888, 2.8353, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.1489, 1.6587, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.6966, 1.6769, 1.9143, 1.4570, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.5778, 1.3005, 2.0605, 1.3092, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.8063, 1.4179, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.8468, 1.4907, 2.7720, 1.4846, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.7366, 2.8511, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.2822, 3.0282, 2.4663, 2.8292, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.9046, 3.1023, 2.0502, 2.8450, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.9046, 3.5600, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.8296, 3.6350, 1.8296, 3.5600, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2883, 3.6350, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2883, 3.1970, 1.2883, 3.4160, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4587, 3.1970, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4587, 3.0888, 1.4587, 3.1429, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.8653, 3.4717, 1.4587, 3.7400, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.0366, 3.7333, 1.0341, 3.5480, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2135, 3.4280, 0.9193, -5.0194, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1993, 3.0677, 3.1651, 3.2495, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.0157, 2.5482, 3.2582, 2.7547, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.3809, 2.0593, -0.6286, -0.5553, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1177, 1.0344, 2.7799, 1.6674, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.0797, 0.9525, 3.1530, 0.9682, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.1534, 0.6072, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.6709, 0.9030, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.5663, 0.8759, 2.6317, 0.8391, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.3173, 0.4337, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.2252, 0.5021, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.1404, 0.5053, 2.1805, 0.4419, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.7170, 0.2376, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4585, 0.4681, -0.1000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.0200, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0200, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, -0.1000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.5019, 0.2524, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.2968, 0.3779, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.3686, 0.5094, 0.3359, 0.4419, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2235, 1.0250, 0.6280, 1.0458, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.0646, 0.9441, 0.6188, 1.3456, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.1690, 1.0490, 0.1253, 0.9881, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.6955, 1.4319, 0.3690, 1.3275, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.8145, 1.5127, 0.7669, 1.4548, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.7570, 1.7265, 0.9356, 1.6600, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.3250, 1.6489, 0.5180, 1.8156, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.1125, 1.4760, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(-0.0098, 1.5342, 0.0652, 1.5342, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.0098, 2.4577, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.5885, 2.6936, 0.3359, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.5194, 2.6670, 1.0476, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.9347, 2.4577, 1.6743, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.6616, 2.0076, 1.4272, 2.4577, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.3416, 2.2062, 1.7888, 2.8353, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.4623, 2.1263, 2.3911, 2.1499, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.2116, 1.3716, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.0681, 1.4150, 2.1404, 1.3952, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.8022, 1.5703, 1.9143, 1.4570, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.4267, 1.3394, 2.0605, 1.3092, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.4671, 1.4123, 2.5014, 1.3456, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.6932, 1.5284, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.5870, 2.8389, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.3456, 2.8390, 2.4663, 2.8292, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.1958, 2.8450, 2.2708, 2.8450, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.9046, 2.8450, 2.0502, 2.8450, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.7546, 2.8450, 1.8296, 2.8450, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.7546, 3.4850, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.2883, 3.4850, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2883, 3.3470, 1.2883, 3.4160, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4587, 3.3470, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4587, 2.9388, 1.4587, 3.1429, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7287, 3.4099, 1.4587, 3.7400, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.0386, 3.8833, 1.0341, 3.5480, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2529, 3.5728, 0.9193, -5.0194, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2271, 2.9203, 3.1651, 3.2495, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1299, 2.6454, 3.2582, 2.7547, 1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.5065, 2.1413, -0.6286, -0.5553, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2377, 0.9305, 2.7799, 1.6674, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.3366, 0.4675, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2241, 0.3879, 3.2633, 0.4518, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.6589, 0.7345, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.4063, 0.2859, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.2962, 0.2625, 2.3409, 0.3227, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.1771, 0.3510, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.7494, 0.0806, -0.1000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.6594, 0.0880, 1.7093, 0.1440, -1, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.3587, 0.3561, -0.1000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.1000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.2334, 0.0000, 0.6767, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.4419, 0.0000, 0.3359, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2281, 1.3456, 0.6280, 1.0458, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.1253, 0.9881, 0.6188, 1.3456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7669, 1.4548, 0.3690, 1.3275, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6867, 1.7527, 0.9356, 1.6600, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.3459, 1.7626, 0.5180, 1.8156, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.5342, 0.0000, 0.0652, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.4577, 0.0000, 0.0652, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6065, 2.4577, 0.3359, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4888, 2.4577, 1.0476, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.8597, 2.4577, 1.6743, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.3585, 2.0307, 1.4272, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.3911, 2.1499, 1.7888, 2.8353, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.3952, 0.0000, 2.1404, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.7494, 1.6236, 1.9143, 1.4570, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.5014, 1.3456, 2.0605, 1.3092, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4846, 0.0000, 2.7720, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.8450, 0.0000, 2.6618, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.2708, 2.8450, 2.4663, 2.8292, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.8296, 2.8450, 2.0502, 2.8450, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.5600, 0.0000, 1.8296, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.5600, 0.0000, 1.2883, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2883, 3.2720, 1.2883, 3.4160, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.2720, 0.0000, 1.4587, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4587, 3.0138, 1.4587, 3.1429, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7970, 3.4408, 1.4587, 3.7400, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.0376, 3.8083, 1.0341, 3.5480, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2332, 3.5004, 0.9193, -5.0194, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2132, 2.9940, 3.1651, 3.2495, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.0728, 2.5968, 3.2582, 2.7547, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.4437, 2.1003, -0.6286, -0.5553, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1530, 0.9682, 2.7799, 1.6674, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.4518, 0.0000, 3.2633, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.8391, 0.0000, 2.6317, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.3227, 0.0000, 2.3409, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.4419, 0.0000, 2.1805, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.1440, 0.0000, 1.7093, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.4121, 0.0000, 1.4086, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.1625, 0.0000, 0.7012, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7158, 0.2974, 0.6767, 0.2334, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.3040, 0.0000, 0.7051, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2952, 1.3791, 0.6280, 1.0458, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.1531, 1.3456, 1.2281, 1.3456, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.4443, 0.8405, 0.6188, 1.3456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.8618, 1.3275, 0.3690, 1.3275, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6164, 1.7789, 0.9356, 1.6600, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.4176, 1.7847, 0.5180, 1.8156, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.2986, 1.8208, 0.3459, 1.7626, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.6919, 0.0000, 0.1402, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.4577, 0.0000, 0.1402, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.5315, 2.4577, 0.3359, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.6815, 2.4577, 0.6065, 2.4577, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.4138, 2.4577, 1.0476, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.5638, 2.4577, 1.4888, 2.4577, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.7847, 2.4577, 1.6743, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.3704, 2.1047, 1.4272, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.3231, 1.9646, 1.3585, 2.0307, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(2.2497, 1.9620, 1.7888, 2.8353, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.6587, 0.0000, 2.1489, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.6966, 1.6769, 1.9143, 1.4570, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.5778, 1.3005, 2.0605, 1.3092, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4179, 0.0000, 2.8063, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.8468, 1.4907, 2.7720, 1.4846, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.8511, 0.0000, 2.7366, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.2822, 3.0282, 2.4663, 2.8292, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.9046, 3.1023, 2.0502, 2.8450, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.5600, 0.0000, 1.9046, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.8296, 3.6350, 1.8296, 3.5600, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.6350, 0.0000, 1.2883, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2883, 3.1970, 1.2883, 3.4160, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.1970, 0.0000, 1.4587, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4587, 3.0888, 1.4587, 3.1429, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.8653, 3.4717, 1.4587, 3.7400, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.0366, 3.7333, 1.0341, 3.5480, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2135, 3.4280, 0.9193, -5.0194, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1993, 3.0677, 3.1651, 3.2495, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.0157, 2.5482, 3.2582, 2.7547, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.3809, 2.0593, -0.6286, -0.5553, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1177, 1.0344, 2.7799, 1.6674, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.0797, 0.9525, 3.1530, 0.9682, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.6072, 0.0000, 3.1534, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.9030, 0.0000, 2.6709, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.5663, 0.8759, 2.6317, 0.8391, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.4337, 0.0000, 2.3173, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.5021, 0.0000, 2.2252, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.1404, 0.5053, 2.1805, 0.4419, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2376, 0.0000, 1.7170, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.4681, 0.0000, 1.4585, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.2524, 0.0000, 0.5019, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.3779, 0.0000, 0.2968, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.3686, 0.5094, 0.3359, 0.4419, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2235, 1.0250, 0.6280, 1.0458, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.0646, 0.9441, 0.6188, 1.3456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.1690, 1.0490, 0.1253, 0.9881, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.6955, 1.4319, 0.3690, 1.3275, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.8145, 1.5127, 0.7669, 1.4548, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.7570, 1.7265, 0.9356, 1.6600, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.3250, 1.6489, 0.5180, 1.8156, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(1.4760, 0.0000, 0.1125, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(-0.0098, 1.5342, 0.0652, 1.5342, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.4577, 0.0000, -0.0098, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.5885, 2.6936, 0.3359, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.5194, 2.6670, 1.0476, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.9347, 2.4577, 1.6743, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.6616, 2.0076, 1.4272, 2.4577, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.3416, 2.2062, 1.7888, 2.8353, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.4623, 2.1263, 2.3911, 2.1499, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.3716, 0.0000, 2.2116, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.0681, 1.4150, 2.1404, 1.3952, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.8022, 1.5703, 1.9143, 1.4570, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.4267, 1.3394, 2.0605, 1.3092, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.4671, 1.4123, 2.5014, 1.3456, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.5284, 0.0000, 2.6932, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(2.8389, 0.0000, 2.5870, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.3456, 2.8390, 2.4663, 2.8292, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.1958, 2.8450, 2.2708, 2.8450, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.9046, 2.8450, 2.0502, 2.8450, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.7546, 2.8450, 1.8296, 2.8450, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.4850, 0.0000, 1.7546, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.4850, 0.0000, 1.2883, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.2883, 3.3470, 1.2883, 3.4160, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(3.3470, 0.0000, 1.4587, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.4587, 2.9388, 1.4587, 3.1429, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(0.7287, 3.4099, 1.4587, 3.7400, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.0386, 3.8833, 1.0341, 3.5480, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2529, 3.5728, 0.9193, -5.0194, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2271, 2.9203, 3.1651, 3.2495, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.1299, 2.6454, 3.2582, 2.7547, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.5065, 2.1413, -0.6286, -0.5553, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2377, 0.9305, 2.7799, 1.6674, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.4675, 0.0000, 3.3366, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(3.2241, 0.3879, 3.2633, 0.4518, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.7345, 0.0000, 2.6589, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.2859, 0.0000, 2.4063, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(2.2962, 0.2625, 2.3409, 0.3227, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.3510, 0.0000, 2.1771, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0806, 0.0000, 1.7494, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(8.0000)
N..... ARC_FEED(1.6594, 0.0880, 1.7093, 0.1440, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.3561, 0.0000, 1.3587, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... SET_FEED_RATE(8.0000)
N..... STRAIGHT_FEED(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,115 @@
G64
G17 G20 G40 G49
G54 G80 G90 G94
M5
G00 Z1.0000
M00
S1000 M3
G04 P3
o100 sub
G00 Z0.0200
G00 X0.0000 Y0.0000
G01 Z-0.1000 F8.00
G41.1 D#100
G01 X0.6767 Y0.2334 F8.00
G01 X0.3359 Y0.4419 F8.00
G03 X1.2281 Y1.3456 I0.2921 J0.6039 F8.00
G02 X0.1253 Y0.9881 I-0.6093 J0.0000 F8.00
G03 X0.7669 Y1.4548 I0.2437 J0.3394 F8.00
G03 X0.6867 Y1.7527 I0.1687 J0.2052 F8.00
G02 X0.3459 Y1.7626 I-0.1687 J0.0629 F8.00
G01 X0.0652 Y1.5342 F8.00
G01 X0.0652 Y2.4577 F8.00
G02 X0.6065 Y2.4577 I0.2707 J0.0000 F8.00
G02 X1.4888 Y2.4577 I0.4411 J0.0000 F8.00
G02 X1.8597 Y2.4577 I0.1855 J0.0000 F8.00
G02 X1.3585 Y2.0307 I-0.4325 J0.0000 F8.00
G03 X2.3911 Y2.1499 I0.4303 J0.8046 F8.00
G01 X2.1404 Y1.3952 F8.00
G03 X1.7494 Y1.6236 I-0.2261 J0.0618 F8.00
G03 X2.5014 Y1.3456 I0.3111 J-0.3144 F8.00
G01 X2.7720 Y1.4846 F8.00
G01 X2.6618 Y2.8450 F8.00
G03 X2.2708 Y2.8450 I-0.1955 J-0.0158 F8.00
G03 X1.8296 Y2.8450 I-0.2206 J0.0000 F8.00
G01 X1.8296 Y3.5600 F8.00 ; XXX
G01 X1.2883 Y3.5600 F8.00
G03 X1.2883 Y3.2720 I0.0000 J-0.1440 F8.00
G01 X1.4587 Y3.2720 F8.00
G02 X1.4587 Y3.0138 I0.0000 J-0.1291 F8.00
G02 X0.7970 Y3.4408 I0.0000 J0.7262 F8.00
G02 X1.0376 Y3.8083 I0.2371 J0.1072 F8.00
G02 X3.2332 Y3.5004 I-0.1183 J-8.8277 F8.00
G02 X3.2132 Y2.9940 I-0.0681 J-0.2509 F8.00
G03 X3.0728 Y2.5968 I0.0450 J-0.2393 F8.00
G02 X3.4437 Y2.1003 I-3.7014 J-3.1521 F8.00
G02 X3.1530 Y0.9682 I-0.6638 J-0.4329 F8.00
G01 X3.2633 Y0.4518 F8.00
G01 X2.6317 Y0.8391 F8.00
G01 X2.3409 Y0.3227 F8.00
G01 X2.1805 Y0.4419 F8.00
G01 X1.7093 Y0.1440 F8.00
G01 X1.4086 Y0.4121 F8.00
G40
G01 X1.0000 Y0.0000 F8.00
G00 Z1.0000
o100 endsub
#100=0
o100 call
#100=-.15
o100 call
#100=.15
o100 call
o101 sub
G18
G00 Z0.0000 X0.0000
G41.1 D#100
G01 Z0.6767 X0.2334 F8.00
G01 Z0.3359 X0.4419 F8.00
G03 Z1.2281 X1.3456 K0.2921 I0.6039 F8.00
G02 Z0.1253 X0.9881 K-0.6093 I0.0000 F8.00
G03 Z0.7669 X1.4548 K0.2437 I0.3394 F8.00
G03 Z0.6867 X1.7527 K0.1687 I0.2052 F8.00
G02 Z0.3459 X1.7626 K-0.1687 I0.0629 F8.00
G01 Z0.0652 X1.5342 F8.00
G01 Z0.0652 X2.4577 F8.00
G02 Z0.6065 X2.4577 K0.2707 I0.0000 F8.00
G02 Z1.4888 X2.4577 K0.4411 I0.0000 F8.00
G02 Z1.8597 X2.4577 K0.1855 I0.0000 F8.00
G02 Z1.3585 X2.0307 K-0.4325 I0.0000 F8.00
G03 Z2.3911 X2.1499 K0.4303 I0.8046 F8.00
G01 Z2.1404 X1.3952 F8.00
G03 Z1.7494 X1.6236 K-0.2261 I0.0618 F8.00
G03 Z2.5014 X1.3456 K0.3111 I-0.3144 F8.00
G01 Z2.7720 X1.4846 F8.00
G01 Z2.6618 X2.8450 F8.00
G03 Z2.2708 X2.8450 K-0.1955 I-0.0158 F8.00
G03 Z1.8296 X2.8450 K-0.2206 I0.0000 F8.00
G01 Z1.8296 X3.5600 F8.00 ; XXX
G01 Z1.2883 X3.5600 F8.00
G03 Z1.2883 X3.2720 K0.0000 I-0.1440 F8.00
G01 Z1.4587 X3.2720 F8.00
G02 Z1.4587 X3.0138 K0.0000 I-0.1291 F8.00
G02 Z0.7970 X3.4408 K0.0000 I0.7262 F8.00
G02 Z1.0376 X3.8083 K0.2371 I0.1072 F8.00
G02 Z3.2332 X3.5004 K-0.1183 I-8.8277 F8.00
G02 Z3.2132 X2.9940 K-0.0681 I-0.2509 F8.00
G03 Z3.0728 X2.5968 K0.0450 I-0.2393 F8.00
G02 Z3.4437 X2.1003 K-3.7014 I-3.1521 F8.00
G02 Z3.1530 X0.9682 K-0.6638 I-0.4329 F8.00
G01 Z3.2633 X0.4518 F8.00
G01 Z2.6317 X0.8391 F8.00
G01 Z2.3409 X0.3227 F8.00
G01 Z2.1805 X0.4419 F8.00
G01 Z1.7093 X0.1440 F8.00
G01 Z1.4086 X0.4121 F8.00
G40
G01 Z1.0000 X0.0000 F8.00
o101 endsub
#100=0
o101 call
#100=-.15
o101 call
#100=.15
o101 call
M02

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g test.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,2 @@
This test tests inverse time feed mode and that the feeds should
be the same whether or not compensation is on.

View File

@@ -0,0 +1,114 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... COMMENT("interpreter: feed mode set to inverse time")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(30.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(20.0000)
N..... STRAIGHT_FEED(1.0000, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(40.0000)
N..... STRAIGHT_FEED(-1.0000, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(40.0000)
N..... STRAIGHT_FEED(-1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(33.0000)
N..... STRAIGHT_FEED(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.0000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to inverse time")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(10.0000)
N..... ARC_FEED(0.0000, 5.0000, 0.0000, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(25.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(0.0000, 6.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on right")
N..... COMMENT("interpreter: feed mode set to inverse time")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(30.0000)
N..... STRAIGHT_FEED(1.0000, -0.2000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(20.0000)
N..... ARC_FEED(1.2000, 0.0000, 1.0000, 0.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2000, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(40.0000)
N..... ARC_FEED(1.0000, 1.2000, 1.0000, 1.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.8000, 1.2000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(40.0000)
N..... STRAIGHT_FEED(-0.8000, 1.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(33.0000)
N..... STRAIGHT_FEED(1.0000, 1.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.2000, 2.0000, 1.0000, 2.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.2000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(1.0000, 3.2000, 1.0000, 3.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2000, 3.2000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.2000, 3.8292, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to inverse time")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(10.0000)
N..... ARC_FEED(0.0000, 5.2000, 0.0000, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(25.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(0.0000, 6.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: cutter radius compensation on left")
N..... COMMENT("interpreter: feed mode set to inverse time")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(30.0000)
N..... STRAIGHT_FEED(0.8000, 0.2000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(20.0000)
N..... STRAIGHT_FEED(0.8000, 0.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(40.0000)
N..... STRAIGHT_FEED(-1.0000, 0.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(40.0000)
N..... ARC_FEED(-1.2000, 1.0000, -1.0000, 1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-1.2000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(33.0000)
N..... ARC_FEED(-1.0000, 2.2000, -1.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.8000, 2.2000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(0.8000, 2.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.0000, 2.8000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-0.2000, 3.0000, 0.0000, 3.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(-0.2000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to inverse time")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(10.0000)
N..... ARC_FEED(0.0000, 4.2000, 0.0000, 4.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(0.0000, 4.8000, 0.0000, 4.5000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_FEED_RATE(25.0000)
N..... COMMENT("interpreter: cutter radius compensation off")
N..... STRAIGHT_FEED(0.0000, 6.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,23 @@
g20
o100 sub
g0x0y0z0
g42.1d#100
g93g1x1f30 ;30 ipm
y1f20 ;20 ipm
x-1f20 ;40 ipm
y2f40 ;40 ipm
g94
x1f33 ;33ipm
y3
x0
y4
g93g3y5j.5f[20/3.14159265359] ;10 ipm
g40g94g1y6f25
o100 endsub
#100=0
o100 call
#100=.4
o100 call
#100=-.4
o100 call
m2

View File

@@ -0,0 +1,3 @@
#!/bin/bash
rs274 -g inverse.ngc | awk '{$1=""; print}'
exit "${PIPESTATUS[0]}"

View File

@@ -0,0 +1,12 @@
executing
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
6 N..... ON_RESET()
7 N..... COMMENT("Fanuc M98 requires P-word ")
Found 'm98' code with no P-word
M98
8 N..... ON_RESET()
9 N..... ON_RESET()

View File

@@ -0,0 +1,9 @@
%
( Fanuc M98 requires P-word )
M98
O1
#1 = 13
M99
%

View File

@@ -0,0 +1,7 @@
#!/bin/bash
if ! rs274 -g test.ngc 2>&1; then
# expected to fail
exit 0
fi
exit 1

View File

@@ -0,0 +1,10 @@
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
6 N..... ON_RESET()
7 N..... COMMENT("M98 call non-existant sub ")
8 N..... FINISH()
9 N..... ON_RESET()
10 N..... ON_RESET()

View File

@@ -0,0 +1,6 @@
%
( M98 call non-existant sub )
M98 P1
M30
%

View File

@@ -0,0 +1,2 @@
#!/bin/bash -e
! rs274 -g test.ngc

View File

@@ -0,0 +1,135 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("A simple O sub example ")
N..... SET_FEED_RATE(40.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 1.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 2.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 3.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 4.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 5.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 6.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 7.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 8.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 9.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 10.000000
MAIN 10LOOP PARAM1 = 10.000000
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
MAIN 0LOOP PARAM1 = 0.000000
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 1.000000
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(2.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
SUB O1 PARAM1 = 2.000000
MAIN 2LOOP PARAM1 = 2.000000
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PALLET_SHUTTLE()
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,27 @@
%
( A simple O sub example )
F40
; Test with 10 loops
#1 = 0
G90 G0 X0 Y0 Z0.25
M98 P1 L10
(PRINT,X MAIN 10LOOP PARAM1 = #1)
; Test with 0 loops
#1 = 0
G90 G0 X0 Y0 Z0.25
M98 P1 L0
(PRINT,X MAIN 0LOOP PARAM1 = #1)
; Test with 2 loops
#1 = 0
G90 G0 X0 Y0 Z0.25
M98 P1 L2
(PRINT,X MAIN 2LOOP PARAM1 = #1)
M30
O1
G91 G99 G81 X1 Z-1.0 R0.25 ; Drill to Z-1.0
#1 = [#1 + 1]
(PRINT,X SUB O1 PARAM1 = #1)
M99
%

Some files were not shown because too many files have changed in this diff Show More