Import LinuxCNC source tree

This commit is contained in:
Wang Dequan
2026-08-20 06:17:39 +08:00
commit 2c814634c3
9429 changed files with 10556013 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
exercise the (ABORT,<message>) hot comment:
numbered, named and INI parameter substitution in message
case preservation
unwind from oword flow

View File

@@ -0,0 +1,10 @@
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()
MixedCase param42=20.000000 named=4711.000000 INI=3.140000
(abort, MixedCase param42=#42 named=#<named> INI=#<_ini[a]value>)
7 N..... ON_RESET()

View File

@@ -0,0 +1,8 @@
[RS274NGC]
# enable #<_ini[section]name> expansion
INI_VARS = 1
# test ini variable expansion in (ABORT, text) comment
[A]
VALUE= 3.14

View File

@@ -0,0 +1,10 @@
#42 = 0
#<named> = 4711
o100 while [#42 lt 100]
o200 if [#42 eq 20]
(abort, MixedCase param42=#42 named=#<named> INI=#<_ini[a]value>)
o200 endif
#42 = [#42 + 1]
o100 endwhile
M2

View File

@@ -0,0 +1,5 @@
#!/bin/bash
export PYTHONUNBUFFERED=1
rs274 -n 2 -i test.ini -g test.ngc 2>&1
exit 0

16
tests/interp/bad/README Normal file
View File

@@ -0,0 +1,16 @@
This directory consists of snippets of gcode that should be rejected because
they are not valid. All files that match the glob '*.ngc' are tested.
The first line should consist of a ";" followed by the exact English
error string that the interpreter should show. This is followed
by zero or more lines of test gcode.
An individual file is considered to be a failure if
* it is accepted by the interpreter
* or the error message does not exactly match the specification
An individual file is considered to be bad if
* it does not contain a parseable error specification
* the error message cannot be isolated in the interpreter's output
If any file is a failure or is bad, then the test as a whole fails and will
count as 1 failure in the testsuite.

View File

@@ -0,0 +1,36 @@
There are three components to the radius error tolerance for center-format
arcs.
The "absolute error" is the difference between the radius at the starting
point and the radius at the ending point. The "relative error" is the
absolute error divided by the maximum arc radius.
The absolute error threshold for imperial arcs is:
2 * 0.001 inch * sqrt(2)
The absolute error threshold for metric arcs is:
2 * 0.01 mm * sqrt(2)
The relative error threshold for all arcs is 0.001 (0.1%)
An arc fails the radius tolerance test if either of these conditions
is true:
* The absolute error is greater than 100 * the absolute error
threshold,
OR
* The absolute error is greater than the absolute error
threshold AND the relative error is greater than the relative
error threshold.
This yields three error regions:
r_big < t_abs/t_rel (2.828 inch or 28.28 mm ): r_small > r_big - t_abs
r_big < 100 t_abs/t_rel (282.8 inch or 2828 mm): r_small > (1-t_rel) r_big
r_big > 100 t_abs/t_rel: r_small > r_big - 100 t_abs

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

2
tests/interp/bad/checkresult Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
true

View File

@@ -0,0 +1,3 @@
(Expected # reading parameter)
G0 X EXISTS[1]
M2

View File

@@ -0,0 +1,3 @@
(Expected ] reading bracketed parameter)
G0 X EXISTS[#1+#2]
M2

View File

@@ -0,0 +1,4 @@
(Parameter number out of range)
#2=99999
G0 X EXISTS[###2]
M2

View File

@@ -0,0 +1,3 @@
(Unknown word starting with f)
G0 X EXISTS[#foo]
M2

View File

@@ -0,0 +1,3 @@
(Named parameter not terminated)
G0 X EXISTS[#<foo]
M2

View File

@@ -0,0 +1,3 @@
;bad number format (conversion failed) parsing ''
G0 X EXISTS[#]
M2

View File

@@ -0,0 +1,3 @@
(Expected ] reading bracketed parameter)
G0 X EXISTS[#<foo>+1]
M2

View File

@@ -0,0 +1,2 @@
;R word is ambiguous on a line with both G64 and M19 - use separate lines
g64 m19 r90 s0

View File

@@ -0,0 +1,2 @@
;R word with no g code that uses it
g61 r0.5

View File

@@ -0,0 +1,14 @@
;Nested subroutine definition
O1 sub
G1 X0
O2 sub
G1 Y0
O2 endsub
O1 endsub
O1 call
M30
%

View File

@@ -0,0 +1,2 @@
;Cannot do g1 with zero feed rate
g1x1

View File

@@ -0,0 +1,2 @@
;R i j k words all missing for arc
g2f1x1

View File

@@ -0,0 +1,2 @@
;All axes missing with motion code
g38.2 f1

31
tests/interp/bad/test Executable file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env python3
import glob, os, sys
fail = 0
for t in sorted(glob.glob('*.ngc')):
sys.stderr.write("# {}".format(t))
error = open(t).readline()
if error.startswith(';'): expected = error[1:-1]
elif error.startswith('('): expected = error[1:-2]
else: expected = "%s: Test does not specify expected error" % t
p = os.popen("rs274 -g %s 2>&1 > /dev/null" % t)
output = p.readlines()
r = p.close()
print("# -> {}".format(r))
if not r:
print("%s: Interpreter accepted bad gcode" % t)
fail += 1
continue
if len(output) < 2:
print("%s: Unexpected interpreter output: %r" % output)
fail += 1
continue
err = output[-2].strip()
if err != expected:
print("%s: Expected %r, got %r instead" % (t, expected, err))
fail += 1
if fail:
raise SystemExit("%d failures" % fail)

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

3
tests/interp/compile/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
/rs274ngc.var
/rs274ngc.var.bak
/use-rs274

View File

@@ -0,0 +1,10 @@
This test checks that using only public header files, out-of-tree C++ code
can use the rs274 interpreter.
When changes are required in this test after a change in the interpreter,
this is a breaking change; it should be avoided in stable releases if at
all possible, and it should be documented whenever it occurs.
This test is disabled because it requires internal LinuxCNC headers to be
exposed. Refactoring the interpreter is necessary to allow for out-of-tree
builds.

View File

@@ -0,0 +1,17 @@
this is a comment
-> 1.9 -0.9
-> 2.8 -1.6
-> 3.4 -2.4
-> 3.8 -3.3
-> 4.1 -4.7
-> 4.4 -6.6
-> 4.7 -9.0
-> 4.8 -11.8
-> 4.7 -14.7
-> 4.4 -17.5
-> 4.0 -20.1
-> 3.3 -22.6
-> 2.4 -25.0
-> 1.3 -27.3
-> 0.0 -29.6
second comment

View File

9
tests/interp/compile/test.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
set -xe
# PYTHON_CPPFLAGS is supposed to be word split
# shellcheck disable=SC2086
g++ -o use-rs274 use-rs274.cc \
-Wall -Wextra -Wno-return-type -Wno-unused-parameter \
-I "$HEADERS" $PYTHON_CPPFLAGS -L "$LIBDIR" -Wl,-rpath,"$LIBDIR" $PYTHON_EXTRA_LDFLAGS $PYTHON_LIBS $PYTHON_EXTRA_LIBS -lrs274
LD_BIND_NOW=YesPlease ./use-rs274

View File

@@ -0,0 +1,266 @@
// Copyright © 2016 Jeff Epler <jepler@unpythonic.net>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#include <Python.h> // must be first header
#include "linuxcnc.h" // LINELEN
#include "rs274ngc.hh"
#include "canon.hh"
static void read_execute(InterpBase *b, const char *line) {
fprintf(stderr, "> %s\n", line);
b->read(line);
b->execute();
}
int main() {
InterpBase *b = makeInterp();
b->init();
read_execute(b, "(this is a comment)");
read_execute(b, "G0X0Y0");
read_execute(b, "F100");
read_execute(b, "G17"); // (Plane XY)
read_execute(b, "G5.2 X3.53 Y-1.50 P2");
read_execute(b, " X5.33 Y-11.01 P1");
read_execute(b, " X3.52 Y-24.00 P1");
read_execute(b, " X0.0 Y-29.56 P1");
read_execute(b, "G5.3");
read_execute(b, "(second comment)");
read_execute(b, "M2");
return 0;
}
// this is junk that you have to define in exactly this way because of how mah
// implemented the python "remap" functionality of the interpreter
// (and it needs Python.h for the definition of struct inttab)
int _task = 0;
char _parameter_file_name[LINELEN];
extern "C" PyObject* PyInit_interpreter(void);
extern "C" PyObject* PyInit_emccanon(void);
extern "C" struct _inittab builtin_modules[];
struct _inittab builtin_modules[] = {
{ "interpreter", PyInit_interpreter },
{ "emccanon", PyInit_emccanon },
{ NULL, NULL }
};
// everything below here is stuff that needs a real implementation, not a dummy
// one
void INIT_CANON() {}
void SET_G5X_OFFSET(int origin,
double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {}
void SET_G92_OFFSET(double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {}
void SET_XY_ROTATION(double t) {}
void CANON_UPDATE_END_POINT(double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {}
void USE_LENGTH_UNITS(CANON_UNITS u) {}
void SELECT_PLANE(CANON_PLANE pl) {}
void SET_TRAVERSE_RATE(double rate) {}
void STRAIGHT_TRAVERSE(int lineno,
double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {}
void SET_FEED_RATE(double rate) {}
void SET_FEED_REFERENCE(CANON_FEED_REFERENCE reference) {}
void SET_FEED_MODE(int spindle, int mode) {}
void SET_MOTION_CONTROL_MODE(CANON_MOTION_MODE mode, double tolerance) {}
void SET_NAIVECAM_TOLERANCE(double tolerance) {}
void SET_CUTTER_RADIUS_COMPENSATION(double radius) {}
void START_CUTTER_RADIUS_COMPENSATION(int direction) {}
void STOP_CUTTER_RADIUS_COMPENSATION() {}
void START_SPEED_FEED_SYNCH(int spindle, double feed_per_revolution, bool velocity_mode) {}
void STOP_SPEED_FEED_SYNCH() {}
void ARC_FEED(int lineno,
double first_end, double second_end,
double first_axis, double second_axis, int rotation,
double axis_end_point,
double a, double b, double c,
double u, double v, double w) {}
void STRAIGHT_FEED(int lineno,
double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {
printf("-> %.1f %.1f\n", x, y);
}
void NURBS_G5_FEED(int lineno, const std::vector<NURBS_CONTROL_POINT>& nurbs_control_points, unsigned int k, CANON_PLANE plane) {
double u = 0.0;
unsigned int n = nurbs_control_points.size() - 1;
double umax = n - k + 2;
unsigned int div = nurbs_control_points.size()*3;
std::vector<unsigned int> knot_vector = nurbs_G5_knot_vector_creator(n, k);
NURBS_PLANE_POINT P1;
while (u+umax/div < umax) {
NURBS_PLANE_POINT P1 = nurbs_G5_point(u+umax/div,k,nurbs_control_points,knot_vector);
STRAIGHT_FEED(lineno, P1.NURBS_X,P1.NURBS_Y, 0., 0.,0.,0., 0.,0.,0.);
u = u + umax/div;
}
P1.NURBS_X = nurbs_control_points[n].NURBS_X;
P1.NURBS_Y = nurbs_control_points[n].NURBS_Y;
STRAIGHT_FEED(lineno, P1.NURBS_X,P1.NURBS_Y, 0., 0.,0.,0., 0.,0.,0.);
knot_vector.clear();
}
void NURBS_G6_FEED(int lineno, const std::vector<NURBS_G6_CONTROL_POINT>& nurbs_control_points, unsigned int k, double feedrate, int L_option, CANON_PLANE plane) { // (L_option: NICU, NICL, NICC see publication from Lo Valvo and Drago)
}
void RIGID_TAP(int lineno,
double x, double y, double z, double scale) {}
void STRAIGHT_PROBE(int lineno,
double x, double y, double z,
double a, double b, double c,
double u, double v, double w, unsigned char probe_type) {}
void STOP() {}
void DWELL(double seconds) {}
void SET_SPINDLE_MODE(int spindle, double r) {}
void SPINDLE_RETRACT_TRAVERSE() {}
void START_SPINDLE_CLOCKWISE(int spindle, int dir) {}
void START_SPINDLE_COUNTERCLOCKWISE(int spindle, int dir) {}
void SET_SPINDLE_SPEED(int spindle, double r) {}
void STOP_SPINDLE_TURNING(int spindle, int wait_for_atspeed) {}
void SPINDLE_RETRACT() {}
void ORIENT_SPINDLE(int spindle, double orientation, int mode) {}
void WAIT_SPINDLE_ORIENT_COMPLETE(int spindle, double timeout) {}
void LOCK_SPINDLE_Z() {}
void USE_SPINDLE_FORCE() {}
void USE_NO_SPINDLE_FORCE() {}
void SET_TOOL_TABLE_ENTRY(int pocket, int toolno, const EmcPose& offset, double diameter,
double frontangle, double backangle, int orientation) {}
void USE_TOOL_LENGTH_OFFSET(const EmcPose& offset) {}
void CHANGE_TOOL() {}
void SELECT_TOOL(int tool) {}
void CHANGE_TOOL_NUMBER(int number) {}
void RELOAD_TOOLDATA() {}
void CLAMP_AXIS(CANON_AXIS axis) {}
void COMMENT(const char *s) { puts(s); }
void DISABLE_ADAPTIVE_FEED() {}
void ENABLE_ADAPTIVE_FEED() {}
void DISABLE_FEED_OVERRIDE() {}
void ENABLE_FEED_OVERRIDE() {}
void DISABLE_SPEED_OVERRIDE(int spindle) {}
void ENABLE_SPEED_OVERRIDE(int spindle) {}
void DISABLE_FEED_HOLD() {}
void ENABLE_FEED_HOLD() {}
void FLOOD_OFF() {}
void FLOOD_ON() {}
void MESSAGE(char *s) {}
void LOG(char *s) {}
void LOGOPEN(char *s) {}
void LOGAPPEND(char *s) {}
void LOGCLOSE() {}
void MIST_OFF() {}
void MIST_ON() {}
void PALLET_SHUTTLE() {}
void TURN_PROBE_OFF() {}
void TURN_PROBE_ON() {}
void UNCLAMP_AXIS(CANON_AXIS axis) {}
void NURB_KNOT_VECTOR() {}
void NURB_CONTROL_POINT(int i, double x, double y, double z,
double w) {}
void NURB_FEED(double sStart, double sEnd) {}
void SET_BLOCK_DELETE(bool enabled) {}
bool GET_BLOCK_DELETE(void) { return false; }
void OPTIONAL_PROGRAM_STOP() {}
void SET_OPTIONAL_PROGRAM_STOP(bool state) {}
bool GET_OPTIONAL_PROGRAM_STOP() { return false; }
void PROGRAM_END() {}
void PROGRAM_STOP() {}
void SET_MOTION_OUTPUT_BIT(int index) {}
void CLEAR_MOTION_OUTPUT_BIT(int index) {}
void SET_AUX_OUTPUT_BIT(int index) {}
void CLEAR_AUX_OUTPUT_BIT(int index) {}
void SET_MOTION_OUTPUT_VALUE(int index, double value) {}
void SET_AUX_OUTPUT_VALUE(int index, double value) {}
int WAIT(int index,
int input_type,
int wait_type,
double timeout) { return 0; }
int UNLOCK_ROTARY(int line_no, int axis) { return 0; }
int LOCK_ROTARY(int line_no, int axis) { return 0; }
double GET_EXTERNAL_FEED_RATE() { return 0.0; }
int GET_EXTERNAL_FLOOD() { return 0; }
CANON_UNITS GET_EXTERNAL_LENGTH_UNIT_TYPE() { return CANON_UNITS_MM; }
double GET_EXTERNAL_LENGTH_UNITS() { return 0.0; }
double GET_EXTERNAL_ANGLE_UNITS() { return 0.0; }
int GET_EXTERNAL_MIST() { return 0; }
CANON_MOTION_MODE GET_EXTERNAL_MOTION_CONTROL_MODE() { return CANON_EXACT_STOP; }
double GET_EXTERNAL_MOTION_CONTROL_TOLERANCE() { return 0.0; }
extern void SET_PARAMETER_FILE_NAME(const char *name) {}
double GET_EXTERNAL_MOTION_CONTROL_NAIVECAM_TOLERANCE() { return 0.0; }
void GET_EXTERNAL_PARAMETER_FILE_NAME(char *filename, int max_size) {
snprintf(filename, max_size, "%s", "rs274ngc.var");
}
CANON_PLANE GET_EXTERNAL_PLANE() { return CANON_PLANE::XY; }
double GET_EXTERNAL_POSITION_A() { return 0.0; }
double GET_EXTERNAL_POSITION_B() { return 0.0; }
double GET_EXTERNAL_POSITION_C() { return 0.0; }
double GET_EXTERNAL_POSITION_X() { return 0.0; }
double GET_EXTERNAL_POSITION_Y() { return 0.0; }
double GET_EXTERNAL_POSITION_Z() { return 0.0; }
double GET_EXTERNAL_POSITION_U() { return 0.0; }
double GET_EXTERNAL_POSITION_V() { return 0.0; }
double GET_EXTERNAL_POSITION_W() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_A() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_B() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_C() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_X() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_Y() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_Z() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_U() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_V() { return 0.0; }
double GET_EXTERNAL_PROBE_POSITION_W() { return 0.0; }
double GET_EXTERNAL_PROBE_VALUE() { return 0.0; }
int GET_EXTERNAL_PROBE_TRIPPED_VALUE() { return 0; }
int GET_EXTERNAL_QUEUE_EMPTY() { return 0; }
double GET_EXTERNAL_SPEED(int spindle) { return 0.0; }
CANON_DIRECTION GET_EXTERNAL_SPINDLE(int spindle) { return CANON_STOPPED; }
double GET_EXTERNAL_TOOL_LENGTH_XOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_YOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_ZOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_AOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_BOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_COFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_UOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_VOFFSET() { return 0.0; }
double GET_EXTERNAL_TOOL_LENGTH_WOFFSET() { return 0.0; }
int GET_EXTERNAL_TOOL_SLOT() { return 0; }
int GET_EXTERNAL_SELECTED_TOOL_SLOT() { return 0; }
CANON_TOOL_TABLE GET_EXTERNAL_TOOL_TABLE(int pocket) { CANON_TOOL_TABLE retval; memset(&retval, 0, sizeof(retval)); return retval; }
int GET_EXTERNAL_TC_FAULT() { return 0; }
int GET_EXTERNAL_TC_REASON() { return 0; }
double GET_EXTERNAL_TRAVERSE_RATE() { return 0.0; }
int GET_EXTERNAL_FEED_OVERRIDE_ENABLE() { return 0; }
int GET_EXTERNAL_SPINDLE_OVERRIDE_ENABLE(int spindle) { return 0; }
int GET_EXTERNAL_ADAPTIVE_FEED_ENABLE() { return 0; }
int GET_EXTERNAL_FEED_HOLD_ENABLE() { return 0; }
int GET_EXTERNAL_DIGITAL_INPUT(int index, int def) { return 0; }
double GET_EXTERNAL_ANALOG_INPUT(int index, double def) { return 0.0; }
int GET_EXTERNAL_AXIS_MASK() { return 7; }
void FINISH(void) {}
void ON_RESET(void) {}
void CANON_ERROR(const char *fmt, ...) {}
void UPDATE_TAG(const StateTag& tag) {}
USER_DEFINED_FUNCTION_TYPE
USER_DEFINED_FUNCTION[USER_DEFINED_FUNCTION_NUM];
int GET_EXTERNAL_OFFSET_APPLIED() { return 0; };
EmcPose GET_EXTERNAL_OFFSETS(){ EmcPose retval; ZERO_EMC_POSE(retval); return retval; };

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,3 @@
Tests for bug 3420655 (http://sourceforge.net/tracker/?func=detail&atid=106744&aid=3420655&group_id=6744)

View File

@@ -0,0 +1,7 @@
o102 do
(print,@start of do-while-loop)
o102 break
(print,@end of do-while-loop)
o102 while [1]
(print,@endsub)
M2

View File

@@ -0,0 +1,21 @@
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..... MESSAGE("must-execute-outer")
N..... MESSAGE("must-execute-nested")
N..... MESSAGE("must-execute-inner")
N..... MESSAGE("post-inner-while")
N..... MESSAGE("post-nested-while")
N..... MESSAGE("post-outer-while")
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,30 @@
#<one_pass> = 0
o100 do
(debug,must-execute-outer)
#<one_pass> = [#<one_pass> + 1]
#<two_pass> = 0
o200 do
(debug,must-execute-nested)
#<two_pass> = [#<two_pass> + 1]
#<three_pass> = 0
o300 do
(debug,must-execute-inner)
#<three_pass> = [#<three_pass> + 1]
o300 break
(debug,do-not-execute-inner)
o300 while [#<three_pass> LT 3]
(debug,post-inner-while)
o200 break
(debug,do-not-execute-nested)
o200 while [#<two_pass> LT 3]
(debug,post-nested-while)
o100 break
(debug,do-not-execute-outer)
o100 while [#<one_pass> LT 3]
(debug,post-outer-while)
M2

View File

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

View File

@@ -0,0 +1 @@
Test that EXISTS[] works as desired

View File

@@ -0,0 +1,18 @@
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..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("comment")
N..... STRAIGHT_TRAVERSE(1.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,7 @@
#<a>=999
G0 X EXISTS[#1] Y EXISTS[#99999] Z EXISTS[#<a>] A EXISTS[#<b>] ; comment
#1=2
#2=99999
G0 X EXISTS[##1] Y EXISTS[##2] Z EXISTS[###1] (comment)
M2

View File

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

View File

@@ -0,0 +1,6 @@
This test mills the flowsnake form, testing the following interpreter features:
named owords
recursive subroutine calls

View File

@@ -0,0 +1,403 @@
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("Program to mill a flowsnake")
N..... COMMENT("K. Lerman")
N..... SET_SPINDLE_SPEED(0, 1.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.2500, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2500, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3796, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4444, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.5093, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6389, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7037, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6389, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7685, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.8333, 0.6632, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.8981, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.0278, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.9630, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.0278, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.1574, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.2222, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.2870, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4167, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4815, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4167, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.5463, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.6111, 0.6632, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.5463, 0.5509, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4167, 0.5509, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4815, 0.4387, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4167, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.5463, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.6111, 0.2142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.6759, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.8056, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.8704, 0.2142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.8056, 0.1019, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.9352, 0.1019, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.0000, -0.0104, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.0648, 0.1019, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.1944, 0.1019, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.1296, 0.2142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.1944, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.3241, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.3889, 0.2142, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.4537, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5833, 0.3264, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5185, 0.4387, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5833, 0.5509, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.4537, 0.5509, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.3889, 0.6632, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.4537, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5833, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5185, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5833, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.7130, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.7778, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.8426, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.9722, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.0370, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.9722, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.1019, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.1667, 0.6632, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2315, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3611, 0.7755, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2963, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3611, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.4907, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5556, 0.8877, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6204, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7500, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6852, 1.1093, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7474, 1.2200, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6204, 1.2185, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5556, 1.3278, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6178, 1.4385, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7448, 1.4400, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6800, 1.5493, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7422, 1.6601, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6152, 1.6586, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5504, 1.7678, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.4881, 1.6571, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3611, 1.6556, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2963, 1.7648, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3585, 1.8756, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2315, 1.8741, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.1667, 1.9833, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2289, 2.0941, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3559, 2.0956, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2911, 2.2049, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3533, 2.3156, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.4803, 2.3171, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5452, 2.2079, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6074, 2.3186, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7344, 2.3201, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6696, 2.4294, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7318, 2.5401, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6048, 2.5386, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5399, 2.6479, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6022, 2.7587, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7292, 2.7602, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.6644, 2.8694, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.7266, 2.9802, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5996, 2.9787, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.5347, 3.0879, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.4725, 2.9772, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3455, 2.9757, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2807, 3.0849, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.3429, 3.1957, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.2159, 3.1942, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.1511, 3.3035, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.0888, 3.1927, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.9618, 3.1912, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(3.0266, 3.0819, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.9644, 2.9712, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.8374, 2.9697, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.7726, 3.0789, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.7104, 2.9682, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5833, 2.9667, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5185, 3.0759, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5807, 3.1867, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.4537, 3.1852, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.3889, 3.2944, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.4511, 3.4052, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5781, 3.4067, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5133, 3.5160, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.5755, 3.6267, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.4485, 3.6252, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.3837, 3.7345, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.3215, 3.6237, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.1944, 3.6222, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.1296, 3.7315, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.1918, 3.8422, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.0648, 3.8407, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(2.0000, 3.9500, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.9352, 3.8407, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.8082, 3.8422, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.8704, 3.7315, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.8056, 3.6222, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.6785, 3.6237, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.6163, 3.7345, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.5515, 3.6252, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4245, 3.6267, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4867, 3.5160, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4219, 3.4067, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.5489, 3.4052, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.6111, 3.2944, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.5463, 3.1852, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4193, 3.1867, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4815, 3.0759, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.4167, 2.9667, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.2896, 2.9682, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.2274, 3.0789, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.1626, 2.9697, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.0356, 2.9712, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.9734, 3.0819, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(1.0382, 3.1912, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.9112, 3.1927, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.8489, 3.3035, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7841, 3.1942, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6571, 3.1957, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7193, 3.0849, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6545, 2.9757, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.5275, 2.9772, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4653, 3.0879, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4004, 2.9787, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2734, 2.9802, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3356, 2.8694, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2708, 2.7602, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3978, 2.7587, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4601, 2.6479, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3952, 2.5386, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2682, 2.5401, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3304, 2.4294, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2656, 2.3201, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3926, 2.3186, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4548, 2.2079, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.5197, 2.3171, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6467, 2.3156, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7089, 2.2049, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6441, 2.0956, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7711, 2.0941, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.8333, 1.9833, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7685, 1.8741, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6415, 1.8756, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.7037, 1.7648, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.6389, 1.6556, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.5119, 1.6571, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4496, 1.7678, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3848, 1.6586, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2578, 1.6601, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3200, 1.5493, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2552, 1.4400, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3822, 1.4385, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.4444, 1.3278, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3796, 1.2185, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2526, 1.2200, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.3148, 1.1093, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_FEED(0.2500, 1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(0.2500, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... FINISH()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,41 @@
%
(Program to mill a flowsnake)
(K. Lerman)
o<flowsnake> sub
#<level> = #1
#<startX> = #2
#<startY> = #3
#<endX> = #4
#<endY> = #5
o<test> if [#<level> EQ 0]
g1 f10 x#<endX> y#<endY>
o<test> else
#<p1X> = [[#<startX> * 2 + #<endX>]/3]
#<p1Y> = [[#<startY> * 2 + #<endY>]/3]
#<p2X> = [[#<startX> + #<endX>]/2 + [#<endY> - #<startY>]/[SQRT[12.0]]]
#<p2Y> = [[#<startY> + #<endY>]/2 - [#<endX> - #<startX>]/[SQRT[12.0]]]
#<p3X> = [[#<startX> + 2 * #<endX>]/3]
#<p3Y> = [[#<startY> + 2 * #<endY>]/3]
o<flowsnake> call [#<level>-1] [#<startX>] [#<startY>] [#<p1X>] [#<p1Y>]
o<flowsnake> call [#<level>-1] [#<p1X>] [#<p1Y>] [#<p2X>] [#<p2Y>]
o<flowsnake> call [#<level>-1] [#<p2X>] [#<p2Y>] [#<p3X>] [#<p3Y>]
o<flowsnake> call [#<level>-1] [#<p3X>] [#<p3Y>] [#<endX>] [#<endY>]
o<test> endif
o<flowsnake> endsub
S1M3
g0 z1
g0 x.25 y1.0
g1 f10 z0
#<level> = 3
o<flowsnake> call [#<level>] [.25] (will this comment cause problems) [1.0] [3.75] [1.0]
o<flowsnake> call [#<level>] [3.75] [1.0] [2.0] [3.95]
o<flowsnake> call [#<level>] [2.0] [3.95] [.25] [1.0]
g0 z1
M5
%

View File

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

View File

@@ -0,0 +1 @@
Test that line numbers like Ndddd.ddd are accepted too

View File

@@ -0,0 +1,18 @@
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_SPINDLE_SPEED(0, 300.0000)
N1234 SET_SPINDLE_SPEED(0, 600.0000)
N4567 SET_SPINDLE_SPEED(0, 1200.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,4 @@
S300
N1234 S600
N4567.789 S1200
M2

View File

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

View File

@@ -0,0 +1,131 @@
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..... 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..... 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..... 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..... 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..... 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..... 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..... 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..... 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..... 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..... 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..... 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..... 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..... MESSAGE(" should be -.707 -.707 0: -0.707107 -0.707107 0.000000")
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 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..... MESSAGE(" should be 0 -1.414 0: 0.000000 -1.414214 0.000000")
N..... MESSAGE(" should be 1 0: 1.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 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(" should be 0 -1.414 0: 0.000000 -1.414214 0.000000")
N..... MESSAGE(" should be 1 0: 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 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..... 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,88 @@
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
(debug, should be 1 2 0: #5401 #5402 #5403)
g10 l1 p1 z3
(debug, should be 1 2 3: #5401 #5402 #5403)
g49
(debug, part 2)
g10 l1 p1 x0 y0 z0
(debug, should be 0 0 0: #5401 #5402 #5403)
g10 l1 p1 x1
(debug, should be 1 0 0: #5401 #5402 #5403)
g10 l1 p1 y2
(debug, should be 1 2 0: #5401 #5402 #5403)
g10 l1 p1 z3
(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
(debug, should be -.9 -1.8 0: #5401 #5402 #5403)
g10 l10 p1 z3
(debug, should be -.9 -1.8 -2.7: #5401 #5402 #5403)
g49
(debug, part 2)
g10 l10 p1 x0 y0 z0
(debug, should be .1 .2 .3: #5401 #5402 #5403)
g10 l10 p1 x1
(debug, should be -.9 0.2 .3: #5401 #5402 #5403)
g10 l10 p1 y2
(debug, should be -.9 -1.8 .3: #5401 #5402 #5403)
g10 l10 p1 y2 z3
(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
(debug, should be -.707 -.707 0: #5401 #5402 #5403)
g43
(debug, should be 1 0: #5420 #5421)
g10 l10 p1 y1
(debug, should be 0 -1.414 0: #5401 #5402 #5403)
(debug, should be 1 0: #5420 #5421)
g43
(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, should be 0 -1.414 0: #5401 #5402 #5403)
(debug, should be 1 0: #5420 #5421)
g43
(debug, should be 1 1: #5420 #5421)
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,62 @@
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..... 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, -24.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..... 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, -76.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, -76.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..... 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, -76.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(20.0000)
N..... STRAIGHT_TRAVERSE(37.5933, 44.0978, 52.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..... 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,37 @@
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
(debug,#5403)
g55
g0 g53 z-30
g10 l11 p1 z1 ; length should be -4
(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
(debug,#5403)
g55
g0 g53 z-30
g10 l11 p1 z1 ; ... so the length should still be -4
(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,21 @@
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..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... START_SPEED_FEED_SYNC(0.100000,0)
N..... RIGID_TAP(0.0000, 0.0000, -1.2000)
N..... STOP_SPEED_FEED_SYNCH()
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,5 @@
g0 x0 y0 z1
s1000
m3
g33.1 z-1.2 k0.1
m2

View File

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

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,59 @@
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(25.4000, 25.4000, 25.4000, 1.0000, 1.0000, 1.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
6 N..... ON_RESET()
7 N..... COMMENT("G92 params 5210-5219 will persist or not depending on")
8 N..... COMMENT("DISABLE_G92_PERSISTENCE setting in INI file")
G92 flag: param 5210 == 2.000000
G92 params: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
9 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
10 N..... SET_XY_ROTATION(0.0000)
11 N..... SET_FEED_MODE(0, 0)
12 N..... SET_FEED_RATE(0.0000)
13 N..... STOP_SPINDLE_TURNING(0)
14 N..... SET_SPINDLE_MODE(0 0.0000)
15 N..... PALLET_SHUTTLE()
16 N..... PROGRAM_END()
17 N..... ON_RESET()
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(25.4000, 25.4000, 25.4000, 1.0000, 1.0000, 1.0000)
4 N..... SET_XY_ROTATION(0.0000)
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
6 N..... ON_RESET()
7 N..... COMMENT("G92 params 5210-5219 will persist or not depending on")
8 N..... COMMENT("DISABLE_G92_PERSISTENCE setting in INI file")
G92 flag: param 5210 == 2.000000
G92 params: 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
9 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
10 N..... SET_XY_ROTATION(0.0000)
11 N..... SET_FEED_MODE(0, 0)
12 N..... SET_FEED_RATE(0.0000)
13 N..... STOP_SPINDLE_TURNING(0)
14 N..... SET_SPINDLE_MODE(0 0.0000)
15 N..... PALLET_SHUTTLE()
16 N..... PROGRAM_END()
17 N..... ON_RESET()
18 N..... ON_RESET()
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("G92 params 5210-5219 will persist or not depending on")
8 N..... COMMENT("DISABLE_G92_PERSISTENCE setting in INI file")
G92 flag: param 5210 == 0.000000
G92 params: 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
9 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
10 N..... SET_XY_ROTATION(0.0000)
11 N..... SET_FEED_MODE(0, 0)
12 N..... SET_FEED_RATE(0.0000)
13 N..... STOP_SPINDLE_TURNING(0)
14 N..... SET_SPINDLE_MODE(0 0.0000)
15 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
16 N..... PALLET_SHUTTLE()
17 N..... PROGRAM_END()
18 N..... ON_RESET()

View File

@@ -0,0 +1,7 @@
(G92 params 5210-5219 will persist or not depending on)
(DISABLE_G92_PERSISTENCE setting in INI file)
(PRINT,G92 flag: param 5210 == #5210)
(PRINT,G92 params: #5211 #5212 #5213 #5214 #5215 #5216 #5217 #5218 #5219)
M30

View File

@@ -0,0 +1,10 @@
5210 2.000000
5211 1.000000
5212 1.000000
5213 1.000000
5214 1.000000
5215 1.000000
5216 1.000000
5217 1.000000
5218 1.000000
5219 1.000000

View File

@@ -0,0 +1,2 @@
[RS274NGC]
DISABLE_G92_PERSISTENCE = 1

View File

@@ -0,0 +1,2 @@
[RS274NGC]
DISABLE_G92_PERSISTENCE = 0

View File

@@ -0,0 +1,25 @@
#!/bin/bash
#
# Set up .var file with made-up values for #5210-#5219
#
cp g92_offsets.var.template g92_offsets.var
#
# Check DISABLE_G92_PERSISTENCE = 0
# Should reproduce params in .var file for #5210-#5219
#
rs274 -g -v g92_offsets.var -i persistent_g92_offset_true.ini \
g92_offsets.ngc
#
# Check DISABLE_G92_PERSISTENCE default = 0
# Should reproduce params in .var file for #5210-#5219
#
rs274 -g -v g92_offsets.var g92_offsets.ngc
#
# Check DISABLE_G92_PERSISTENCE = 1
# Should produce 0.0000 values for #5210-#5219
#
rs274 -g -v g92_offsets.var -i persistent_g92_offset_false.ini \
g92_offsets.ngc
# Clean up
rm -f g92_offsets.var g92_offsets.var.bak

View File

@@ -0,0 +1,23 @@
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..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(2.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_STOP)
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,6 @@
G64
G64P1
G64P1Q2
G61
G61.1
M2

View File

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

View File

@@ -0,0 +1,34 @@
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..... SET_PLANNER_MODE(type=1, peak_scale=0.500000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.0000)
N..... SET_PLANNER_MODE(type=1, peak_scale=1.000000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.0000)
N..... SET_PLANNER_MODE(type=1, peak_scale=1.000000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.0000)
N..... SET_PLANNER_MODE(type=1, peak_scale=0.100000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.0000)
N..... SET_PLANNER_MODE(type=0, peak_scale=-1.000000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 1.000000)
N..... SET_NAIVECAM_TOLERANCE(1.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,8 @@
G64
G64 P1 R0.5
G64 P1 R1
G64 P1 R2.5
G64 P1 R0.05
G64 P1 R0
G64 P1
M2

View File

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

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()

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