This commit is contained in:
Thaddeus-Maximus
2026-04-03 15:58:58 -05:00
commit f3953d66ae
1516 changed files with 586639 additions and 0 deletions

24
configs/sim.axis/README Executable file
View File

@@ -0,0 +1,24 @@
Axis is a modern, GL-based interface coded in python
The principal Axis gui sim ini files:
axis.ini basic demo (in)
axis_9axis.ini 9 axes
axis_mm.ini basic demo (mm)
canterp.ini demo for a non-gcode interpreter
histogram_demo.ini hal-histogram examples
historical_lathe.ini configured with 3 joints (XYZ with Y unused)
ini_hal_demo.ini ini hal pins demo
lathe.ini lathe demo
ldelta.ini linear delta robot
ldelta_demo.ini linear delta with jog guis
minimal_xyz.ini minimal set of config items
profile_axis.ini profiling
random_tc.ini random tool changer
rdelta.ini rotary delta robot
Select one of these if you have no functional machine but want to edit some basic configuration stuff or play with one of the LinuxCNC displays.
Additional configurations are provided in subdirectories.
These configurations demonstrate LinuxCNC functionality using the axis gui as the interface. (The functionality demonstrated may be available in other guis also)

33
configs/sim.axis/README_es Executable file
View File

@@ -0,0 +1,33 @@
Axis es una moderna interfaz basada en GL y codificada en Python
Archivos ini principales de Axis gui sim:
axis.ini demo básica (in).
axis_9axis.ini 9 ejes.
axis_mm.ini demo básica (mm).
canterp.ini demo de intérprete
no-gcode.
gantry.ini demo pórtico.
gantry_mm.ini demo pórtico (mm).
histogram_demo.ini ejemplos
hal-histogram.
historical_lathe.ini torno, 3 articula-
-ciones (XYZ, con Y
sin usar).
ini_hal_demo.ini demo ini pines hal.
lathe.ini demo torno.
ldelta.ini robot delta lineal.
ldelta_demo.ini robot delta lineal
con gui para jog.
minimal_xyz.ini conjunto mínimo de
configuración.
profile_axis.ini perfil.
random_tc.ini cambiador aleatorio.
de herramientas.
rdelta.ini robot delta rotativo.
Seleccione uno de estos si no tiene una máquina funcional pero desea editar algunas cosas de configuración básica o jugar con una de las pantallas de LinuxCNC.
Se proporcionan configuraciones adicionales en los subdirectorios.
Estas configuraciones demuestran la funcionalidad de LinuxCNC utilizando la interfaz Axis. (La funcionalidad demostrada puede estar disponible tambien en otras guis)

229
configs/sim.axis/axis.ini Executable file
View File

@@ -0,0 +1,229 @@
# EMC controller parameters for a simulated machine.
# General note: Comments can either be preceded with a # or ; - either is
# acceptable, although # is in keeping with most linux config files.
# General section -------------------------------------------------------------
[EMC]
# Version of this INI file
VERSION = 1.1
# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-AXIS
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
#DEBUG = 0x7FFFFFFF
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
# Name of display program, e.g., axis
DISPLAY = axis
# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.100
# Path to help file
HELP_FILE = doc/help.txt
# Initial display setting for position, RELATIVE or MACHINE
POSITION_OFFSET = RELATIVE
# Initial display setting for position, COMMANDED or ACTUAL
POSITION_FEEDBACK = ACTUAL
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 5
DEFAULT_LINEAR_VELOCITY = .25
DEFAULT_SPINDLE_SPEED = 200
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
# Task controller section -----------------------------------------------------
[TASK]
# Name of task controller program, e.g., milltask
TASK = milltask
# Cycle time, in seconds, that task controller will sleep between polls
CYCLE_TIME = 0.001
# Part program interpreter section --------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim.var
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
# BASE_PERIOD is unused in this configuration but specified in core_sim.hal
BASE_PERIOD = 0
# Servo task period, in nano-seconds
SERVO_PERIOD = 1000000
# section for main IO controller parameters -----------------------------------
[EMCIO]
# Name of IO controller program, e.g., io
EMCIO = io
# cycle time, in seconds
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
# Hardware Abstraction Layer section --------------------------------------------------
[HAL]
# The run script first uses halcmd to execute any HALFILE
# files, and then to execute any individual HALCMD commands.
#
# list of hal config files to run through halcmd
# files are executed in the order in which they appear
HALFILE = core_sim.hal
HALFILE = sim_spindle_encoder.hal
HALFILE = axis_manualtoolchange.hal
HALFILE = simulated_home.hal
HALFILE = check_xyz_constraints.hal
HALFILE = cooling.hal
# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta
# Single file that is executed after the GUI has started. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
#POSTGUI_HALFILE = test_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 4
DEFAULT_LINEAR_ACCELERATION = 100
MAX_LINEAR_ACCELERATION = 100
POSITION_FILE = position.txt
[KINS]
KINEMATICS = trivkins
JOINTS = 3
# Axes sections ---------------
[AXIS_X]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
[AXIS_Y]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
[AXIS_Z]
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -8.0
MAX_LIMIT = 0.12
# Joints sections -------------
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
FERROR = 0.050
MIN_FERROR = 0.010
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
FERROR = 0.050
MIN_FERROR = 0.010
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 5
MAX_ACCELERATION = 50.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -8.0
# Normally the Z max should be 0.000!
# The only reason it's greater than 0 here is so that the splash screen
# gcode will run.
MAX_LIMIT = 0.12
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

200
configs/sim.axis/axis_9axis.ini Executable file
View File

