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,170 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... COMMENT("interpreter: retract mode set to old_z")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("number 1: Z[-1] < R[1] < OLD_Z[2]")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 1.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 2: Z[0.5] < OLD_Z[2] < R[3]")
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 2.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 3: OLD_Z[3] < Z[4] < R[5]")
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 3.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 3.0000, 4.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 3.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 4: Z[-1] < R[1] < OLD_Z[2]")
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(11.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(11.0000, 1.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(11.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(12.0000, 2.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(12.0000, 2.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(12.0000, 2.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 5: Z[0.5] < OLD_Z[2] < R[3]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(20.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(20.0000, 0.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(21.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(21.0000, 1.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(21.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(22.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(22.0000, 2.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(22.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 6: OLD_Z[2] < Z[4] < R[5]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(30.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(30.0000, 0.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(31.0000, 1.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(31.0000, 1.0000, 4.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(31.0000, 1.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(32.0000, 2.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(32.0000, 2.0000, 4.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(32.0000, 2.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("done")
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,45 @@
g17 ; do canned cycles in the XY plane
g98 ; "retract to previous Z" mode
g90 ; absolute coordinates mode
g20 ; imperial
M3 S1000
f10
; starting position
g0 x0 y0 z2
;
; There are six possible orderings of Z, OLD_Z, and R, but the three that
; have R < Z are rejected by LinuxCNC.
;
(number 1: Z[-1] < R[1] < OLD_Z[2])
g84 x1 y1 z-1 r1
(number 2: Z[0.5] < OLD_Z[2] < R[3])
g84 x1 y2 z0.5 r3
(number 3: OLD_Z[3] < Z[4] < R[5])
g84 x1 y3 z4 r5
;
; test with incremental motion and repeat cycles
;
(number 4: Z[-1] < R[1] < OLD_Z[2])
g90 g0 x10 y0 z2
g91 g84 x1 y1 z-2 r-1 l2
(number 5: Z[0.5] < OLD_Z[2] < R[3])
g90 g0 x20 y0 z2
g91 g84 x1 y1 z-2.5 r1 l2
(number 6: OLD_Z[2] < Z[4] < R[5])
g90 g0 x30 y0 z2
g91 g84 x1 y1 z-1 r3 l2
(done)
m2

View File

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

View File

@@ -0,0 +1,169 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("number 1: Z[-1] < R[1] < OLD_Z[2]")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 1.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 2: Z[0.5] < OLD_Z[1] < R[3]")
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 2.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 3: OLD_Z[3] < Z[4] < R[5]")
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 3.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 3.0000, 4.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 3.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 4: Z[-1] < R[1] < OLD_Z[2]")
N..... STRAIGHT_TRAVERSE(10.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(11.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(11.0000, 1.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(11.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(12.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(12.0000, 2.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(12.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 5: Z[0.5] < OLD_Z[2] < R[3]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(20.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(20.0000, 0.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(21.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(21.0000, 1.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(21.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(22.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(22.0000, 2.0000, 0.5000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(22.0000, 2.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 6: OLD_Z[2] < Z[4] < R[5]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(30.0000, 0.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(30.0000, 0.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(31.0000, 1.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(31.0000, 1.0000, 4.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(31.0000, 1.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(32.0000, 2.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(32.0000, 2.0000, 4.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(32.0000, 2.0000, 5.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("done")
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,46 @@
g17 ; do canned cycles in the XY plane
g99 ; "retract to R" mode
g90 ; absolute coordinates mode
g20 ; imperial
M3 S1000
f10
; starting position
g0 x0 y0 z2
;
; There are six possible orderings of Z, OLD_Z, and R, but the three that
; have R < Z are rejected by LinuxCNC.
;
(number 1: Z[-1] < R[1] < OLD_Z[2])
g84 x1 y1 z-1 r1
(number 2: Z[0.5] < OLD_Z[1] < R[3])
g84 x1 y2 z0.5 r3
(number 3: OLD_Z[3] < Z[4] < R[5])
g84 x1 y3 z4 r5
;
; test with incremental motion and repeat cycles
;
(number 4: Z[-1] < R[1] < OLD_Z[2])
g90 g0 x10 y0 z2
g91 g84 x1 y1 z-2 r-1 l2
(number 5: Z[0.5] < OLD_Z[2] < R[3])
g90 g0 x20 y0 z2
g91 g84 x1 y1 z-2.5 r1 l2
(number 6: OLD_Z[2] < Z[4] < R[5])
g90 g0 x30 y0 z2
g91 g84 x1 y1 z-1 r3 l2
(done)
m2

View File

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

View File

@@ -0,0 +1,171 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... COMMENT("interpreter: retract mode set to old_z")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("number 1: Y[-1] < R[1] < OLD_Y[2]")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(-1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 2: Y[0.5] < OLD_Y[2] < R[3]")
N..... STRAIGHT_TRAVERSE(1.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 3.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(0.5000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 3: OLD_Y[3] < Y[4] < R[5]")
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(4.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(5.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 4: Y[-1] < R[1] < OLD_Y[2]")
N..... STRAIGHT_TRAVERSE(10.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(11.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(-1.0000, 1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(12.0000, 2.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(-1.0000, 2.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 2.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 5: Y[0.5] < OLD_Y[2] < R[3]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(20.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(20.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(21.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(0.5000, 1.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 1.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(22.0000, 3.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(0.5000, 2.0000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 2.0000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 6: OLD_Y[2] < Y[4] < R[5]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(30.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(30.0000, 5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(31.0000, 5.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(4.0000, 1.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(5.0000, 1.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(32.0000, 5.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(4.0000, 2.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(5.0000, 2.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("done")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,45 @@
g18 ; do canned cycles in the ZX plane
g98 ; "retract to previous Z" mode (though in G18 it should mean "previous Y")
g90 ; absolute coordinates mode
g20 ; imperial
M3 S1000
f10
; starting position
g0 x0 y2 z0
;
; There are six possible orderings of Y, OLD_Y, and R, but the three that
; have R < Y are rejected by LinuxCNC.
;
(number 1: Y[-1] < R[1] < OLD_Y[2])
g84 x1 z1 y-1 r1
(number 2: Y[0.5] < OLD_Y[2] < R[3])
g84 x1 z2 y0.5 r3
(number 3: OLD_Y[3] < Y[4] < R[5])
g84 x1 z3 y4 r5
;
; test with incremental motion and repeat cycles
;
(number 4: Y[-1] < R[1] < OLD_Y[2])
g90 g0 x10 z0 y2
g91 g84 x1 z1 y-2 r-1 l2
(number 5: Y[0.5] < OLD_Y[2] < R[3])
g90 g0 x20 z0 y2
g91 g84 x1 z1 y-2.5 r1 l2
(number 6: OLD_Y[2] < Y[4] < R[5])
g90 g0 x30 z0 y2
g91 g84 x1 z1 y-1 r3 l2
(done)
m2

View File

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

View File

@@ -0,0 +1,161 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_TRAVERSE(0.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("number 1: Y[-1] < R[1] < OLD_Y[2]")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(1.0000, -1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 2: Y[0.5] < OLD_Y[1] < R[3]")
N..... STRAIGHT_TRAVERSE(1.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 3.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(0.5000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 3: OLD_Y[3] < Y[4] < R[5]")
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(4.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(5.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 4: Y[-1] < R[1] < OLD_Y[2]")
N..... STRAIGHT_TRAVERSE(10.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(11.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(-1.0000, 1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(12.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(-1.0000, 2.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 2.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 5: Y[0.5] < OLD_Y[2] < R[3]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(20.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(20.0000, 3.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(21.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(0.5000, 1.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 1.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(22.0000, 3.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(0.5000, 2.0000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 2.0000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 6: OLD_Y[2] < Y[4] < R[5]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(30.0000, 2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(30.0000, 5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(31.0000, 5.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(4.0000, 1.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(5.0000, 1.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(32.0000, 5.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(4.0000, 2.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(5.0000, 2.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("done")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,45 @@
g18 ; do canned cycles in the ZX plane
g99 ; "retract to R" mode
g90 ; absolute coordinates mode
g20 ; imperial
M3 S1000
f10
; starting position
g0 x0 z0 y2
;
; There are six possible orderings of Y, OLD_Y, and R, but the three that
; have R < Y are rejected by LinuxCNC.
;
(number 1: Y[-1] < R[1] < OLD_Y[2])
g81 x1 z1 y-1 r1
(number 2: Y[0.5] < OLD_Y[1] < R[3])
g84 x1 z2 y0.5 r3
(number 3: OLD_Y[3] < Y[4] < R[5])
g84 x1 z3 y4 r5
;
; test with incremental motion and repeat cycles
;
(number 4: Y[-1] < R[1] < OLD_Y[2])
g90 g0 x10 z0 y2
g91 g84 x1 z1 y-2 r-1 l2
(number 5: Y[0.5] < OLD_Y[2] < R[3])
g90 g0 x20 z0 y2
g91 g84 x1 z1 y-2.5 r1 l2
(number 6: OLD_Y[2] < Y[4] < R[5])
g90 g0 x30 z0 y2
g91 g84 x1 z1 y-1 r3 l2
(done)
m2

View File

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

View File

@@ -0,0 +1,171 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_YZ)
N..... COMMENT("interpreter: retract mode set to old_z")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("number 1: X[-1] < R[1] < OLD_X[2]")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(2.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, -1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 2.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 2: X[0.5] < OLD_X[2] < R[3]")
N..... STRAIGHT_TRAVERSE(3.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(3.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, 0.5000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 3: OLD_X[3] < X[4] < R[5]")
N..... STRAIGHT_TRAVERSE(5.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(5.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(3.0000, 4.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 5.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 4: X[-1] < R[1] < OLD_X[2]")
N..... STRAIGHT_TRAVERSE(2.0000, 10.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(2.0000, 11.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 11.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, -1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 2.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(2.0000, 12.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 12.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, -1.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 2.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 5: X[0.5] < OLD_X[2] < R[3]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(2.0000, 20.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(3.0000, 20.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(3.0000, 21.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 0.5000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 3.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(3.0000, 22.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, 0.5000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 3.0000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 6: OLD_X[2] < X[4] < R[5]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(2.0000, 30.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(5.0000, 30.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(5.0000, 31.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 4.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 5.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(5.0000, 32.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, 4.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 5.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("done")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,45 @@
g19 ; do canned cycles in the YZ plane
g98 ; "retract to previous Z" mode (though in G19 it should mean "previous X")
g90 ; absolute coordinates mode
g20 ; imperial
M3 S1000
f10
; starting position
g0 x2 y0 z0
;
; There are six possible orderings of X, OLD_X, and R, but the three that
; have R < X are rejected by LinuxCNC.
;
(number 1: X[-1] < R[1] < OLD_X[2])
g84 y1 z1 x-1 r1
(number 2: X[0.5] < OLD_X[2] < R[3])
g84 y1 z2 x0.5 r3
(number 3: OLD_X[3] < X[4] < R[5])
g84 y1 z3 x4 r5
;
; test with incremental motion and repeat cycles
;
(number 4: X[-1] < R[1] < OLD_X[2])
g90 g0 y10 z0 x2
g91 g84 y1 z1 x-2 r-1 l2
(number 5: X[0.5] < OLD_X[2] < R[3])
g90 g0 y20 z0 x2
g91 g84 y1 z1 x-2.5 r1 l2
(number 6: OLD_X[2] < X[4] < R[5])
g90 g0 y30 z0 x2
g91 g84 y1 z1 x-1 r3 l2
(done)
m2

View File

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

View File

@@ -0,0 +1,170 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... SELECT_PLANE(CANON_PLANE_YZ)
N..... COMMENT("interpreter: retract mode set to r_plane")
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
N..... SET_SPINDLE_SPEED(0, 1000.0000)
N..... START_SPINDLE_CLOCKWISE(0)
N..... SET_FEED_RATE(10.0000)
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("number 1: X[-1] < R[1] < OLD_X[2]")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(2.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, -1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 2: X[0.5] < OLD_X[1] < R[3]")
N..... STRAIGHT_TRAVERSE(3.0000, 1.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(3.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, 0.5000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 3.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 3: OLD_X[3] < X[4] < R[5]")
N..... STRAIGHT_TRAVERSE(5.0000, 1.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(5.0000, 1.0000, 3.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(3.0000, 4.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(3.0000, 5.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 4: X[-1] < R[1] < OLD_X[2]")
N..... STRAIGHT_TRAVERSE(2.0000, 10.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(2.0000, 11.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(1.0000, 11.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, -1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 1.0000, 11.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(1.0000, 12.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, -1.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 1.0000, 12.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 5: X[0.5] < OLD_X[2] < R[3]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(2.0000, 20.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(3.0000, 20.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(3.0000, 21.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 0.5000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 3.0000, 21.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(3.0000, 22.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, 0.5000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 3.0000, 22.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("number 6: OLD_X[2] < X[4] < R[5]")
N..... COMMENT("interpreter: distance mode changed to absolute")
N..... STRAIGHT_TRAVERSE(2.0000, 30.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("interpreter: distance mode changed to incremental")
N..... STRAIGHT_TRAVERSE(5.0000, 30.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_EXACT_PATH)
N..... STRAIGHT_TRAVERSE(5.0000, 31.0000, 1.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(1.0000, 4.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(1.0000, 5.0000, 31.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_TRAVERSE(5.0000, 32.0000, 2.0000, 0.0000, 0.0000, 0.0000)
N..... DISABLE_FEED_OVERRIDE()
N..... DISABLE_SPEED_OVERRIDE(0)
N..... STRAIGHT_FEED(2.0000, 4.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_COUNTERCLOCKWISE(0)
N..... DWELL(0.0000)
N..... STRAIGHT_FEED(2.0000, 5.0000, 32.0000, 0.0000, 0.0000, 0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... START_SPINDLE_CLOCKWISE(0)
N..... ENABLE_FEED_OVERRIDE()
N..... ENABLE_SPEED_OVERRIDE(0)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
N..... SET_NAIVECAM_TOLERANCE(0.0000)
N..... COMMENT("done")
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,45 @@
g19 ; do canned cycles in the YZ plane
g99 ; "retract to R" mode
g90 ; absolute coordinates mode
g20 ; imperial
M3 S1000
f10
; starting position
g0 y0 z0 x2
;
; There are six possible orderings of X, OLD_X, and R, but the three that
; have R < X are rejected by LinuxCNC.
;
(number 1: X[-1] < R[1] < OLD_X[2])
g84 y1 z1 x-1 r1
(number 2: X[0.5] < OLD_X[1] < R[3])
g84 y1 z2 x0.5 r3
(number 3: OLD_X[3] < X[4] < R[5])
g84 y1 z3 x4 r5
;
; test with incremental motion and repeat cycles
;
(number 4: X[-1] < R[1] < OLD_X[2])
g90 g0 y10 z0 x2
g91 g84 y1 z1 x-2 r-1 l2
(number 5: X[0.5] < OLD_X[2] < R[3])
g90 g0 y20 z0 x2
g91 g84 y1 z1 x-2.5 r1 l2
(number 6: OLD_X[2] < X[4] < R[5])
g90 g0 y30 z0 x2
g91 g84 y1 z1 x-1 r3 l2
(done)
m2

View File

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