Import LinuxCNC source tree
This commit is contained in:
1
tests/ccomp/early-exit/.gitignore
vendored
Normal file
1
tests/ccomp/early-exit/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
sim.var*
|
||||
5
tests/ccomp/early-exit/README
Normal file
5
tests/ccomp/early-exit/README
Normal file
@@ -0,0 +1,5 @@
|
||||
This test starts LinuxCNC, enables cutter comp (with G41.1), then
|
||||
immediately cancels cutter comp (with G40) and verifies that the next
|
||||
motion goes to the expected location.
|
||||
|
||||
In 2.6.12 and 2.7.7 this test replicates Github Issue #160.
|
||||
2
tests/ccomp/early-exit/checkresult
Executable file
2
tests/ccomp/early-exit/checkresult
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
exit 0 # test failure is indicated by test.sh exit value
|
||||
61
tests/ccomp/early-exit/core_sim.hal
Normal file
61
tests/ccomp/early-exit/core_sim.hal
Normal file
@@ -0,0 +1,61 @@
|
||||
# core HAL config file for simulation
|
||||
|
||||
# first load all the RT modules that will be needed
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
#autoconverted trivkins
|
||||
# motion controller, get name and thread periods from INI file
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
# load 6 differentiators (for velocity and accel signals
|
||||
loadrt ddt count=6
|
||||
# load additional blocks
|
||||
loadrt hypot count=2
|
||||
loadrt comp count=3
|
||||
loadrt or2 count=1
|
||||
|
||||
# add motion controller functions to servo thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# link the differentiator functions into the code
|
||||
addf ddt.0 servo-thread
|
||||
addf ddt.1 servo-thread
|
||||
addf ddt.2 servo-thread
|
||||
addf ddt.3 servo-thread
|
||||
addf ddt.4 servo-thread
|
||||
addf ddt.5 servo-thread
|
||||
addf hypot.0 servo-thread
|
||||
addf hypot.1 servo-thread
|
||||
|
||||
# create HAL signals for position commands from motion module
|
||||
# loop position commands back to motion module feedback
|
||||
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt.0.in
|
||||
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt.2.in
|
||||
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt.4.in
|
||||
|
||||
# send the position commands thru differentiators to
|
||||
# generate velocity and accel signals
|
||||
net Xvel ddt.0.out => ddt.1.in hypot.0.in0
|
||||
net Xacc <= ddt.1.out
|
||||
net Yvel ddt.2.out => ddt.3.in hypot.0.in1
|
||||
net Yacc <= ddt.3.out
|
||||
net Zvel ddt.4.out => ddt.5.in hypot.1.in0
|
||||
net Zacc <= ddt.5.out
|
||||
|
||||
# Cartesian 2- and 3-axis velocities
|
||||
net XYvel hypot.0.out => hypot.1.in1
|
||||
net XYZvel <= hypot.1.out
|
||||
|
||||
# estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prepare <= iocontrol.0.tool-prepare
|
||||
net tool-prepared => iocontrol.0.tool-prepared
|
||||
|
||||
net tool-change <= iocontrol.0.tool-change
|
||||
net tool-changed => iocontrol.0.tool-changed
|
||||
|
||||
net tool-number <= iocontrol.0.tool-number
|
||||
net tool-prep-number <= iocontrol.0.tool-prep-number
|
||||
net tool-prep-pocket <= iocontrol.0.tool-prep-pocket
|
||||
|
||||
75
tests/ccomp/early-exit/test-ui.py
Executable file
75
tests/ccomp/early-exit/test-ui.py
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import linuxcnc
|
||||
import hal
|
||||
|
||||
import math
|
||||
import time
|
||||
import sys
|
||||
import subprocess
|
||||
import os
|
||||
import signal
|
||||
import glob
|
||||
import re
|
||||
|
||||
|
||||
def wait_for_linuxcnc_startup(status, timeout=10.0):
|
||||
|
||||
"""Poll the Status buffer waiting for it to look initialized,
|
||||
rather than just allocated (all-zero). Returns on success, throws
|
||||
RuntimeError on failure."""
|
||||
|
||||
start_time = time.time()
|
||||
while time.time() - start_time < timeout:
|
||||
status.poll()
|
||||
if (status.angular_units == 0.0) \
|
||||
or (status.axis_mask == 0) \
|
||||
or (status.cycle_time == 0.0) \
|
||||
or (status.exec_state != linuxcnc.EXEC_DONE) \
|
||||
or (status.interp_state != linuxcnc.INTERP_IDLE) \
|
||||
or (status.inpos == False) \
|
||||
or (status.linear_units == 0.0) \
|
||||
or (status.max_acceleration == 0.0) \
|
||||
or (status.max_velocity == 0.0) \
|
||||
or (status.program_units == 0.0) \
|
||||
or (status.rapidrate == 0.0) \
|
||||
or (status.state != linuxcnc.RCS_DONE) \
|
||||
or (status.task_state != linuxcnc.STATE_ESTOP):
|
||||
time.sleep(0.1)
|
||||
else:
|
||||
# looks good
|
||||
return
|
||||
|
||||
# timeout, throw an exception
|
||||
raise RuntimeError
|
||||
|
||||
|
||||
c = linuxcnc.command()
|
||||
s = linuxcnc.stat()
|
||||
e = linuxcnc.error_channel()
|
||||
|
||||
# Wait for LinuxCNC to initialize itself so the Status buffer stabilizes.
|
||||
wait_for_linuxcnc_startup(s)
|
||||
|
||||
#time.sleep(9999)
|
||||
|
||||
c.state(linuxcnc.STATE_ESTOP_RESET)
|
||||
c.state(linuxcnc.STATE_ON)
|
||||
c.home(-1)
|
||||
c.wait_complete()
|
||||
|
||||
c.mode(linuxcnc.MODE_MDI)
|
||||
c.mdi('g0 x0.1 y0.2 z0.3')
|
||||
c.mdi('g41.1 d0.1')
|
||||
c.mdi('g40')
|
||||
c.mdi('g0 x0.9 ; surprise motion on Y and Z, to 0!!')
|
||||
c.wait_complete()
|
||||
|
||||
s.poll()
|
||||
print("position: {}".format(s.position))
|
||||
assert(math.fabs(s.position[0] - 0.9) < 0.0000001)
|
||||
assert(math.fabs(s.position[1] - 0.2) < 0.0000001)
|
||||
assert(math.fabs(s.position[2] - 0.3) < 0.0000001)
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
118
tests/ccomp/early-exit/test.ini
Normal file
118
tests/ccomp/early-exit/test.ini
Normal file
@@ -0,0 +1,118 @@
|
||||
# This config file was created 2016-10-21 22:10:26.765121 by the update_ini script
|
||||
# The original config files may be found in the /home/seb/linuxcnc-dev/tests/ccomp/early-exit/test.old directory
|
||||
|
||||
[EMC]
|
||||
# The version string for this INI file.
|
||||
VERSION = 1.1
|
||||
|
||||
DEBUG = 0x0
|
||||
|
||||
[DISPLAY]
|
||||
DISPLAY = ./test-ui.py
|
||||
|
||||
[FILTER]
|
||||
#No Content
|
||||
|
||||
[RS274NGC]
|
||||
PARAMETER_FILE = sim.var
|
||||
USER_M_PATH = ./subs
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 4.0
|
||||
BASE_PERIOD = 0
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.001
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = core_sim.hal
|
||||
|
||||
[HALUI]
|
||||
#No Content
|
||||
[TRAJ]
|
||||
|
||||
NO_FORCE_HOMING=1
|
||||
AXES = 3
|
||||
COORDINATES = X Y Z
|
||||
HOME = 0 0 0
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
DEFAULT_LINEAR_VELOCITY = 1.2
|
||||
MAX_LINEAR_ACCELERATION = 123.45
|
||||
MAX_LINEAR_VELOCITY = 45.67
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = simpockets.tbl
|
||||
TOOL_CHANGE_QUILL_UP = 1
|
||||
RANDOM_TOOLCHANGER = 0
|
||||
|
||||
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
#This is a best-guess at the number of joints, it should be checked
|
||||
JOINTS = 3
|
||||
|
||||
[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 = -40.0
|
||||
MAX_LIMIT = 40.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 = -40.0
|
||||
MAX_LIMIT = 40.0
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
5
tests/ccomp/early-exit/test.sh
Executable file
5
tests/ccomp/early-exit/test.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -f sim.var
|
||||
linuxcnc -r test.ini
|
||||
|
||||
68
tests/ccomp/lathe-comp/expected
Normal file
68
tests/ccomp/lathe-comp/expected
Normal file
@@ -0,0 +1,68 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... SET_FEED_RATE(30.0000)
|
||||
N..... SELECT_PLANE(CANON_PLANE_XZ)
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
|
||||
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.000000)
|
||||
N..... SET_NAIVECAM_TOLERANCE(0.0000)
|
||||
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
|
||||
N..... SELECT_TOOL(0)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... CHANGE_TOOL()
|
||||
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(0.1000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.1000, 0.0000, 0.1000, 0.1000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.2500, -0.2500, 1.0000, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.5000, -0.5000, 1.5000, -0.2500, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(-0.5000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SELECT_TOOL(2)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... CHANGE_TOOL()
|
||||
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(0.0500, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.0500, 0.0000, 0.0500, 0.0500, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.0000, 0.0000, 0.9500, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.2500, -0.3000, 0.9500, -0.3000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.4500, -0.5000, 1.4500, -0.3000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(-0.5000, 0.0000, 1.7000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SELECT_TOOL(7)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... CHANGE_TOOL()
|
||||
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 1.8500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(-0.3000, 0.0000, 1.8500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on right")
|
||||
N..... STRAIGHT_FEED(-0.4000, 0.0000, 1.7500, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.7000, -0.4500, 1.7000, -0.4000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(-0.4500, 0.0000, 1.4500, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.2500, -0.2500, 1.4500, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.9500, 0.0500, 0.9500, -0.2500, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.0500, 0.0000, 0.0500, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.0000, 0.1000, 0.0500, 0.1000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_TRAVERSE(0.3000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
|
||||
N..... SELECT_TOOL(0)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... CHANGE_TOOL()
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SELECT_PLANE(CANON_PLANE_XY)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
49
tests/ccomp/lathe-comp/test.ngc
Normal file
49
tests/ccomp/lathe-comp/test.ngc
Normal file
@@ -0,0 +1,49 @@
|
||||
g20 g64 g18 f30
|
||||
|
||||
g49
|
||||
t0 m6
|
||||
|
||||
g0x.3z0
|
||||
g40
|
||||
g1x.1
|
||||
g3x0z.1r.1
|
||||
g1z1
|
||||
g2r.25x-.25z1.25
|
||||
g3r.25x-.5z1.5
|
||||
g1z1.75
|
||||
g0x.3
|
||||
|
||||
t2 m6
|
||||
g43 h2
|
||||
|
||||
g0z0
|
||||
g41
|
||||
g1x.1
|
||||
g3x0z.1r.1
|
||||
g1z1
|
||||
g2r.25x-.25z1.25
|
||||
g3r.25x-.5z1.5
|
||||
g1z1.75
|
||||
g40
|
||||
g0x.3
|
||||
|
||||
t7 m6
|
||||
g43 h9
|
||||
|
||||
g0z1.85
|
||||
g0x-.3
|
||||
g42
|
||||
g1x-.4
|
||||
g2x-.5z1.75r.1
|
||||
g1z1.5
|
||||
g2r.25x-.25z1.25
|
||||
g3r.25x0z1
|
||||
g1z.1
|
||||
g2r.1x.1z0
|
||||
g40
|
||||
g0x.3
|
||||
|
||||
g49
|
||||
t0 m6
|
||||
|
||||
m2
|
||||
3
tests/ccomp/lathe-comp/test.sh
Normal file
3
tests/ccomp/lathe-comp/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
19
tests/ccomp/lathe-comp/test.tbl
Normal file
19
tests/ccomp/lathe-comp/test.tbl
Normal file
@@ -0,0 +1,19 @@
|
||||
T1 P1 Z0.0 X0.0 D0.1 I95.0 J155.0 Q1;
|
||||
T2 P2 Z0.0 X0.0 D0.1 I85.0 J25.0 Q2;
|
||||
T3 P3 Z0.0 X0.0 D0.1 I275.0 J335.0 Q3;
|
||||
T4 P4 Z0.0 X0.0 D0.1 I265.0 J205.0 Q4;
|
||||
T5 P5 Z0.0 X0.0 D0.1 I210.0 J150.0 Q5;
|
||||
T6 P6 Z0.5 X0.5 D0.1 I120.0 J60.0 Q6;
|
||||
T7 P7 Z0.0 X0.0 D0.1 I-30.0 J30.0 Q7;
|
||||
T8 P8 Z0.0 X0.0 D0.1 I240.0 J300.0 Q8;
|
||||
T9 P9 Z0.0 X0.0 D0.1 I0.0 J0.0 Q9;
|
||||
T10 P10 Z0.0 X0.0 D0.0 I0.0 J0.0 Q0;
|
||||
T11 P11 Z0.0 X0.0 D0.0 I95.0 J155.0 Q1;
|
||||
T12 P12 Z0.0 X0.0 D0.0 I85.0 J25.0 Q2;
|
||||
T13 P13 Z0.0 X0.0 D0.0 I275.0 J335.0 Q3;
|
||||
T14 P14 Z0.0 X0.0 D0.0 I265.0 J205.0 Q4;
|
||||
T15 P15 Z0.0 X0.0 D0.0 I210.0 J150.0 Q5;
|
||||
T16 P16 Z0.0 X0.0 D0.0 I120.0 J60.0 Q6;
|
||||
T17 P17 Z0.0 X0.0 D0.0 I-30.0 J30.0 Q7;
|
||||
T18 P18 Z0.0 X0.0 D0.0 I240.0 J300.0 Q8;
|
||||
T19 P19 Z0.0 X0.0 D0.0 I0.0 J0.0 Q9;
|
||||
50
tests/ccomp/mill-g90g91g92/expected
Normal file
50
tests/ccomp/mill-g90g91g92/expected
Normal file
@@ -0,0 +1,50 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
|
||||
N..... SELECT_TOOL(3)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... CHANGE_TOOL()
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_FEED_RATE(100.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.0000, 0.0000, 1.5000, -0.5000, 1, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.0000, 1.0000, 1.0000, 1.0000, -1, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(1.0000, 2.0000, -0.8229, 2.8229, 1, 0.9000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0000, 1.0000, 0.7000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("This is perverse on purpose.")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(2.0000, 0.0000, 0.5000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... ARC_FEED(1.0884, -0.0884, 1.5979, -0.5979, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... ARC_FEED(1.0000, -0.1250, 1.0000, 0.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(-0.1250, 1.0000, 1.0000, 1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... ARC_FEED(-0.0514, 1.1139, 0.0000, 1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.8861, 2.0514, -0.8229, 2.8229, 1, 0.4000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to incremental")
|
||||
N..... ARC_FEED(1.0884, 2.0884, 1.0000, 2.0000, -1, 0.4000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(2.0884, 1.0884, 0.2000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: distance mode changed to absolute")
|
||||
N..... ARC_FEED(2.0884, 0.9116, 2.0000, 1.0000, -1, 0.2000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0884, -0.0884, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(1.0884, -0.0884, 1.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
28
tests/ccomp/mill-g90g91g92/test.ngc
Normal file
28
tests/ccomp/mill-g90g91g92/test.ngc
Normal file
@@ -0,0 +1,28 @@
|
||||
G20
|
||||
T3 M6
|
||||
G0 X0 Y0
|
||||
F100
|
||||
G0 Z1
|
||||
X2Y0
|
||||
|
||||
G3 X1Y0 R[.5*SQRT[2]] Z.5
|
||||
G2 X0Y1 R1
|
||||
G3 X1Y2Z.9 R2
|
||||
G1 X2Y1Z.7
|
||||
X1Y0Z.5
|
||||
G0Z1
|
||||
|
||||
(This is perverse on purpose.)
|
||||
G0 Z1
|
||||
G92 Z.5
|
||||
X2Y0
|
||||
G41
|
||||
G3 X1Y0 R[.5*SQRT[2]] Z0
|
||||
G91 G2 X-1Y1 R1
|
||||
G90 G3 X1Y2Z.4 R2
|
||||
G91 G1 X1Y-1Z-.2
|
||||
G90 X1Y0Z0
|
||||
G0Z1
|
||||
G40
|
||||
G92.1
|
||||
M2
|
||||
3
tests/ccomp/mill-g90g91g92/test.sh
Normal file
3
tests/ccomp/mill-g90g91g92/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
5
tests/ccomp/mill-g90g91g92/test.tbl
Normal file
5
tests/ccomp/mill-g90g91g92/test.tbl
Normal file
@@ -0,0 +1,5 @@
|
||||
T1 P1 Z0.5 D0.0625;first tool
|
||||
T2 P2 Z0.7 D0.125;
|
||||
T3 P3 Z0.5 D0.25;
|
||||
T4 P4 Z0.7 D1.0;
|
||||
T32 P32 Z0.5 D0.0;last tool
|
||||
47
tests/ccomp/mill-line-arc-entry/expected
Normal file
47
tests/ccomp/mill-line-arc-entry/expected
Normal file
@@ -0,0 +1,47 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... COMMENT("this is the program describing entry moves for")
|
||||
N..... COMMENT("radius compensation in Figure 3 of the Handbook")
|
||||
N..... COMMENT("http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_38a.html#999268")
|
||||
N..... SET_FEED_RATE(60.0000)
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
|
||||
N..... COMMENT("first, no compensation so we can see the part outline")
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.0000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(2.0000, 3.0000, 2.0000, 4.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(3.0000, 2.0000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(3.0000, -1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(2.0000, -2.0000, 2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(-2.0000, -2.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(-2.6000, -0.2000, -2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.4000, 2.8000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(2.0000, 3.0000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("with compensation")
|
||||
N..... SELECT_TOOL(4)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... CHANGE_TOOL()
|
||||
N..... STRAIGHT_TRAVERSE(1.0000, 5.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(1.5000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(2.0000, 3.5000, 2.0000, 4.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(3.5000, 2.0000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(3.5000, -1.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(2.0000, -2.5000, 2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(-2.0000, -2.5000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(-2.9000, 0.2000, -2.0000, -1.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.1000, 3.2000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(2.0000, 3.5000, 2.0000, 2.0000, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
33
tests/ccomp/mill-line-arc-entry/test.ngc
Normal file
33
tests/ccomp/mill-line-arc-entry/test.ngc
Normal file
@@ -0,0 +1,33 @@
|
||||
(this is the program describing entry moves for)
|
||||
(radius compensation in Figure 3 of the Handbook)
|
||||
(http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_38a.html#999268)
|
||||
|
||||
g20 f60
|
||||
|
||||
(first, no compensation so we can see the part outline)
|
||||
g0 x1 y5
|
||||
g1 y4
|
||||
g3 x2 y3 i1
|
||||
g2 x3 y2 j-1
|
||||
g1 y-1
|
||||
g2 x2 y-2 i-1
|
||||
g1 x-2
|
||||
g2 x-2.6 y-0.2 j1
|
||||
g1 x1.4 y2.8
|
||||
g2 x2 y3 i.6 j-.8
|
||||
|
||||
(with compensation)
|
||||
t4 m6
|
||||
g0 x1 y5
|
||||
g41 g1 y4
|
||||
g3 x2 y3 i1
|
||||
g2 x3 y2 j-1
|
||||
g1 y-1
|
||||
g2 x2 y-2 i-1
|
||||
g1 x-2
|
||||
g2 x-2.6 y-0.2 j1
|
||||
g1 x1.4 y2.8
|
||||
g2 x2 y3 i.6 j-.8
|
||||
g40
|
||||
|
||||
m2
|
||||
3
tests/ccomp/mill-line-arc-entry/test.sh
Normal file
3
tests/ccomp/mill-line-arc-entry/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
5
tests/ccomp/mill-line-arc-entry/test.tbl
Normal file
5
tests/ccomp/mill-line-arc-entry/test.tbl
Normal file
@@ -0,0 +1,5 @@
|
||||
T1 P1 Z0.5 D0.0625;first tool
|
||||
T2 P2 Z0.7 D0.125;
|
||||
T3 P3 Z0.5 D0.25;
|
||||
T4 P4 Z0.7 D1.0;
|
||||
T32 P32 Z0.5 D0.0;last tool
|
||||
107
tests/ccomp/mill-zchanges/expected
Normal file
107
tests/ccomp/mill-zchanges/expected
Normal file
@@ -0,0 +1,107 @@
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_REFERENCE(CANON_XYZ)
|
||||
N..... ON_RESET()
|
||||
N..... SET_FEED_RATE(60.0000)
|
||||
N..... USE_LENGTH_UNITS(CANON_UNITS_INCHES)
|
||||
N..... COMMENT("arc entry")
|
||||
N..... COMMENT("uncomp")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... ARC_FEED(0.5000, 0.7500, 0.5000, 0.5000, -1, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("comp")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, 0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... ARC_FEED(0.5000, 0.8125, 0.5000, 0.5562, -1, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, 0.8125, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, 0.7500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, 0.7500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("line entry")
|
||||
N..... COMMENT("uncomp")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(0.5000, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("comp")
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_TRAVERSE(0.0000, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.2500, -0.5000, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation on left")
|
||||
N..... STRAIGHT_FEED(0.4558, -0.2058, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... ARC_FEED(0.5000, -0.1875, 0.5000, -0.2500, -1, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(0.7500, -0.1875, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... COMMENT("interpreter: cutter radius compensation off")
|
||||
N..... STRAIGHT_FEED(1.0000, -0.2500, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... STRAIGHT_FEED(1.2500, -0.2500, 0.2500, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
|
||||
N..... SET_XY_ROTATION(0.0000)
|
||||
N..... SET_FEED_MODE(0, 0)
|
||||
N..... SET_FEED_RATE(0.0000)
|
||||
N..... STOP_SPINDLE_TURNING(0)
|
||||
N..... SET_SPINDLE_MODE(0 0.0000)
|
||||
N..... PROGRAM_END()
|
||||
N..... ON_RESET()
|
||||
N..... ON_RESET()
|
||||
81
tests/ccomp/mill-zchanges/test.ngc
Normal file
81
tests/ccomp/mill-zchanges/test.ngc
Normal file
@@ -0,0 +1,81 @@
|
||||
g20 f60
|
||||
|
||||
(arc entry)
|
||||
(uncomp)
|
||||
g0x0y.5z.25
|
||||
g1x.25
|
||||
g41 g2 d0 x.5 y.75 i.25
|
||||
g1 x.75
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
(comp)
|
||||
g0x0y.5z.25
|
||||
g1x.25 z0
|
||||
g41 g2 d2 x.5 y.75 i.25
|
||||
g1 x.75
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
g0x0y.5z.25
|
||||
g1x.25
|
||||
g41 g2 d2 x.5 y.75 i.25 z0
|
||||
g1 x.75
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
g0x0y.5z.25
|
||||
g1x.25
|
||||
g41 g2 d2 x.5 y.75 i.25
|
||||
g1 x.75 z0
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
g0x0y.5z.25
|
||||
g1x.25
|
||||
g41 g2 d2 x.5 y.75 i.25
|
||||
g1 x.75
|
||||
g40 x1 z0
|
||||
x1.25 z.25
|
||||
|
||||
|
||||
(line entry)
|
||||
(uncomp)
|
||||
g0x0y-.5z.25
|
||||
g1x.25
|
||||
g41 g1 d0 x.5 y-.25
|
||||
g1 x.75
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
(comp)
|
||||
g0x0y-.5z.25
|
||||
g1x.25 z0
|
||||
g41 g1 d2 x.5 y-.25
|
||||
g1 x.75
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
g0x0y-.5z.25
|
||||
g1x.25
|
||||
g41 g1 d2 x.5 y-.25 z0
|
||||
g1 x.75
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
g0x0y-.5z.25
|
||||
g1x.25
|
||||
g41 g1 d2 x.5 y-.25
|
||||
g1 x.75 z0
|
||||
g40 x1
|
||||
x1.25 z.25
|
||||
|
||||
g0x0y-.5z.25
|
||||
g1x.25
|
||||
g41 g1 d2 x.5 y-.25
|
||||
g1 x.75
|
||||
g40 x1 z0
|
||||
x1.25 z.25
|
||||
|
||||
|
||||
m2
|
||||
3
tests/ccomp/mill-zchanges/test.sh
Normal file
3
tests/ccomp/mill-zchanges/test.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rs274 -t test.tbl -g test.ngc | awk '{$1=""; print}'
|
||||
exit "${PIPESTATUS[0]}"
|
||||
5
tests/ccomp/mill-zchanges/test.tbl
Normal file
5
tests/ccomp/mill-zchanges/test.tbl
Normal file
@@ -0,0 +1,5 @@
|
||||
T1 P1 Z0.5 D0.0625;first tool
|
||||
T2 P2 Z0.7 D0.125;
|
||||
T3 P3 Z0.5 D0.25;
|
||||
T4 P4 Z0.7 D1.0;
|
||||
T32 P32 Z0.5 D0.0;last tool
|
||||
Reference in New Issue
Block a user