@@ -0,0 +1,200 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-sim-9axis
DEBUG = 0
[DISPLAY]
DISPLAY = axis
CYCLE_TIME = 0.100
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in
GEOMETRY = XYZABCUVW
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
PARAMETER_FILE = sim-9axis.var
[EMCMOT]
# joint4 is locked rotary
# create hal pins: joint4.unlock, joint.4.is-locked
# JOINTS_AXES specify joint4 with mask:
EMCMOT = motmod unlock_joints_mask=0x10
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
HALFILE = locking_indexer.hal
[TRAJ]
COORDINATES = X Y Z A B C U V W
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.0
DEFAULT_LINEAR_ACCELERATION = 20.0
DEFAULT_ANGULAR_VELOCITY = 45.0
MAX_LINEAR_VELOCITY = 1.2
MAX_LINEAR_ACCELERATION = 20.0
MAX_ANGULAR_VELOCITY = 90.0
POSITION_FILE = position9.txt
[KINS]
KINEMATICS = trivkins
JOINTS = 9
[AXIS_X]
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
[AXIS_Y]
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
[AXIS_Z]
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
[AXIS_A]
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_B]
# JOINTS_AXES specify the joint number
# JOINTS_AXES also mask: motmod unlock_joints_mask=0x10
LOCKING_INDEXER_JOINT = 4
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_C]
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
[AXIS_U]
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
[AXIS_V]
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
[AXIS_W]
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 1
HOME_USE_INDEX = 1
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 1
HOME_USE_INDEX = 1
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 0
HOME_USE_INDEX = 1
[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 1
[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 1
# joints_axes: for homing
LOCKING_INDEXER = 1
[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 1200.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 1
[JOINT_6]
TYPE = LINEAR
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_7]
TYPE = LINEAR
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_8]
TYPE = LINEAR
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0

216
configs/sim.axis/axis_mm.ini Executable file
View File

@@ -0,0 +1,216 @@
# EMC controller parameters for a simulated machine.
# General note: Comments can either be preceded with a # or ; - either is
# acceptable, although # is in keeping with most linux config files.
# General section -------------------------------------------------------------
[EMC]
# Version of this INI file
VERSION = 1.1
# Name of machine, for use with display, etc.
MACHINE = LinuxCNC-HAL-SIM-AXIS
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
# DEBUG = 0x7FFFFFFF
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
# Name of display program, e.g., axis
DISPLAY = axis
# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.100
# Path to help file
HELP_FILE = doc/help.txt
# Initial display setting for position, RELATIVE or MACHINE
POSITION_OFFSET = RELATIVE
# Initial display setting for position, COMMANDED or ACTUAL
POSITION_FEEDBACK = ACTUAL
# Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
# Prefix to be used
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
# Task controller section -----------------------------------------------------
[TASK]
# Name of task controller program, e.g., milltask
TASK = milltask
# Cycle time, in seconds, that task controller will sleep between polls
CYCLE_TIME = 0.001
# Part program interpreter section --------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim_mm.var
# Motion control section ------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
# Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
# BASE_PERIOD is unused in this configuration but specified in core_sim.hal
BASE_PERIOD = 0
# Servo task period, in nano-seconds
SERVO_PERIOD = 1000000
# section for main IO controller parameters -----------------------------------
[EMCIO]
# Name of IO controller program, e.g., io
EMCIO = io
# cycle time, in seconds
CYCLE_TIME = 0.100
# tool table file
TOOL_TABLE = sim_mm.tbl
TOOL_CHANGE_POSITION = 0 0 50.8
# Hardware Abstraction Layer section --------------------------------------------------
[HAL]
# The run script first uses halcmd to execute any HALFILE
# files, and then to execute any individual HALCMD commands.
#
# list of hal config files to run through halcmd
# files are executed in the order in which they appear
HALFILE = core_sim.hal
HALFILE = sim_spindle_encoder.hal
HALFILE = axis_manualtoolchange.hal
HALFILE = simulated_home.hal
HALFILE = cooling.hal
# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta
# Single file that is executed after the GUI has started. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
#POSTGUI_HALFILE = test_postgui.hal
HALUI = halui
# Trajectory planner section --------------------------------------------------
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 30.48
MAX_LINEAR_VELOCITY = 53.34
DEFAULT_LINEAR_ACCELERATION = 508
MAX_LINEAR_ACCELERATION = 508
POSITION_FILE = position_mm.txt
[KINS]
KINEMATICS = trivkins
JOINTS = 3
# Axes sections ---------------
[AXIS_X]
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
MIN_LIMIT = -254
MAX_LIMIT = 254
[AXIS_Y]
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
MIN_LIMIT = -254
MAX_LIMIT = 254
[AXIS_Z]
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
MIN_LIMIT = -50.8
MAX_LIMIT = 101.6
# Joints sections -------------
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -254
MAX_LIMIT = 254
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -254
MAX_LIMIT = 254
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 30.48
MAX_ACCELERATION = 508
BACKLASH = 0.000
INPUT_SCALE = 157.48
OUTPUT_SCALE = 1.000
MIN_LIMIT = -50.8
MAX_LIMIT = 101.6
FERROR = 1.27
MIN_FERROR = .254
HOME_OFFSET = 25.4
HOME_SEARCH_VEL = 127
HOME_LATCH_VEL = 25.4
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

114
configs/sim.axis/canterp.ini Executable file
View File

@@ -0,0 +1,114 @@
[EMC]
MACHINE = Canterp Example
VERSION = 1.1
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
INTERPRETER = canterp.so
[DISPLAY]
OPEN_FILE = ./canterp_example.can
DISPLAY = axis
CYCLE_TIME = 0.100
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
#EDITOR = geany
TOOL_EDITOR = tooledit
INCREMENTS = 1mm, .1mm
[RS274NGC]
PARAMETER_FILE = canterp.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
NO_FORCE_HOMING = 1
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
HOME = 0.000
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -9999
MAX_LIMIT = 9999
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
HOME = 0.000
MIN_LIMIT = -9999
MAX_LIMIT = 9999
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -9999
MAX_LIMIT = 9999
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[AXIS_Z]
HOME = 0.0
MIN_LIMIT = -9999
MAX_LIMIT = 9999
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -9999
MAX_LIMIT = 9999
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1

View File

@@ -0,0 +1,30 @@
xx xxxxx COMMENT(this is a comment)
xx xxxxx COMMENT(first two columns are ignored)
xx xxxxx COMMENT(see canterp.cc for possible commands)
00 N____ USE_LENGTH_UNITS(CANON_UNITS_MM)
00 N____ SET_FEED_REFERENCE(CANON_XYZ)
00 N____ MIST_OFF()
00 N____ FLOOD_OFF()
00 N____ SET_FEED_RATE(50.0)
00 N____ SET_SPINDLE_SPEED(0, 3000)
00 N____ START_SPINDLE_CLOCKWISE(0)
00 N____ STRAIGHT_TRAVERSE( 5 5 5 0 0 0 0 0 0)
00 N____ STRAIGHT_TRAVERSE( 0 0 0 0 0 0 0 0 0)
00 N____ MIST_OFF()
00 N____ FLOOD_OFF()
00 N____ SET_FEED_RATE(50.0)
00 N____ SET_SPINDLE_SPEED(0, 3000)
00 N____ START_SPINDLE_CLOCKWISE(0)
00 N____ STRAIGHT_FEED(10 00 00 0 0 0 0 0 0)
00 N____ STRAIGHT_FEED(10 10 00 0 0 0 0 0 0)
00 N____ STRAIGHT_FEED(10 10 10 0 0 0 0 0 0)
00 N____ STRAIGHT_FEED(10 10 10 0 0 0 0 0 0)
00 N____ STRAIGHT_FEED(10 10 00 0 0 0 0 0 0)
00 N____ STRAIGHT_FEED(10 00 00 0 0 0 0 0 0)
00 N____ COMMENT(lines below not working)
00 N____ COMMENT(ARC_FEED(1.0704, 3.3450, 2.0000, 2.0000, 1, 1.6875)))

