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