Import LinuxCNC source tree
This commit is contained in:
49
tests/interp/m98m99/01-basics/expected
Normal file
49
tests/interp/m98m99/01-basics/expected
Normal file
@@ -0,0 +1,49 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(3.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(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..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
13
tests/interp/m98m99/01-basics/test.ngc
Normal file
13
tests/interp/m98m99/01-basics/test.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
%
|
||||
( A simple O sub example )
|
||||
|
||||
F40
|
||||
G90 G0 X0 Y0 Z0.25
|
||||
M98 P1 L3
|
||||
M30
|
||||
|
||||
O1
|
||||
G91 G0 X1 ; Jog 1" along X (relative)
|
||||
G90 G99 G81 Z-1.0 R0.25 ; Drill to Z-1.0
|
||||
M99
|
||||
%
|
||||
3
tests/interp/m98m99/01-basics/test.sh
Executable file
3
tests/interp/m98m99/01-basics/test.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
25
tests/interp/m98m99/02-variables/expected
Normal file
25
tests/interp/m98m99/02-variables/expected
Normal file
@@ -0,0 +1,25 @@
|
||||
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("Fanuc params have global scope; rs274ngc params #1..#30 have local scope ")
|
||||
MAIN/FANUC: PRE-M98: 1=42.010000; 30=42.300000; 31=42.310000
|
||||
O1: START: 1=42.010000; 30=42.300000; 31=42.310000
|
||||
O1: END: 1=13.010000; 30=13.300000; 31=13.310000
|
||||
MAIN/FANUC: POST-M98: 1=13.010000; 30=13.300000; 31=13.310000
|
||||
MAIN/RS274NGC: PRE-O-CALL: 1=42.010000; 30=42.300000; 31=42.310000
|
||||
O2: START: 1=0.000000; 30=0.000000; 31=42.310000
|
||||
O2: END: 1=13.010000; 30=13.300000; 31=13.310000
|
||||
MAIN/RS274NGC: POST-O-CALL: 1=42.010000; 30=42.300000; 31=13.310000
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
37
tests/interp/m98m99/02-variables/test.ngc
Normal file
37
tests/interp/m98m99/02-variables/test.ngc
Normal file
@@ -0,0 +1,37 @@
|
||||
%
|
||||
( Fanuc params have global scope; rs274ngc params #1..#30 have local scope )
|
||||
|
||||
; Fanuc-style: Test that all params are globally changed
|
||||
#1 = 42.01
|
||||
#30 = 42.30
|
||||
#31 = 42.31
|
||||
(PRINT,Q MAIN/FANUC: PRE-M98: 1=#1; 30=#30; 31=#31)
|
||||
M98 P1
|
||||
(PRINT,Q MAIN/FANUC: POST-M98: 1=#1; 30=#30; 31=#31)
|
||||
|
||||
; RS274NGC-style: Test that params #1..#30 are not globally changed
|
||||
#1 = 42.01
|
||||
#30 = 42.30
|
||||
#31 = 42.31
|
||||
(PRINT,Q MAIN/RS274NGC: PRE-O-CALL: 1=#1; 30=#30; 31=#31)
|
||||
O2 call
|
||||
(PRINT,Q MAIN/RS274NGC: POST-O-CALL: 1=#1; 30=#30; 31=#31)
|
||||
M30
|
||||
|
||||
O1 ; Fanuc-style
|
||||
(PRINT,Q O1: START: 1=#1; 30=#30; 31=#31)
|
||||
#1 = 13.01
|
||||
#30 = 13.30
|
||||
#31 = 13.31
|
||||
(PRINT,Q O1: END: 1=#1; 30=#30; 31=#31)
|
||||
M99
|
||||
|
||||
O2 sub ; rs274ngc-style
|
||||
(PRINT,Q O2: START: 1=#1; 30=#30; 31=#31)
|
||||
#1 = 13.01
|
||||
#30 = 13.30
|
||||
#31 = 13.31
|
||||
(PRINT,Q O2: END: 1=#1; 30=#30; 31=#31)
|
||||
O2 endsub
|
||||
|
||||
%
|
||||
3
tests/interp/m98m99/02-variables/test.sh
Normal file
3
tests/interp/m98m99/02-variables/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
12
tests/interp/m98m99/03-error-M98-no-P-word/expected
Normal file
12
tests/interp/m98m99/03-error-M98-no-P-word/expected
Normal file
@@ -0,0 +1,12 @@
|
||||
executing
|
||||
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
4 N..... SET_XY_ROTATION(0.0000)
|
||||
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
6 N..... ON_RESET()
|
||||
7 N..... COMMENT("Fanuc M98 requires P-word ")
|
||||
Found 'm98' code with no P-word
|
||||
M98
|
||||
8 N..... ON_RESET()
|
||||
9 N..... ON_RESET()
|
||||
9
tests/interp/m98m99/03-error-M98-no-P-word/test.ngc
Normal file
9
tests/interp/m98m99/03-error-M98-no-P-word/test.ngc
Normal file
@@ -0,0 +1,9 @@
|
||||
%
|
||||
( Fanuc M98 requires P-word )
|
||||
|
||||
M98
|
||||
|
||||
O1
|
||||
#1 = 13
|
||||
M99
|
||||
%
|
||||
7
tests/interp/m98m99/03-error-M98-no-P-word/test.sh
Executable file
7
tests/interp/m98m99/03-error-M98-no-P-word/test.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
if ! rs274 -g test.ngc 2>&1; then
|
||||
# expected to fail
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exit 1
|
||||
10
tests/interp/m98m99/04-M98-but-no-sub/expected
Normal file
10
tests/interp/m98m99/04-M98-but-no-sub/expected
Normal file
@@ -0,0 +1,10 @@
|
||||
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
4 N..... SET_XY_ROTATION(0.0000)
|
||||
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
6 N..... ON_RESET()
|
||||
7 N..... COMMENT("M98 call non-existant sub ")
|
||||
8 N..... FINISH()
|
||||
9 N..... ON_RESET()
|
||||
10 N..... ON_RESET()
|
||||
6
tests/interp/m98m99/04-M98-but-no-sub/test.ngc
Normal file
6
tests/interp/m98m99/04-M98-but-no-sub/test.ngc
Normal file
@@ -0,0 +1,6 @@
|
||||
%
|
||||
( M98 call non-existant sub )
|
||||
|
||||
M98 P1
|
||||
M30
|
||||
%
|
||||
2
tests/interp/m98m99/04-M98-but-no-sub/test.sh
Executable file
2
tests/interp/m98m99/04-M98-but-no-sub/test.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash -e
|
||||
! rs274 -g test.ngc
|
||||
135
tests/interp/m98m99/05-M98-loops/expected
Normal file
135
tests/interp/m98m99/05-M98-loops/expected
Normal file
@@ -0,0 +1,135 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 1.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 2.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(3.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 3.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(4.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 4.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(4.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(5.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 5.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(5.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(6.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 6.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(6.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(7.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 7.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(7.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(8.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 8.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(8.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(9.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 9.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(9.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(10.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 10.000000
|
||||
MAIN 10LOOP PARAM1 = 10.000000
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
MAIN 0LOOP PARAM1 = 0.000000
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 1.000000
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0000, 0.0000, -0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
SUB O1 PARAM1 = 2.000000
|
||||
MAIN 2LOOP PARAM1 = 2.000000
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
27
tests/interp/m98m99/05-M98-loops/test.ngc
Normal file
27
tests/interp/m98m99/05-M98-loops/test.ngc
Normal file
@@ -0,0 +1,27 @@
|
||||
%
|
||||
( A simple O sub example )
|
||||
|
||||
F40
|
||||
; Test with 10 loops
|
||||
#1 = 0
|
||||
G90 G0 X0 Y0 Z0.25
|
||||
M98 P1 L10
|
||||
(PRINT,X MAIN 10LOOP PARAM1 = #1)
|
||||
; Test with 0 loops
|
||||
#1 = 0
|
||||
G90 G0 X0 Y0 Z0.25
|
||||
M98 P1 L0
|
||||
(PRINT,X MAIN 0LOOP PARAM1 = #1)
|
||||
; Test with 2 loops
|
||||
#1 = 0
|
||||
G90 G0 X0 Y0 Z0.25
|
||||
M98 P1 L2
|
||||
(PRINT,X MAIN 2LOOP PARAM1 = #1)
|
||||
M30
|
||||
|
||||
O1
|
||||
G91 G99 G81 X1 Z-1.0 R0.25 ; Drill to Z-1.0
|
||||
#1 = [#1 + 1]
|
||||
(PRINT,X SUB O1 PARAM1 = #1)
|
||||
M99
|
||||
%
|
||||
3
tests/interp/m98m99/05-M98-loops/test.sh
Normal file
3
tests/interp/m98m99/05-M98-loops/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
@@ -0,0 +1,9 @@
|
||||
%
|
||||
( Fanuc 'O...' sub must be called with M98 )
|
||||
|
||||
O1 call
|
||||
|
||||
O1
|
||||
(PRINT,X FANUC)
|
||||
M99
|
||||
%
|
||||
@@ -0,0 +1,9 @@
|
||||
%
|
||||
( Fanuc 'O...' sub must end with M99 )
|
||||
|
||||
M98 P1
|
||||
|
||||
O1
|
||||
(PRINT,X FANUC)
|
||||
O1 endsub
|
||||
%
|
||||
@@ -0,0 +1,9 @@
|
||||
%
|
||||
( RS274NGC 'O...' sub must not be called with M98 )
|
||||
|
||||
M98 P1
|
||||
|
||||
O1 sub
|
||||
(PRINT,X FANUC)
|
||||
O1 endsub
|
||||
%
|
||||
@@ -0,0 +1,9 @@
|
||||
%
|
||||
( RS274NGC 'O... sub' sub must not end with M99 )
|
||||
|
||||
O1 call
|
||||
|
||||
O1 sub
|
||||
(PRINT,X FANUC)
|
||||
M99
|
||||
%
|
||||
50
tests/interp/m98m99/06-error-mixed-sub-styles/expected
Normal file
50
tests/interp/m98m99/06-error-mixed-sub-styles/expected
Normal file
@@ -0,0 +1,50 @@
|
||||
executing
|
||||
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
4 N..... SET_XY_ROTATION(0.0000)
|
||||
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
6 N..... ON_RESET()
|
||||
7 N..... COMMENT("Fanuc 'O...' sub must be called with M98 ")
|
||||
Fanuc 'O....' subroutine must be called with 'M98'
|
||||
O1
|
||||
8 N..... ON_RESET()
|
||||
9 N..... ON_RESET()
|
||||
executing
|
||||
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
4 N..... SET_XY_ROTATION(0.0000)
|
||||
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
6 N..... ON_RESET()
|
||||
7 N..... COMMENT("Fanuc 'O...' sub must end with M99 ")
|
||||
X FANUC
|
||||
Fanuc 'O....' subroutine definition must end with 'M99'
|
||||
O1 endsub
|
||||
8 N..... ON_RESET()
|
||||
9 N..... ON_RESET()
|
||||
executing
|
||||
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
4 N..... SET_XY_ROTATION(0.0000)
|
||||
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
6 N..... ON_RESET()
|
||||
7 N..... COMMENT("RS274NGC 'O...' sub must not be called with M98 ")
|
||||
'O.... sub' subroutine must be called with 'O.... call'
|
||||
O1 sub
|
||||
8 N..... ON_RESET()
|
||||
9 N..... ON_RESET()
|
||||
executing
|
||||
1 N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
2 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
3 N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
4 N..... SET_XY_ROTATION(0.0000)
|
||||
5 N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
6 N..... ON_RESET()
|
||||
7 N..... COMMENT("RS274NGC 'O... sub' sub must not end with M99 ")
|
||||
X FANUC
|
||||
'O.... endsub' or 'O.... return' must follow 'O.... sub' subroutine definition
|
||||
M99
|
||||
8 N..... ON_RESET()
|
||||
9 N..... ON_RESET()
|
||||
10
tests/interp/m98m99/06-error-mixed-sub-styles/test.sh
Executable file
10
tests/interp/m98m99/06-error-mixed-sub-styles/test.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# All expected to fail
|
||||
|
||||
# Fanuc 'O...' sub definition mixed with RS274NGC 'O... endsub'/'O... call'
|
||||
! rs274 -g O...-called-with-O..._call.ngc 2>&1 || exit 1
|
||||
! rs274 -g O...-ended-with-O..._endsub.ngc 2>&1 || exit 1
|
||||
|
||||
# RS274 'O... sub' sub definition mixed with Fanuc 'M99'/'M98'
|
||||
! rs274 -g O...-sub-called-with-M98.ngc 2>&1 || exit 1
|
||||
! rs274 -g O...-sub-ended-with-M99.ngc 2>&1 || exit 1
|
||||
49
tests/interp/m98m99/07-nested-subs/expected
Normal file
49
tests/interp/m98m99/07-nested-subs/expected
Normal file
@@ -0,0 +1,49 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A nested Fanuc subroutine example ")
|
||||
MAIN BEGIN: 1=0.000000
|
||||
>>>> LOOP [O2.O1]: 0.100000
|
||||
>>>> LOOP [O2.O1]: 0.200000
|
||||
>>>> LOOP [O2.O1]: 0.300000
|
||||
>>>> LOOP [O2.O1]: 0.400000
|
||||
>>>> LOOP [O2.O1]: 0.500000
|
||||
O2 END: 1=1.000000
|
||||
>>>> LOOP [O2.O1]: 1.100000
|
||||
>>>> LOOP [O2.O1]: 1.200000
|
||||
>>>> LOOP [O2.O1]: 1.300000
|
||||
>>>> LOOP [O2.O1]: 1.400000
|
||||
>>>> LOOP [O2.O1]: 1.500000
|
||||
O2 END: 1=2.000000
|
||||
>>>> LOOP [O2.O1]: 2.100000
|
||||
>>>> LOOP [O2.O1]: 2.200000
|
||||
>>>> LOOP [O2.O1]: 2.300000
|
||||
>>>> LOOP [O2.O1]: 2.400000
|
||||
>>>> LOOP [O2.O1]: 2.500000
|
||||
O2 END: 1=3.000000
|
||||
>>>> LOOP [O2.O1]: 3.100000
|
||||
>>>> LOOP [O2.O1]: 3.200000
|
||||
>>>> LOOP [O2.O1]: 3.300000
|
||||
>>>> LOOP [O2.O1]: 3.400000
|
||||
>>>> LOOP [O2.O1]: 3.500000
|
||||
O2 END: 1=4.000000
|
||||
>>>> LOOP [O2.O1]: 4.100000
|
||||
>>>> LOOP [O2.O1]: 4.200000
|
||||
>>>> LOOP [O2.O1]: 4.300000
|
||||
>>>> LOOP [O2.O1]: 4.400000
|
||||
>>>> LOOP [O2.O1]: 4.500000
|
||||
O2 END: 1=5.000000
|
||||
MAIN END: 1=5.000000
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
20
tests/interp/m98m99/07-nested-subs/test.ngc
Normal file
20
tests/interp/m98m99/07-nested-subs/test.ngc
Normal file
@@ -0,0 +1,20 @@
|
||||
%
|
||||
( A nested Fanuc subroutine example )
|
||||
|
||||
#1 = 0
|
||||
(PRINT,X MAIN BEGIN: 1=#1)
|
||||
M98 P2 L5
|
||||
(PRINT,X MAIN END: 1=#1)
|
||||
M30
|
||||
|
||||
O2
|
||||
M98 P1 L5
|
||||
#1 = [FIX[#1] + 1]
|
||||
(PRINT,X O2 END: 1=#1)
|
||||
M99
|
||||
|
||||
O1
|
||||
#1 = [#1 + 0.1]
|
||||
(PRINT,X >>>> LOOP [O2.O1]: #1)
|
||||
M99
|
||||
%
|
||||
3
tests/interp/m98m99/07-nested-subs/test.sh
Normal file
3
tests/interp/m98m99/07-nested-subs/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
18
tests/interp/m98m99/08-sub-follows-main/expected
Normal file
18
tests/interp/m98m99/08-sub-follows-main/expected
Normal 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..... COMMENT("Fanuc-style subs may follow main program ")
|
||||
IN O1
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
10
tests/interp/m98m99/08-sub-follows-main/test.ngc
Normal file
10
tests/interp/m98m99/08-sub-follows-main/test.ngc
Normal file
@@ -0,0 +1,10 @@
|
||||
%
|
||||
( Fanuc-style subs may follow main program )
|
||||
|
||||
M98 P1
|
||||
M30
|
||||
|
||||
O1
|
||||
(PRINT,X IN O1)
|
||||
M99
|
||||
%
|
||||
3
tests/interp/m98m99/08-sub-follows-main/test.sh
Normal file
3
tests/interp/m98m99/08-sub-follows-main/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
206
tests/interp/m98m99/09-disable-fanuc-subs/expected
Normal file
206
tests/interp/m98m99/09-disable-fanuc-subs/expected
Normal file
@@ -0,0 +1,206 @@
|
||||
program: fanuc; INI: fanuc
|
||||
executing
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(3.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(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..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
program: rs274ngc; INI: fanuc
|
||||
executing
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(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..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
program: fanuc; INI: NO fanuc
|
||||
executing
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
DISABLE_FANUC_STYLE_SUB set in INI file, but found m98
|
||||
M98 P1 L3
|
||||
N..... ON_RESET()
|
||||
program: rs274ngc; INI: NO fanuc
|
||||
executing
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(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..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
program: fanuc; INI: (none)
|
||||
executing
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(3.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(3.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(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..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
program: rs274ngc; INI: (none)
|
||||
executing
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("A simple O sub example ")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... COMMENT("interpreter: retract mode set to r_plane")
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(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..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
2
tests/interp/m98m99/09-disable-fanuc-subs/test-fanuc.ini
Normal file
2
tests/interp/m98m99/09-disable-fanuc-subs/test-fanuc.ini
Normal file
@@ -0,0 +1,2 @@
|
||||
[RS274NGC]
|
||||
DISABLE_FANUC_STYLE_SUB = 0
|
||||
13
tests/interp/m98m99/09-disable-fanuc-subs/test-fanuc.ngc
Normal file
13
tests/interp/m98m99/09-disable-fanuc-subs/test-fanuc.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
%
|
||||
( A simple O sub example )
|
||||
|
||||
F40
|
||||
G90 G0 X0 Y0 Z0.25
|
||||
M98 P1 L3
|
||||
M30
|
||||
|
||||
O1
|
||||
G91 G0 X1 ; Jog 1" along X (relative)
|
||||
G90 G99 G81 Z-1.0 R0.25 ; Drill to Z-1.0
|
||||
M99
|
||||
%
|
||||
@@ -0,0 +1,4 @@
|
||||
[RS274NGC]
|
||||
DISABLE_FANUC_STYLE_SUB = 1
|
||||
[EMC]
|
||||
DEBUG = 2147483647
|
||||
13
tests/interp/m98m99/09-disable-fanuc-subs/test-rs274ngc.ngc
Normal file
13
tests/interp/m98m99/09-disable-fanuc-subs/test-rs274ngc.ngc
Normal file
@@ -0,0 +1,13 @@
|
||||
%
|
||||
( A simple O sub example )
|
||||
|
||||
O1 sub
|
||||
G91 G0 X1 ; Jog 1" along X (relative)
|
||||
G90 G99 G81 Z-1.0 R0.25 ; Drill to Z-1.0
|
||||
O1 endsub
|
||||
|
||||
F40
|
||||
G90 G0 X0 Y0 Z0.25
|
||||
O1 call
|
||||
M30
|
||||
%
|
||||
27
tests/interp/m98m99/09-disable-fanuc-subs/test.sh
Executable file
27
tests/interp/m98m99/09-disable-fanuc-subs/test.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
trim() { sed 's/^ *[0-9][0-9]* //'; }
|
||||
|
||||
# Fanuc enabled:
|
||||
# - with Fanuc sub: pass
|
||||
echo "program: fanuc; INI: fanuc"
|
||||
rs274 -g -i test-fanuc.ini test-fanuc.ngc 2>&1 | trim
|
||||
# - with rs274ngc sub: pass (rs274ngc subs not disabled)
|
||||
echo "program: rs274ngc; INI: fanuc"
|
||||
rs274 -g -i test-fanuc.ini test-rs274ngc.ngc 2>&1 | trim
|
||||
|
||||
# Fanuc disabled:
|
||||
# - with Fanuc sub: fail
|
||||
echo "program: fanuc; INI: NO fanuc"
|
||||
{ ! rs274 -g -i test-no-fanuc.ini test-fanuc.ngc 2>&1; } | trim || exit 1
|
||||
# - with rs274ngc sub: pass
|
||||
echo "program: rs274ngc; INI: NO fanuc"
|
||||
rs274 -g -i test-no-fanuc.ini test-rs274ngc.ngc 2>&1 | trim
|
||||
|
||||
# Default (Fanuc enabled):
|
||||
# - with Fanuc sub: pass
|
||||
echo "program: fanuc; INI: (none)"
|
||||
rs274 -g test-fanuc.ngc 2>&1 | trim
|
||||
# - with rs274ngc sub: pass (rs274ngc subs not disabled)
|
||||
echo "program: rs274ngc; INI: (none)"
|
||||
rs274 -g test-rs274ngc.ngc 2>&1 | trim
|
||||
19
tests/interp/m98m99/10-M98-P001/expected
Normal file
19
tests/interp/m98m99/10-M98-P001/expected
Normal file
@@ -0,0 +1,19 @@
|
||||
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("main program")
|
||||
got here
|
||||
N..... COMMENT("end")
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
14
tests/interp/m98m99/10-M98-P001/test.ngc
Normal file
14
tests/interp/m98m99/10-M98-P001/test.ngc
Normal file
@@ -0,0 +1,14 @@
|
||||
%
|
||||
(main program)
|
||||
M98 P0002
|
||||
M30 (end)
|
||||
|
||||
O0002 (O-word begins with '0')
|
||||
(PRINT,x got here)
|
||||
M99
|
||||
|
||||
O2 (O-word does not begin with '0')
|
||||
(PRINT,x ERROR: should not get here)
|
||||
M99
|
||||
|
||||
%
|
||||
3
tests/interp/m98m99/10-M98-P001/test.sh
Normal file
3
tests/interp/m98m99/10-M98-P001/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
145
tests/interp/m98m99/11-main-program-oword/expected
Normal file
145
tests/interp/m98m99/11-main-program-oword/expected
Normal file
@@ -0,0 +1,145 @@
|
||||
Legal test end-main-with-m2:
|
||||
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("legal example")
|
||||
N..... COMMENT("Main program defined with numeric O-word title, terminated by M2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... COMMENT("in sub 2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("returning from sub 2")
|
||||
N..... COMMENT("returned from sub 2")
|
||||
N..... COMMENT("end of main")
|
||||
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()
|
||||
Legal test end-main-with-m02:
|
||||
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("legal example")
|
||||
N..... COMMENT("Main program defined with numeric O-word title, terminated by M02")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... COMMENT("in sub 2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("returning from sub 2")
|
||||
N..... COMMENT("returned from sub 2")
|
||||
N..... COMMENT("end of main")
|
||||
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()
|
||||
Legal test end-main-with-m30:
|
||||
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("legal example")
|
||||
N..... COMMENT("Main program defined with numeric O-word title, terminated by M30")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... COMMENT("in sub 2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("returning from sub 2")
|
||||
N..... COMMENT("returned from sub 2")
|
||||
N..... COMMENT("end of main")
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PALLET_SHUTTLE()
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
Legal test end-main-with-percent:
|
||||
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("legal example")
|
||||
N..... COMMENT("Main program defined with numeric O-word title, terminated by percent")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... COMMENT("in sub 2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("returning from sub 2")
|
||||
N..... COMMENT("returned from sub 2")
|
||||
N..... COMMENT("end of main signaled by percent")
|
||||
N..... FINISH()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
Illegal test end-main-with-eof:
|
||||
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("legal example")
|
||||
N..... COMMENT("Main program defined with numeric O-word title, terminated by EOF")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... COMMENT("in sub 2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("returning from sub 2")
|
||||
N..... COMMENT("returned from sub 2")
|
||||
N..... COMMENT("end of main signaled by EOF")
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
Illegal test no-m30-before-osub:
|
||||
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("illegal example")
|
||||
N..... COMMENT("Define rs274-style sub before numeric O-word main program end")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... COMMENT("in sub 2")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("returning from sub 2")
|
||||
N..... COMMENT("returned from sub 2")
|
||||
N..... COMMENT("Illegal: O-sub with no M02 or M30 terminating main")
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
Illegal test sub-after-percent:
|
||||
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("illegal example")
|
||||
N..... COMMENT("Define sub after percent [= after EOF]")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("calling sub 2")
|
||||
N..... FINISH()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
@@ -0,0 +1,15 @@
|
||||
(legal example)
|
||||
(Main program defined with numeric O-word title, terminated by EOF)
|
||||
O2 sub (subprogram begin) (program end signaled by O2 sub)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
|
||||
(end of main signaled by EOF)
|
||||
@@ -0,0 +1,14 @@
|
||||
(illegal example)
|
||||
(Define rs274-style sub before numeric O-word main program end)
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
|
||||
(Illegal: O-sub with no M02 or M30 terminating main)
|
||||
O2 sub (subprogram begin)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
@@ -0,0 +1,25 @@
|
||||
%
|
||||
(illegal example)
|
||||
(Define sub after percent [= after EOF])
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
%
|
||||
(Nothing should follow % sign)
|
||||
|
||||
(From http://linuxcnc.org/docs/html/gcode/overview.html#_overview )
|
||||
( The useful contents of a file demarcated by percents stop after )
|
||||
( the second percent line. Anything after that is ignored. )
|
||||
|
||||
(From Smid 3rd Ed. p. 62)
|
||||
( The percent sign (%) after M30 is a special _stop_code_. This )
|
||||
( symbol terminates the loading of a program from an external )
|
||||
( device. It is also called the _end-of-file_marker_. )
|
||||
|
||||
O2 sub (subprogram begin) (program end signaled by O2 sub)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
@@ -0,0 +1,15 @@
|
||||
(legal example)
|
||||
(Main program defined with numeric O-word title, terminated by M02)
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
M02 (end of main)
|
||||
(should never get here)
|
||||
|
||||
O2 sub (subprogram begin) (program end signaled by O2 sub)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
@@ -0,0 +1,15 @@
|
||||
(legal example)
|
||||
(Main program defined with numeric O-word title, terminated by M2)
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
M2 (end of main)
|
||||
(should never get here)
|
||||
|
||||
O2 sub (subprogram begin) (program end signaled by O2 sub)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
@@ -0,0 +1,15 @@
|
||||
(legal example)
|
||||
(Main program defined with numeric O-word title, terminated by M30)
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
M30 (end of main)
|
||||
(should never get here)
|
||||
|
||||
O2 sub (subprogram begin) (program end signaled by O2 sub)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
@@ -0,0 +1,17 @@
|
||||
%
|
||||
(legal example)
|
||||
(Main program defined with numeric O-word title, terminated by percent)
|
||||
O2 sub (subprogram begin) (program end signaled by O2 sub)
|
||||
(in sub 2)
|
||||
G0 Z3
|
||||
(returning from sub 2)
|
||||
O2 endsub
|
||||
|
||||
O1 (main program begin)
|
||||
G0 X1Y2
|
||||
(calling sub 2)
|
||||
O2 call
|
||||
(returned from sub 2)
|
||||
|
||||
(end of main signaled by percent)
|
||||
%
|
||||
44
tests/interp/m98m99/11-main-program-oword/test.sh
Normal file
44
tests/interp/m98m99/11-main-program-oword/test.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
LEGAL_TESTS="
|
||||
end-main-with-m2
|
||||
end-main-with-m02
|
||||
end-main-with-m30
|
||||
end-main-with-percent
|
||||
"
|
||||
|
||||
ILLEGAL_TESTS="
|
||||
end-main-with-eof
|
||||
no-m30-before-osub
|
||||
sub-after-percent
|
||||
"
|
||||
|
||||
#
|
||||
# Run legal tests
|
||||
#
|
||||
for t in $LEGAL_TESTS; do
|
||||
echo "Legal test ${t}:"
|
||||
rs274 -g "test-legal-${t}.ngc" | awk '{$1=""; print}'
|
||||
res=${PIPESTATUS[0]}
|
||||
if test "$res" = 0; then
|
||||
echo "Success: Test '${t}' exited ${res}" >&2
|
||||
else
|
||||
echo "Error: Test '${t}' exited ${res}" >&2
|
||||
exit "$res"
|
||||
fi
|
||||
done
|
||||
|
||||
# Run illegal tests
|
||||
#
|
||||
for t in $ILLEGAL_TESTS; do
|
||||
echo "Illegal test ${t}:"
|
||||
res=-1
|
||||
rs274 -g "test-illegal-${t}.ngc" | awk '{$1=""; print}'
|
||||
res=${PIPESTATUS[0]}
|
||||
if test "$res" = 0; then
|
||||
echo "Error: Illegal test '${t}' exited ${res}" >&2
|
||||
exit "$res"
|
||||
else
|
||||
echo "Success: Illegal test '${t}' exited ${res} (non-zero=success)" >&2
|
||||
fi
|
||||
done
|
||||
3
tests/interp/m98m99/12-M99-endless-main-program/.gitignore
vendored
Normal file
3
tests/interp/m98m99/12-M99-endless-main-program/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
out.motion-logger
|
||||
rs274ngc.var
|
||||
rs274ngc.var.bak
|
||||
3
tests/interp/m98m99/12-M99-endless-main-program/checkresult
Executable file
3
tests/interp/m98m99/12-M99-endless-main-program/checkresult
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd "$(dirname "$1")" || { echo "E: Could not change directory to '$(dirname "$1")'"; exit 1; }
|
||||
diff -u expected.motion-logger out.motion-logger
|
||||
30
tests/interp/m98m99/12-M99-endless-main-program/expected
Normal file
30
tests/interp/m98m99/12-M99-endless-main-program/expected
Normal file
@@ -0,0 +1,30 @@
|
||||
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..... COMMENT("Endless program")
|
||||
N..... COMMENT("In a standalone interpreter, this should probably exit")
|
||||
N..... COMMENT("at the main program M99. In task, the main program M99")
|
||||
N..... COMMENT("should cause an endless loop, terminated by a counter.")
|
||||
N..... COMMENT("*****************************************************")
|
||||
N..... COMMENT("Don't *actually* run this program infinitely!")
|
||||
N..... COMMENT("loops in case of failure")
|
||||
N..... COMMENT("Counter; assume it starts at 0")
|
||||
N..... COMMENT("*****************************************************")
|
||||
Loop number 1.000000
|
||||
N..... COMMENT("Junk move...")
|
||||
N..... SET_FEED_RATE(40.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("Subprogram junk move...")
|
||||
N..... STRAIGHT_FEED(1.0000, -4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("Another junk move...")
|
||||
N..... STRAIGHT_FEED(5.0000, -4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("Main program endless loop")
|
||||
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()
|
||||
@@ -0,0 +1,227 @@
|
||||
SET_NUM_JOINTS 9
|
||||
SET_NUM_SPINDLES 1
|
||||
SET_VEL vel=0, ini_maxvel=1.2
|
||||
SET_VEL_LIMIT vel=4
|
||||
SET_ACC acc=1e+99
|
||||
SET_JERK jerk=1e+09
|
||||
SET_PLANNER_TYPE planner_type=0
|
||||
SET_SCURVE_PEAK_SCALE scale=1
|
||||
SETUP_ARC_BLENDS
|
||||
SET_MAX_FEED_OVERRIDE 1
|
||||
SETUP_SET_PROBE_ERR_INHIBIT 0 0
|
||||
SET_WORLD_HOME x=0, y=0, z=0, a=0, b=0, c=0, u=0, v=0, w=0
|
||||
SET_JOINT_BACKLASH joint=0, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=0, min=-40, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=0, min=-40, max=40
|
||||
SET_JOINT_MAX_FERROR joint=0, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=0, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=0, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=0, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=0, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=0, jerk=0
|
||||
JOINT_ACTIVATE joint=0
|
||||
SET_JOINT_BACKLASH joint=1, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=1, min=-40, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=1, min=-40, max=40
|
||||
SET_JOINT_MAX_FERROR joint=1, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=1, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=1, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=1, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=1, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=1, jerk=0
|
||||
JOINT_ACTIVATE joint=1
|
||||
SET_JOINT_BACKLASH joint=2, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=2, min=-4, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=2, min=-4, max=4
|
||||
SET_JOINT_MAX_FERROR joint=2, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=2, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=2, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=2, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=2, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=2, jerk=0
|
||||
JOINT_ACTIVATE joint=2
|
||||
SET_JOINT_BACKLASH joint=3, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=3, min=-40, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=3, min=-40, max=40
|
||||
SET_JOINT_MAX_FERROR joint=3, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=3, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=3, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=3, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=3, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=3, jerk=0
|
||||
JOINT_ACTIVATE joint=3
|
||||
SET_JOINT_BACKLASH joint=4, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=4, min=-40, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=4, min=-40, max=40
|
||||
SET_JOINT_MAX_FERROR joint=4, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=4, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=4, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=4, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=4, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=4, jerk=0
|
||||
JOINT_ACTIVATE joint=4
|
||||
SET_JOINT_BACKLASH joint=5, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=5, min=-4, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=5, min=-4, max=4
|
||||
SET_JOINT_MAX_FERROR joint=5, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=5, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=5, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=5, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=5, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=5, jerk=0
|
||||
JOINT_ACTIVATE joint=5
|
||||
SET_JOINT_BACKLASH joint=6, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=6, min=-40, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=6, min=-40, max=40
|
||||
SET_JOINT_MAX_FERROR joint=6, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=6, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=6, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=6, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=6, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=6, jerk=0
|
||||
JOINT_ACTIVATE joint=6
|
||||
SET_JOINT_BACKLASH joint=7, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=7, min=-40, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=7, min=-40, max=40
|
||||
SET_JOINT_MAX_FERROR joint=7, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=7, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=7, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=7, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=7, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=7, jerk=0
|
||||
JOINT_ACTIVATE joint=7
|
||||
SET_JOINT_BACKLASH joint=8, backlash=0
|
||||
SET_JOINT_POSITION_LIMITS joint=8, min=-4, max=0
|
||||
SET_JOINT_POSITION_LIMITS joint=8, min=-4, max=4
|
||||
SET_JOINT_MAX_FERROR joint=8, maxFerror=0.05
|
||||
SET_JOINT_MIN_FERROR joint=8, minFerror=0.01
|
||||
SET_JOINT_HOMING_PARAMS joint=8, offset=0 home=0, final_vel=-1, search_vel=0, latch_vel=0, flags=0x00000000, sequence=999, volatile=0
|
||||
SET_JOINT_VEL_LIMIT joint=8, vel=4
|
||||
SET_JOINT_ACC_LIMIT joint=8, acc=1000
|
||||
SET_JOINT_JERK_LIMIT joint=8, jerk=0
|
||||
JOINT_ACTIVATE joint=8
|
||||
SET_AXIS_POSITION_LIMITS axis=0, min=-40, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=0, min=-40, max=40
|
||||
SET_AXIS_VEL_LIMIT axis=0 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=0, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=0, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=0, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=1, min=-40, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=1, min=-40, max=40
|
||||
SET_AXIS_VEL_LIMIT axis=1 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=1, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=1, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=1, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=2, min=-4, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=2, min=-4, max=4
|
||||
SET_AXIS_VEL_LIMIT axis=2 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=2, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=2, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=2, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=3, min=-40, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=3, min=-40, max=40
|
||||
SET_AXIS_VEL_LIMIT axis=3 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=3, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=3, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=3, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=4, min=-40, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=4, min=-40, max=40
|
||||
SET_AXIS_VEL_LIMIT axis=4 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=4, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=4, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=4, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=5, min=-4, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=5, min=-4, max=4
|
||||
SET_AXIS_VEL_LIMIT axis=5 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=5, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=5, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=5, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=6, min=-40, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=6, min=-40, max=40
|
||||
SET_AXIS_VEL_LIMIT axis=6 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=6, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=6, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=6, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=7, min=-40, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=7, min=-40, max=40
|
||||
SET_AXIS_VEL_LIMIT axis=7 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=7, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=7, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=7, jerk=0
|
||||
SET_AXIS_POSITION_LIMITS axis=8, min=-4, max=0
|
||||
SET_AXIS_POSITION_LIMITS axis=8, min=-4, max=4
|
||||
SET_AXIS_VEL_LIMIT axis=8 vel=4
|
||||
SET_AXIS_ACC_LIMIT axis=8, acc=1000
|
||||
SET_AXIS_LOCKING_JOINT axis=8, locking_joint=-1
|
||||
SET_AXIS_JERK_LIMIT axis=8, jerk=0
|
||||
SET_SPINDLE_PARAMS, 1.00e+99, 0.00e+00, -1.00e+99, 0.00e+00
|
||||
JOG_ABORT joint=0
|
||||
JOG_ABORT joint=1
|
||||
JOG_ABORT joint=2
|
||||
JOG_ABORT joint=3
|
||||
JOG_ABORT joint=4
|
||||
JOG_ABORT joint=5
|
||||
JOG_ABORT joint=6
|
||||
JOG_ABORT joint=7
|
||||
JOG_ABORT joint=8
|
||||
JOG_ABORT joint=9
|
||||
JOG_ABORT joint=10
|
||||
JOG_ABORT joint=11
|
||||
JOG_ABORT joint=12
|
||||
JOG_ABORT joint=13
|
||||
JOG_ABORT joint=14
|
||||
JOG_ABORT joint=15
|
||||
ABORT
|
||||
SPINDLE_OFF
|
||||
DISABLE
|
||||
JOINT_UNHOME joint=-2
|
||||
FREE
|
||||
JOG_ABORT joint=0
|
||||
JOG_ABORT joint=1
|
||||
JOG_ABORT joint=2
|
||||
JOG_ABORT joint=3
|
||||
JOG_ABORT joint=4
|
||||
JOG_ABORT joint=5
|
||||
JOG_ABORT joint=6
|
||||
JOG_ABORT joint=7
|
||||
JOG_ABORT joint=8
|
||||
JOG_ABORT joint=9
|
||||
JOG_ABORT joint=10
|
||||
JOG_ABORT joint=11
|
||||
JOG_ABORT joint=12
|
||||
JOG_ABORT joint=13
|
||||
JOG_ABORT joint=14
|
||||
JOG_ABORT joint=15
|
||||
ABORT
|
||||
SPINDLE_OFF
|
||||
ENABLE
|
||||
COORD
|
||||
JOG_ABORT joint=0
|
||||
JOG_ABORT joint=1
|
||||
JOG_ABORT joint=2
|
||||
JOG_ABORT joint=3
|
||||
JOG_ABORT joint=4
|
||||
JOG_ABORT joint=5
|
||||
JOG_ABORT joint=6
|
||||
JOG_ABORT joint=7
|
||||
JOG_ABORT joint=8
|
||||
JOG_ABORT joint=9
|
||||
JOG_ABORT joint=10
|
||||
JOG_ABORT joint=11
|
||||
JOG_ABORT joint=12
|
||||
JOG_ABORT joint=13
|
||||
JOG_ABORT joint=14
|
||||
JOG_ABORT joint=15
|
||||
ABORT
|
||||
SET_LINE x=1, y=0, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=19, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=1, y=-4, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=26, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=5, y=-4, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=21, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=1, y=0, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=19, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=1, y=-4, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=26, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=5, y=-4, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=21, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=1, y=0, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=19, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=1, y=-4, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=26, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_LINE x=5, y=-4, z=0, a=0, b=0, c=0, u=0, v=0, w=0, id=21, motion_type=2, vel=0.666667, ini_maxvel=4, acc=1000, turn=-1
|
||||
SET_SPINDLESYNC sync=0.000000, flags=0x00000000
|
||||
SPINDLE_OFF
|
||||
DISABLE
|
||||
@@ -0,0 +1,3 @@
|
||||
loadusr -W motion-logger out.motion-logger
|
||||
setp iocontrol.0.emc-enable-in 1
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
[EMC]
|
||||
VERSION = 1.1
|
||||
DEBUG = 0x0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = ./test-ui.py
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.001
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = sim.var
|
||||
|
||||
[EMCMOT]
|
||||
#EMCMOT = motmod
|
||||
COMM_TIMEOUT = 10.0
|
||||
COMM_WAIT = 0.010
|
||||
BASE_PERIOD = 0
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = simpockets.tbl
|
||||
TOOL_CHANGE_QUILL_UP = 1
|
||||
RANDOM_TOOLCHANGER = 0
|
||||
|
||||
[HAL]
|
||||
HALFILE = mock-motion.hal
|
||||
#POSTGUI_HALFILE = postgui.hal
|
||||
|
||||
[TRAJ]
|
||||
NO_FORCE_HOMING = 1
|
||||
COORDINATES = X Y Z A B C U V W
|
||||
HOME = 0 0 0 0 0 0 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
CYCLE_TIME = 0.010
|
||||
DEFAULT_LINEAR_VELOCITY = 1.2
|
||||
MAX_LINEAR_VELOCITY = 4
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 9
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_A]
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_B]
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_4]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_C]
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_5]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_U]
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_6]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_V]
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_7]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
[AXIS_W]
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
|
||||
[JOINT_8]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 1000.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -4.0
|
||||
MAX_LIMIT = 4.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
|
||||
36
tests/interp/m98m99/12-M99-endless-main-program/test-ui.py
Executable file
36
tests/interp/m98m99/12-M99-endless-main-program/test-ui.py
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import linuxcnc
|
||||
import hal
|
||||
|
||||
import time
|
||||
import sys
|
||||
|
||||
|
||||
#
|
||||
# connect to LinuxCNC
|
||||
#
|
||||
|
||||
c = linuxcnc.command()
|
||||
s = linuxcnc.stat()
|
||||
e = linuxcnc.error_channel()
|
||||
|
||||
|
||||
#
|
||||
# Come out of E-stop, turn the machine on, home, and switch to Auto mode.
|
||||
#
|
||||
|
||||
c.state(linuxcnc.STATE_ESTOP_RESET)
|
||||
c.state(linuxcnc.STATE_ON)
|
||||
c.mode(linuxcnc.MODE_AUTO)
|
||||
|
||||
|
||||
#
|
||||
# run the .ngc test file, starting from the special line
|
||||
#
|
||||
|
||||
c.program_open('test.ngc')
|
||||
c.auto(linuxcnc.AUTO_RUN, 4)
|
||||
c.wait_complete()
|
||||
|
||||
sys.exit(0)
|
||||
29
tests/interp/m98m99/12-M99-endless-main-program/test.ngc
Normal file
29
tests/interp/m98m99/12-M99-endless-main-program/test.ngc
Normal file
@@ -0,0 +1,29 @@
|
||||
(Endless program)
|
||||
|
||||
(In a standalone interpreter, this should probably exit)
|
||||
(at the main program M99. In task, the main program M99)
|
||||
(should cause an endless loop, terminated by a counter.)
|
||||
|
||||
(*****************************************************)
|
||||
(Don't *actually* run this program infinitely!)
|
||||
(Stop after)#101 = 3(loops in case of failure)
|
||||
#100 = [#100 + 1] (Counter; assume it starts at 0)
|
||||
O1000 if [#100 GT #101]
|
||||
(PRINT, "Stopping program after #101 loops")
|
||||
#100 = 0 (Reset counter)
|
||||
M30 (End program)
|
||||
O1000 endif
|
||||
(*****************************************************)
|
||||
O1 (Main program begin)
|
||||
(PRINT, X Loop number #100)
|
||||
G1 X1 F40 (Junk move...)
|
||||
M98 P100 (Call junk subprogram)
|
||||
G1 X5 (Another junk move...)
|
||||
M99 (Main program endless loop)
|
||||
|
||||
(*****************************************************)
|
||||
O100 (Junk subprogram begin)
|
||||
G1 Y-4 (Subprogram junk move...)
|
||||
M99 (Return to main program)
|
||||
|
||||
%
|
||||
10
tests/interp/m98m99/12-M99-endless-main-program/test.sh
Executable file
10
tests/interp/m98m99/12-M99-endless-main-program/test.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
rm -f out.motion-logger
|
||||
|
||||
# Run test file in task: should loop through program three times
|
||||
linuxcnc -r motion-logger.ini
|
||||
|
||||
# Run test file in stand-alone interpreter: should run program once
|
||||
rs274 -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
36
tests/interp/m98m99/13-named-program/expected
Normal file
36
tests/interp/m98m99/13-named-program/expected
Normal file
@@ -0,0 +1,36 @@
|
||||
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("test-named.ngc: Test named programs")
|
||||
8 N..... COMMENT("...program body")
|
||||
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("test-numbered.ngc: Test numbered programs")
|
||||
8 N..... COMMENT("...program body")
|
||||
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()
|
||||
6
tests/interp/m98m99/13-named-program/test-named.ngc
Normal file
6
tests/interp/m98m99/13-named-program/test-named.ngc
Normal file
@@ -0,0 +1,6 @@
|
||||
%
|
||||
(test-named.ngc: Test named programs)
|
||||
O<MyProgram>
|
||||
(...program body)
|
||||
M30
|
||||
%
|
||||
6
tests/interp/m98m99/13-named-program/test-numbered.ngc
Normal file
6
tests/interp/m98m99/13-named-program/test-numbered.ngc
Normal file
@@ -0,0 +1,6 @@
|
||||
%
|
||||
(test-numbered.ngc: Test numbered programs)
|
||||
O42
|
||||
(...program body)
|
||||
M30
|
||||
%
|
||||
3
tests/interp/m98m99/13-named-program/test.sh
Normal file
3
tests/interp/m98m99/13-named-program/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash -e
|
||||
rs274 -g test-named.ngc
|
||||
rs274 -g test-numbered.ngc
|
||||
18
tests/interp/m98m99/14-o-expression-call/expected
Normal file
18
tests/interp/m98m99/14-o-expression-call/expected
Normal file
@@ -0,0 +1,18 @@
|
||||
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()
|
||||
In sub 100
|
||||
In sub 200
|
||||
7 N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
8 N..... SET_XY_ROTATION(0.0000)
|
||||
9 N..... SET_FEED_MODE(0, 0)
|
||||
10 N..... SET_FEED_RATE(0.0000)
|
||||
11 N..... STOP_SPINDLE_TURNING(0)
|
||||
12 N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
13 N..... PALLET_SHUTTLE()
|
||||
14 N..... PROGRAM_END()
|
||||
15 N..... ON_RESET()
|
||||
16 N..... ON_RESET()
|
||||
21
tests/interp/m98m99/14-o-expression-call/test.ngc
Normal file
21
tests/interp/m98m99/14-o-expression-call/test.ngc
Normal file
@@ -0,0 +1,21 @@
|
||||
%
|
||||
; test calling subprograms with expressions
|
||||
|
||||
; call sub O100: use variable in expression with rs274ngc O-sub
|
||||
#2 = 10
|
||||
O[#2 * 10] call
|
||||
|
||||
; call sub O200: use expression in M98 P-word
|
||||
M98 P[5 * 5 * 2 * 2 + 100]
|
||||
|
||||
M30
|
||||
|
||||
O100 sub ; rs274ngc subroutine
|
||||
(print,In sub 100)
|
||||
O100 endsub
|
||||
|
||||
O200 ; numbered subprogram
|
||||
(print,In sub 200)
|
||||
M99
|
||||
|
||||
%
|
||||
2
tests/interp/m98m99/14-o-expression-call/test.sh
Normal file
2
tests/interp/m98m99/14-o-expression-call/test.sh
Normal file
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash -e
|
||||
rs274 -g test.ngc
|
||||
Reference in New Issue
Block a user