7
configs/sim.axis/cooling.hal Executable file
View File

@@ -0,0 +1,7 @@
# Fake the existence of coolant options
loadrt and2 count=3
addf and2.0 servo-thread
addf and2.1 servo-thread
net flood iocontrol.0.coolant-flood => and2.0.in0
net mist iocontrol.0.coolant-mist => and2.0.in1
net lube iocontrol.0.lube => and2.1.in0

View File

@@ -0,0 +1,136 @@
[EMC]
VERSION = 1.1
MACHINE = ini_hal_demo
DEBUG = 0
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
EDITOR = gedit
# use tooltable columns for diam and z only:
TOOL_EDITOR = tooledit diam z
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
#NO_FORCE_HOMING = 1
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2345
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
HOME = 0.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
[APPLICATIONS]
# s32 pin using default parameters:
APP = hal-histogram -geometry +50+50\
--show
# float pin
APP = hal-histogram -geometry +10+10\
--show \
--minvalue -1 \
--binsize .1 \
--nbins 60 \
halui.axis.x.pos-commanded

View File

@@ -0,0 +1,10 @@
hal-histogram demo
Axis gui that starts two hal-histogram applications for pins:
motion-command-handler.time
halui.axis.x.pos-commanded
More typically, the program hal-histogram would be run from the command line.
For usage:
$ hal-histogram --help

View File

@@ -0,0 +1,10 @@
demo hal-histogram demo
Gui Axis gui que lanza dos aplicaciones hal-histogram para los pines:
motion-command-handler.time
halui.axis.x.pos-commanded
Generalmente, el programa hal-histogram debe correr desde la linea de comandos.
Para uso, vea:
$ hal-histogram --help

View File

@@ -0,0 +1,113 @@
[EMC]
VERSION = 1.1
MACHINE = Historical-LATHE
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
[DISPLAY]
DISPLAY = axis
PYVCP = lathe.xml
LATHE = 1
#EDITOR = geany
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[RS274NGC]
PARAMETER_FILE = sim-lathe.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALFILE = core_sim.hal
HALFILE = axis_manualtoolchange.hal
HALFILE = simulated_home.hal
HALFILE = lathe.hal
HALFILE = cooling.hal
POSTGUI_HALFILE = lathe_postgui.hal
[TRAJ]
COORDINATES = X Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.0
MAX_LINEAR_VELOCITY = 3.333334
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_ACCELERATION = 20.0
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = lathe.tbl
TOOL_CHANGE_POSITION = 2 0 1
TOOL_CHANGE_WITH_SPINDLE_ON = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
[AXIS_Z]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
[JOINT_1]
# JOINT_1: not used, home immediately:
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 3.333334
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1

147
configs/sim.axis/ini_hal_demo.ini Executable file
View File

@@ -0,0 +1,147 @@
# file modified from emc/configs/sim/axis.ini
[EMC]
VERSION = 1.1
MACHINE = ini_hal_demo
DEBUG = 0
[DISPLAY]
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
EDITOR = gedit
# use tooltable columns for diam and z only:
TOOL_EDITOR = tooledit diam z
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
POSTGUI_HALFILE = postgui_calib_helper.hal
[TRAJ]
COORDINATES = X Y Z
#NO_FORCE_HOMING = 1
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2345
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 2
[KINS]
# kinstype= both used for testing joint/teleop modes
KINEMATICS = trivkins coordinates=xyz kinstype=both
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME = 0.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
MAX_VELOCITY = 40
MAX_ACCELERATION = 100.0
MIN_LIMIT = -800.0
MAX_LIMIT = 100.0
HOME = 0.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
[APPLICATIONS]
DELAY= 5
APP = sim_pin \
ini.traj_arc_blend_enable \
ini.traj_arc_blend_optimization_depth \
ini.traj_default_velocity \
ini.traj_default_acceleration \
ini.traj_max_velocity \
ini.traj_max_acceleration
APP = sim_pin \
ini.0.min_limit \
ini.0.max_limit \
ini.0.max_velocity \
ini.0.max_acceleration \
ini.x.min_limit \
ini.x.max_limit \
ini.x.max_velocity \
ini.x.max_acceleration

View File

@@ -0,0 +1,3 @@
ini_hal_demo
Axis gui that starts a sim_pin application to demonstrate how to alter several supported ini values using ini hal pins.

View File

@@ -0,0 +1,3 @@
ini_hal_demo
Gui Axis que arranca una aplicacion sim_pin para demostrar como alterar valores ini soportados usando pines hal.

97
configs/sim.axis/lathe.ini Executable file
View File

@@ -0,0 +1,97 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-HAL-SIM-LATHE
DEBUG = 0
[DISPLAY]
DISPLAY = axis
PYVCP = lathe.xml
LATHE = 1
#BACK_TOOL_LATHE = 1 #uncomment for back tool lathe
#EDITOR = geany
CYCLE_TIME = 0.100
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[RS274NGC]
PARAMETER_FILE = sim-lathe.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
POSTGUI_HALFILE = lathe_postgui.hal
[TRAJ]
COORDINATES = X Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.0
MAX_LINEAR_VELOCITY = 3.333334
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_ACCELERATION = 20.0
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = lathe.tbl
TOOL_CHANGE_POSITION = 2 0 1
TOOL_CHANGE_WITH_SPINDLE_ON = 1
[KINS]
KINEMATICS = trivkins coordinates=xz
JOINTS = 2
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 3.333333
MAX_ACCELERATION = 20.0
[JOINT_0]
TYPE = LINEAR
MAX_VELOCITY = 3.333333
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 0
[AXIS_Z]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 3.333333
MAX_ACCELERATION = 20.0
[JOINT_1]
TYPE = LINEAR
MAX_VELOCITY = 3.333333
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_SEQUENCE = 1

10
configs/sim.axis/lathe.tbl Executable file
View File

@@ -0,0 +1,10 @@
T1 P1 D0.100000 Z+0.100000 I+95.000000 J+155.000000 Q1 ;
T2 P2 D0.100000 I+85.000000 J+25.000000 Q2 ;
T3 P3 D0.100000 I+275.000000 J+335.000000 Q3 ;
T4 P4 D0.100000 I+265.000000 J+205.000000 Q4 ;
T5 P5 D0.100000 I+210.000000 J+150.000000 Q5 ;
T6 P6 D0.100000 X+0.500000 Z+0.500000 I+120.000000 J+60.000000 Q6 ;
T7 P7 D0.100000 I-30.000000 J+30.000000 Q7 ;
T8 P8 D0.100000 I+240.000000 J+300.000000 Q8 ;
T9 P9 D0.100000 Q9 ;
T10 P10 D0. ; demo zero diameter

16
configs/sim.axis/lathe.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<vbox>
<label>
<text>"Spindle speed:"</text>
</label>
<bar>
<halpin>"spindle-speed"</halpin>
<max_>5000</max_>
</bar>
<hbox>
<led halpin="spindle-at-speed" on_color="yellow" off_color="black"/>
<label text="At Speed"/>
</hbox>
</vbox>
</pyvcp>

View File

@@ -0,0 +1,2 @@
net spindle-rpm-filtered => pyvcp.spindle-speed
net spindle-at-speed => pyvcp.spindle-at-speed

137
configs/sim.axis/ldelta.ini Executable file
View File

@@ -0,0 +1,137 @@
[EMC]
VERSION = 1.1
MACHINE = Delta-robot-with-linear-joints
DEBUG = 0
[DISPLAY]
DISPLAY = axis
MAX_LINEAR_VELOCITY = 100
MAX_FEED_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 100
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = COMMANDED
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[HAL]
HALFILE = sim_ldelta.hal
HALFILE = axis_manualtoolchange.hal
HALUI = halui
[TRAJ]
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 10
MAX_LINEAR_VELOCITY = 10
[KINS]
KINEMATICS = lineardeltakins
JOINTS = 4
[JOINT_0]
TYPE = LINEAR
HOME = 270
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000.0
MIN_LIMIT = 0
MAX_LIMIT = 375
HOME_OFFSET = 375
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
HOME = 270
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000.0
MIN_LIMIT = 0
MAX_LIMIT = 375
HOME_OFFSET = 375
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
HOME = 270
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000.0
MIN_LIMIT = 0
MAX_LIMIT = 375
HOME_OFFSET = 375
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = LINEAR
HOME = 0
MAX_VELOCITY = 100
MAX_ACCELERATION = 500.0
MIN_LIMIT = -1e6
MAX_LIMIT = 1e6
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[AXIS_X]
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000
MIN_LIMIT = -95
MAX_LIMIT = 150
[AXIS_Y]
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000
MIN_LIMIT = -95
MAX_LIMIT = 95
[AXIS_Z]
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000
MIN_LIMIT = -5
MAX_LIMIT = 35
[AXIS_A]
MAX_VELOCITY = 100
MAX_ACCELERATION = 1000
MIN_LIMIT = -1e6
MAX_LIMIT = 1e6
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.1
TOOL_TABLE = sim.tbl

184
configs/sim.axis/ldelta_demo.ini Executable file
View File

@@ -0,0 +1,184 @@
[EMC]
VERSION = 1.1
MACHINE = Delta-robot-with-linear-joints
DEBUG = 0
[DISPLAY]
DISPLAY = axis
MAX_LINEAR_VELOCITY = 100
MAX_FEED_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 100
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = COMMANDED
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[HAL]
HALFILE = sim_ldelta.hal
HALFILE = axis_manualtoolchange.hal
HALUI = halui
HALCMD = setp joint.0.jog-enable 1
HALCMD = setp joint.1.jog-enable 1
HALCMD = setp joint.2.jog-enable 1
HALCMD = setp axis.x.jog-enable 1
HALCMD = setp axis.y.jog-enable 1
HALCMD = setp axis.z.jog-enable 1
HALCMD = setp joint.0.jog-scale 10
HALCMD = setp joint.1.jog-scale 10
HALCMD = setp joint.2.jog-scale 10
HALCMD = setp axis.x.jog-scale 10
HALCMD = setp axis.y.jog-scale 10
HALCMD = setp axis.z.jog-scale 2
HALCMD = setp halui.joint.jog-speed 2000
HALCMD = setp halui.axis.jog-speed 2000
[APPLICATIONS]
# tester for joints (FREE) jogging (012 wheel and halui)
APP = sim_pin >/dev/null \
halui.mode.joint/mode=Pulse \
joint.0.jog-counts \
joint.1.jog-counts \
joint.2.jog-counts \
halui.joint.0.plus/mode=Hold \
halui.joint.0.minus/mode=Hold \
halui.joint.1.plus/mode=Hold \
halui.joint.1.minus/mode=Hold \
halui.joint.2.plus/mode=Hold \
halui.joint.2.minus/mode=Hold
# tester for axis (TELEOP) jogging (xyz wheel and halui)
APP = sim_pin >/dev/null \
halui.mode.teleop/mode=Pulse \
axis.x.jog-counts \
axis.y.jog-counts \
axis.z.jog-counts \
halui.axis.x.plus/mode=Hold \
halui.axis.x.minus/mode=Hold \
halui.axis.y.plus/mode=Hold \
halui.axis.y.minus/mode=Hold \
halui.axis.z.plus/mode=Hold \
halui.axis.z.minus/mode=Hold
[TRAJ]
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 10
MAX_LINEAR_VELOCITY = 10
[KINS]
JOINTS = 4
KINEMATICS = lineardeltakins
[JOINT_0]
TYPE = LINEAR
HOME = 270
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000.0
MIN_LIMIT = 0
MAX_LIMIT = 375
HOME_OFFSET = 375
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = LINEAR
HOME = 270
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000.0
MIN_LIMIT = 0
MAX_LIMIT = 375
HOME_OFFSET = 375
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = LINEAR
HOME = 270
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000.0
MIN_LIMIT = 0
MAX_LIMIT = 375
HOME_OFFSET = 375
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_3]
TYPE = LINEAR
HOME = 0
MAX_VELOCITY = 100
MAX_ACCELERATION = 500.0
MIN_LIMIT = -1e6
MAX_LIMIT = 1e6
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[AXIS_X]
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000
MIN_LIMIT = -95
MAX_LIMIT = 150
[AXIS_Y]
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000
MIN_LIMIT = -95
MAX_LIMIT = 95
[AXIS_Z]
MAX_VELOCITY = 300
MAX_ACCELERATION = 5000
MIN_LIMIT = -5
MAX_LIMIT = 35
[AXIS_A]
MAX_VELOCITY = 100
MAX_ACCELERATION = 1000
MIN_LIMIT = -1e6
MAX_LIMIT = 1e6
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.1
TOOL_TABLE = sim.tbl

View File

@@ -0,0 +1,10 @@
ldelta_demo
linear delta kins (Rostock)
Demo includes simple popups to simulate
jogging using HAL pins:
Joints (FREE) jogging (012 wheel and halui)
Axis (TELEOP) jogging (xyz wheel and halui)

View File

@@ -0,0 +1,10 @@
ldelta_demo
Cinematica delta lineal (Rostock)
La demo incluye popups simples para simular
jogging usando pines HAL:
Jogging articular (FREE) (volante 012 y halui)
Jogging de Ejes (TELEOP) (volante xyz y halui)

View File

@@ -0,0 +1,57 @@
[EMC]
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
MAX_LINEAR_VELOCITY = 1
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
# NoneType object has no attribute 'rfind'
PARAMETER_FILE = sim.var
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
[EMCMOT]
EMCMOT = motmod
SERVO_PERIOD = 1000000
[HAL]
HALFILE = LIB:basic_sim.tcl
# NOTE: Must have consistent values for
# [TRAJ]COORDINATES = LETTERS
# [KINS]JOINTS = Number_of_JOINTs
# [KINS]KINEMAITICS = trivkins coordinates=LETTERS
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[JOINT_0]
TYPE = LINEAR
HOME_SEQUENCE = 0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
[JOINT_1]
TYPE = LINEAR
HOME_SEQUENCE = 1
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = -20.0
[JOINT_2]
TYPE = LINEAR
HOME_SEQUENCE = 1
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0

View File

@@ -0,0 +1,174 @@
# Mon Jul 08 16:50:37 CDT 2024
#
# This file: ./minimal_xyz_cmds.hal
# Created by: /usr/share/linuxcnc/hallib/basic_sim.tcl
# With options:
# From inifile: /home/linuxcnc/linuxcnc/configs/sim.axis/minimal_xyz.ini
# Halfiles: LIB:basic_sim.tcl
#
# This file contains the hal commands produced by basic_sim.tcl
# (and any hal commands executed prior to its execution).
# ------------------------------------------------------------------
# To use ./minimal_xyz_cmds.hal in the original inifile (or a copy of it),
# edit to change:
# [HAL]
# HALFILE = LIB:basic_sim.tcl parameters
# to:
# [HAL]
# HALFILE = ./minimal_xyz_cmds.hal
#
# Notes:
# 1) Inifile Variables substitutions specified in the inifile
# and interpreted by halcmd are automatically substituted
# in the created halfile (./minimal_xyz_cmds.hal).
# 2) Input pins connected to a signal with no writer are
# not included in the setp listings herein so must be added
# manually
#
# user space components
loadusr -W hal_manualtoolchange
# components
#preloaded module: loadrt tpmod
#preloaded module: loadrt homemod
loadrt trivkins coordinates=XYZ
loadrt motmod base_period_nsec=0 servo_period_nsec=1000000 num_joints=3
#loadrt __servo-thread (not loaded by loadrt, no args saved)
loadrt pid names=J0_pid,J1_pid,J2_pid
loadrt mux2 names=J0_mux,J1_mux,J2_mux
loadrt ddt names=J0_vel,J0_accel,J1_vel,J1_accel,J2_vel,J2_accel
loadrt hypot names=hyp_xy,hyp_xyz
loadrt sim_home_switch names=J0_switch,J1_switch,J2_switch
loadrt sim_spindle names=sim_spindle
loadrt limit2 names=limit_speed
loadrt lowpass names=spindle_mass
loadrt near names=near_speed
loadrt scale names=rpm_rps
# pin aliases
# param aliases
# signals
# nets
net J0:acc J0_accel.out
net J0:enable joint.0.amp-enable-out => J0_pid.enable
net J0:homesw J0_switch.home-sw => joint.0.home-sw-in
net J0:on-pos J0_pid.output => J0_mux.in1
net J0:pos-cmd joint.0.motor-pos-cmd => J0_pid.command
net J0:pos-fb J0_mux.out => J0_mux.in0 J0_switch.cur-pos J0_vel.in joint.0.motor-pos-fb
net J0:vel J0_vel.out => J0_accel.in hyp_xy.in0 hyp_xyz.in0
net J1:acc J1_accel.out
net J1:enable joint.1.amp-enable-out => J1_pid.enable
net J1:homesw J1_switch.home-sw => joint.1.home-sw-in
net J1:on-pos J1_pid.output => J1_mux.in1
net J1:pos-cmd joint.1.motor-pos-cmd => J1_pid.command
net J1:pos-fb J1_mux.out => J1_mux.in0 J1_switch.cur-pos J1_vel.in joint.1.motor-pos-fb
net J1:vel J1_vel.out => J1_accel.in hyp_xy.in1 hyp_xyz.in1
net J2:acc J2_accel.out
net J2:enable joint.2.amp-enable-out => J2_pid.enable
net J2:homesw J2_switch.home-sw => joint.2.home-sw-in
net J2:on-pos J2_pid.output => J2_mux.in1
net J2:pos-cmd joint.2.motor-pos-cmd => J2_pid.command
net J2:pos-fb J2_mux.out => J2_mux.in0 J2_switch.cur-pos J2_vel.in joint.2.motor-pos-fb
net J2:vel J2_vel.out => J2_accel.in hyp_xyz.in2
net estop:loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
net sample:enable motion.motion-enabled => J0_mux.sel J1_mux.sel J2_mux.sel
net spindle-at-speed near_speed.out => spindle.0.at-speed
net spindle-index-enable sim_spindle.index-enable <=> spindle.0.index-enable
net spindle-orient spindle.0.orient => spindle.0.is-oriented
net spindle-pos sim_spindle.position-fb => spindle.0.revs
net spindle-rpm-filtered spindle_mass.out => near_speed.in2 rpm_rps.in
net spindle-rps-filtered rpm_rps.out => spindle.0.speed-in
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in near_speed.in1
net spindle-speed-limited limit_speed.out => sim_spindle.velocity-cmd spindle_mass.in
net tool:change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool:changed hal_manualtoolchange.changed => iocontrol.0.tool-changed
net tool:prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
net tool:prep-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net xy:vel hyp_xy.out
net xyz:vel hyp_xyz.out
# parameter values
setp J0_accel.tmax 0
setp J0_mux.tmax 0
setp J0_pid.do-pid-calcs.tmax 0
setp J0_switch.tmax 0
setp J0_vel.tmax 0
setp J1_accel.tmax 0
setp J1_mux.tmax 0
setp J1_pid.do-pid-calcs.tmax 0
setp J1_switch.tmax 0
setp J1_vel.tmax 0
setp J2_accel.tmax 0
setp J2_mux.tmax 0
setp J2_pid.do-pid-calcs.tmax 0
setp J2_switch.tmax 0
setp J2_vel.tmax 0
setp hyp_xy.tmax 0
setp hyp_xyz.tmax 0
setp limit_speed.tmax 0
setp motion-command-handler.tmax 0
setp motion-controller.tmax 0
setp near_speed.difference 10
setp near_speed.scale 1.1
setp near_speed.tmax 0
setp rpm_rps.tmax 0
setp servo-thread.tmax 0
setp sim_spindle.scale 0.01666667
setp sim_spindle.tmax 0
setp spindle_mass.gain 0.07
setp spindle_mass.tmax 0
# realtime thread/function links
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf J0_pid.do-pid-calcs servo-thread
addf J1_pid.do-pid-calcs servo-thread
addf J2_pid.do-pid-calcs servo-thread
addf J0_mux servo-thread
addf J1_mux servo-thread
addf J2_mux servo-thread
addf J0_vel servo-thread
addf J0_accel servo-thread
addf J1_vel servo-thread
addf J1_accel servo-thread
addf J2_vel servo-thread
addf J2_accel servo-thread
addf hyp_xy servo-thread
addf hyp_xyz servo-thread
addf J0_switch servo-thread
addf J1_switch servo-thread
addf J2_switch servo-thread
addf limit_speed servo-thread
addf spindle_mass servo-thread
addf rpm_rps servo-thread
addf near_speed servo-thread
addf sim_spindle servo-thread
# setp commands for unconnected input pins
setp J0_pid.FF0 1.0
setp J0_pid.Pgain 0
setp J0_pid.Dgain 0
setp J0_pid.Igain 0
setp J0_pid.FF1 0
setp J0_pid.FF2 0
setp J1_pid.FF0 1.0
setp J1_pid.Pgain 0
setp J1_pid.Dgain 0
setp J1_pid.Igain 0
setp J1_pid.FF1 0
setp J1_pid.FF2 0
setp J2_pid.FF0 1.0
setp J2_pid.Pgain 0
setp J2_pid.Dgain 0
setp J2_pid.Igain 0
setp J2_pid.FF1 0
setp J2_pid.FF2 0
setp J0_switch.hysteresis 0.05
setp J0_switch.home-pos 0.10
setp J1_switch.hysteresis 0.05
setp J1_switch.home-pos 0.10
setp J2_switch.hysteresis 0.05
setp J2_switch.home-pos 0.10
setp sim_spindle.scale 0.01666667
setp limit_speed.maxv 5000.0
setp spindle_mass.gain .07
setp near_speed.scale 1.1
setp near_speed.difference 10

16
configs/sim.axis/position.txt Executable file
View File

@@ -0,0 +1,16 @@
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000
0.00000000000000000

View File

@@ -0,0 +1,14 @@
# postgui_calib_helper.hal
# demonstration for calibration with ini hal pins
# ini hal pins will be recognized by the calibration program (emccalib.tcl)
# only if the setp commands are in a postgui hal file, example:
# [HAL]POSTGUI_HALFILE = postgui_calib_helper.hal
setp ini.0.max_velocity [JOINT_0]MAX_VELOCITY
setp ini.1.max_velocity [JOINT_1]MAX_VELOCITY
setp ini.2.max_velocity [JOINT_2]MAX_VELOCITY
setp ini.0.max_acceleration [JOINT_0]MAX_ACCELERATION
setp ini.1.max_acceleration [JOINT_1]MAX_ACCELERATION
setp ini.2.max_acceleration [JOINT_2]MAX_ACCELERATION

121
configs/sim.axis/profile_axis.ini Executable file
View File

@@ -0,0 +1,121 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-HAL-SIM-AXIS
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
[DISPLAY]
DISPLAY = profile_axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
EDITOR = xterm -e vim
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
POSITION_FILE = position.txt
MAX_LINEAR_VELOCITY = 1.2
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = sim.tbl
TOOL_CHANGE_POSITION = 0 0 0
TOOL_CHANGE_QUILL_UP = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -8.0
MAX_LIMIT = 0.0001
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

121
configs/sim.axis/random_tc.ini Executable file
View File

@@ -0,0 +1,121 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-HAL-SIM-AXIS
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
[DISPLAY]
DISPLAY = axis
CYCLE_TIME = 0.100
HELP_FILE = doc/help.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MAX_SPINDLE_OVERRIDE = 1.0
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_VELOCITY = .25
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
EDITOR = xterm -e vim
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
POSITION_FILE = position.txt
MAX_LINEAR_VELOCITY = 1.2
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = simpockets.tbl
TOOL_CHANGE_POSITION = 0 0 2
RANDOM_TOOLCHANGER = 1
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
[AXIS_Y]
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -40.0
MAX_LIMIT = 40.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 1
[AXIS_Z]
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 4
MAX_ACCELERATION = 100.0
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 20.0
HOME_LATCH_VEL = 20.0
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

174
configs/sim.axis/rdelta.ini Executable file
View File

@@ -0,0 +1,174 @@
[EMC]
VERSION = 1.1
MACHINE = Delta-robot-with-rotary-joints
DEBUG = 0
[DISPLAY]
DISPLAY = axis
MAX_LINEAR_VELOCITY = 10
MAX_FEED_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 10
PROGRAM_PREFIX = /home/linuxcnc/linuxcnc/nc_files
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
#EDITOR = geany
TOOL_EDITOR = tooledit
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = COMMANDED
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[HAL]
HALFILE = sim_rdelta.hal
HALFILE = axis_manualtoolchange.hal
HALUI = halui
[TRAJ]
COORDINATES = X Y Z A B C U V W
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 10
MAX_LINEAR_VELOCITY = 10
[KINS]
KINEMATICS = rotarydeltakins
JOINTS = 9
[JOINT_0]
TYPE = ANGULAR
HOME = 1
MAX_VELOCITY = 100
MAX_ACCELERATION = 50.0
MIN_LIMIT = -45.0
MAX_LIMIT = 90.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_1]
TYPE = ANGULAR
HOME = 1
MAX_VELOCITY = 100
MAX_ACCELERATION = 50.0
MIN_LIMIT = -45.0
MAX_LIMIT = 90.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_2]
TYPE = ANGULAR
HOME = 1
MAX_VELOCITY = 100
MAX_ACCELERATION = 50.0
MIN_LIMIT = -45.0
MAX_LIMIT = 90.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_SEQUENCE = 0
[JOINT_3]
HOME_SEQUENCE = 0
[JOINT_4]
HOME_SEQUENCE = 0
[JOINT_5]
HOME_SEQUENCE = 0
[JOINT_6]
HOME_SEQUENCE = 0
[JOINT_7]
HOME_SEQUENCE = 0
[JOINT_8]
HOME_SEQUENCE = 0
[AXIS_X]
MAX_VELOCITY = 10
MAX_ACCELERATION = 100
MIN_LIMIT = -4
MAX_LIMIT = 4
[AXIS_Y]
MAX_VELOCITY = 11
MAX_ACCELERATION = 110
MIN_LIMIT = -4
MAX_LIMIT = 4
[AXIS_Z]
MAX_VELOCITY = 12
MAX_ACCELERATION = 120
MIN_LIMIT = -18
MAX_LIMIT = -10
[AXIS_A]
MAX_VELOCITY = 103
MAX_ACCELERATION = 1030
MIN_LIMIT = 0
MAX_LIMIT = 90
[AXIS_B]
MAX_VELOCITY = 104
MAX_ACCELERATION = 1040
MIN_LIMIT = 0
MAX_LIMIT = 90
[AXIS_C]
MAX_VELOCITY = 105
MAX_ACCELERATION = 1050
MIN_LIMIT = 0
MAX_LIMIT = 90
[AXIS_U]
MAX_VELOCITY = 16
MAX_ACCELERATION = 160
MIN_LIMIT = -4
MAX_LIMIT = 4
[AXIS_V]
MAX_VELOCITY = 17
MAX_ACCELERATION = 170
MIN_LIMIT = -4
MAX_LIMIT = 4
[AXIS_W]
MAX_VELOCITY = 18
MAX_ACCELERATION = 180
MIN_LIMIT = -4
MAX_LIMIT = 4
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.1
TOOL_TABLE = sim.tbl

5
configs/sim.axis/sim.tbl Executable file
View File

@@ -0,0 +1,5 @@
T1 P1 D+0.500000 ;1/8 end mill
T2 P2 D+0.062500 Z+0.100000 ;1/16 end mill
T3 P3 D+0.201000 Z+1.273000 ;#7 tap drill
T99999 P99999 Z+0.100000 ;big tool number
T4 P4 D+0.005000 ;Added 20131029

119
configs/sim.axis/sim.var Executable file
View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.000000
5222 0.000000
5223 0.000000
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

24
configs/sim.axis/sim_mm.tbl Executable file
View File

@@ -0,0 +1,24 @@
T1 P1 Z0.511 D3 ;3mm end mill
T2 P4 Z0.1 D1.5 ;1.5mm end mill
T3 P3 Z1.273 D5 ;5mm tap drill
T4 P2 Z10 D16 ;16 mm schaftfräser
T5 P5 Z25 D25 ;25'er fräser
T6 P6 Z6 D6 ;tool 6
T7 P7 Z7 D7 ;7
T8 P8 Z8 D8 ;8
T9 P9 Z9 D9 ;9
T10 P10 Z10 D10 ;10
T11 P11 Z11 D11 ;11
T12 P12 Z12 D12 ;12
T13 P13 Z13 D13 ;13
T14 P14 Z14 D14 ;14
T15 P15 Z15 D15 ;15
T16 P16 Z16 D16 ;16
T17 P17 Z17 D17 ;17
T18 P18 Z18 D18 ;18
T19 P19 Z19 D19 ;19
T20 P20 Z20 D20 ;20
T21 P21 Z21 D21 ;21
T22 P22 Z22 D22 ;22
T23 P23 Z23 D23 ;23
T24 P24 Z24 D24 ;24

16
configs/sim.axis/simpockets.tbl Executable file
View File

@@ -0,0 +1,16 @@
T0 P0 ;no tool
T10 P1 Z-3.406343 ;other big jacobs chuck
T16 P3 ;little jacobs chuck
T12 P4 Z-4.596806 ;1/2 2fl long em
T6 P5 Z-0.950266 ;big jacobs chuck
T3 P6 D2.250000 Z-6.595331 ;2-1/4 face mill
T1 P7 D0.750000 Z-5.319396 ;3/4 roughing
T7 P8 Z-2.979905 ;big albrecht drill chuck .25 drill
T11 P9 D0.125000 Z-6.307857 ;1/8 2fl end mill
T15 P10 Z-3.730620 ;little albrecht chuck spot drill
T2 P11 D0.750000 Z-6.366394 ;3/4 2 flute
T14 P12 Z-5.305736 ;
T8 P13 Z-7.213145 ;V engraving tool
T9 P14 Z-6.163994 ;90 deg 3/8 mill-drill
T5 P15 Z-2.825524 ;long ER40 collet chuck
T4 P16 D0.375000 Z-5.307185 ;3/8 4fl carbide