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,13 @@
Sim files using tklinuxcnc gui:
ldelta.ini
-delta robot with linear joints
servo_sim.ini
-simulation for a servo machine
tklinuxcnc.ini
-tcl/tk interface
tripod.ini
-non-trivial kinematics machine

View File

@@ -0,0 +1,135 @@
[EMC]
VERSION = 1.1
MACHINE = Delta-robot-with-linear-joints
DEBUG = 0
[DISPLAY]
DISPLAY = tklinuxcnc
MAX_LINEAR_VELOCITY = 100
MAX_FEED_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 100
PROGRAM_PREFIX = ../../../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]
TOOL_TABLE = sim.tbl

View File

@@ -0,0 +1 @@
../screwcompX.dat

View File

@@ -0,0 +1,171 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-HAL-SERVO-SIM
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
[DISPLAY]
DISPLAY = tklinuxcnc
CYCLE_TIME = 0.100
HELP_FILE = tklinuxcnc.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
[RS274NGC]
PARAMETER_FILE = sim.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[HAL]
HALFILE = servo_sim.hal
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.167
MAX_LINEAR_VELOCITY = 1.5
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_ACCELERATION = 20.0
[EMCIO]
TOOL_TABLE = sim.tbl
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.67
MAX_ACCELERATION = 20.0
[AXIS_Y]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.67
MAX_ACCELERATION = 20.0
[AXIS_Z]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 1.67
MAX_ACCELERATION = 20.0
# our simulated "joints" consist of motors with 100 PPR
# (400 count per rev) encoders, coupled to 5 TPI screws
# thru a 3:1 belt reduction.
# So the scaling is 400 CPR * 3 * 5 = 6000 counts/inch
# Since we are using software encoder counters with a
# base period of 50uS (20KHz) the maximum count rate is
# 10KHz, which works out to 1.667 inches per second.
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.67
MAX_ACCELERATION = 20.0
COMP_FILE = screwcompX.dat
COMP_FILE_TYPE = 0
MOTOR_PPR = 100
DRIVE_RATIO = 15
INPUT_SCALE = 6000
OUTPUT_SCALE = 1.000
# extra limit related info for simulation
# the HARD_LIMIT variables determine when the simulated
# hardware limit switches trip and release
MIN_HARD_LIMIT_RELEASE = -10.5
MIN_HARD_LIMIT = -10.2
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_HARD_LIMIT = 10.2
MAX_HARD_LIMIT_RELEASE = 10.5
# the HOME_SW variables determine when the simulated
# home switch trips and releases
HOME_SW_MIN = 9.5
HOME_SW_MAX = 9.8
HOME_OFFSET = 10.0
HOME_SEARCH_VEL = 1.0
HOME_LATCH_VEL = 0.5
# PID tuning params
DEADBAND = 0.0001
PGAIN = 1500.0
IGAIN = 8000.0
DGAIN = 4.0
FF0 = 0.000
FF1 = 1.000
FF2 = 0.000
BIAS = 0.000
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.67
MAX_ACCELERATION = 20.0
MOTOR_PPR = 100
DRIVE_RATIO = 15
INPUT_SCALE = 6000
OUTPUT_SCALE = 1.000
MIN_HARD_LIMIT_RELEASE = -10.5
MIN_HARD_LIMIT = -10.2
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_HARD_LIMIT = 10.2
MAX_HARD_LIMIT_RELEASE = 10.5
HOME_SW_MIN = 9.5
HOME_SW_MAX = 9.8
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
# PID tuning params
DEADBAND = 0.0001
PGAIN = 1500.0
IGAIN = 8000.0
DGAIN = 4.0
FF0 = 0.000
FF1 = 1.000
FF2 = 0.000
BIAS = 0.000
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.67
MAX_ACCELERATION = 20.0
MOTOR_PPR = 100
DRIVE_RATIO = 15
INPUT_SCALE = 6000
OUTPUT_SCALE = 1.000
MIN_HARD_LIMIT_RELEASE = -2.5
MIN_HARD_LIMIT = -2.2
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_HARD_LIMIT = 4.2
MAX_HARD_LIMIT_RELEASE = 4.5
HOME_SW_MIN = 0.0
HOME_SW_MAX = 0.1
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
# PID tuning params
DEADBAND = 0.0001
PGAIN = 1500.0
IGAIN = 8000.0
DGAIN = 4.0
FF0 = 0.000
FF1 = 1.000
FF2 = 0.000
BIAS = 0.000

View File

@@ -0,0 +1 @@
../sim.tbl

View File

@@ -0,0 +1,157 @@
# 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-TkLinuxCNC
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
# Sections for display options ------------------------------------------------
[DISPLAY]
DISPLAY = tklinuxcnc
# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.100
# Path to help file
HELP_FILE = tklinuxcnc.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
# Lowest value that will be allowed for spindle speed override, 1.0 = 100%
MIN_SPINDLE_OVERRIDE = 0.5
# Highest value that will be allowed for spindle speed override, 1.0 = 100%
MAX_SPINDLE_OVERRIDE = 1.5
# Prefix to be used
PROGRAM_PREFIX = ../../nc_files/
# Introductory graphic
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
# Part program interpreter section --------------------------------------------
[RS274NGC]
# File containing interpreter variables
PARAMETER_FILE = sim.var
[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]
# tool table file
TOOL_TABLE = sim.tbl
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[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.010
# 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
# list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta
# Trajectory planner section --------------------------------------------------
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.0167
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_ACCELERATION = 20.0
# Axes sections ---------------------------------------------------------------
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
[AXIS_Y]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
[AXIS_Z]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0

View File

@@ -0,0 +1,109 @@
[EMC]
VERSION = 1.1
MACHINE = LinuxCNC-TRIPOD-SIM-TkLinuxCNC
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
[DISPLAY]
DISPLAY = tklinuxcnc
CYCLE_TIME = 0.100
HELP_FILE = tklinuxcnc.txt
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .dxf 3D Polygon Model
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode.py
gif = image-to-gcode.py
jpg = image-to-gcode.py
dxf = toolpaths.py
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]
HALFILE = tripodsim.hal
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.2
MAX_LINEAR_VELOCITY = 1.2
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_ACCELERATION = 20.0
[EMCIO]
TOOL_TABLE = sim.tbl
[KINS]
KINEMATICS = tripodkins
JOINTS = 3
[AXIS_X]
MIN_LIMIT = -1.0
MAX_LIMIT = 20.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_0]
TYPE = LINEAR
HOME = 6.123
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -1.0
MAX_LIMIT = 20.0
HOME_OFFSET = 6.123
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
[AXIS_Y]
MIN_LIMIT = -1.0
MAX_LIMIT = 20.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_1]
TYPE = LINEAR
HOME = 6.123
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -1.0
MAX_LIMIT = 20.0
HOME_OFFSET = 6.123
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
[AXIS_Z]
MIN_LIMIT = -1.0
MAX_LIMIT = 20.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
[JOINT_2]
TYPE = LINEAR
HOME = 6.123
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 20.0
MIN_LIMIT = -1.0
MAX_LIMIT = 20.0
HOME_OFFSET = 6.123
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0

View File

@@ -0,0 +1,15 @@
trivkins examples
xz.ini KINEMATICS_IDENTITY
xz_both.ini KINEMATICS_BOTH
NOTE:
!!! [TRAJ]COORDINATES MUST AGREE WITH KINS:
!!! [TRAJ]COORDINATES = xz
xz.ini
[KINS]KINEMATICS=trivkins coordinates=xz
xz_both.ini
KINEMATICS = trivkins coordinates=xz kinstype=BOTH

View File

@@ -0,0 +1,12 @@
#INCLUDE xzbase.inc
[EMC]
VERSION = 1.1
MACHINE = trivkins XZ KINEMATICS_IDENTITY
DEBUG = 0
[KINS]
# Note: coordinates must agree with [TRAJ]COORDINATES
# trivkins with no kinstype defaults to KINEMATICS_IDENTITY
KINEMATICS = trivkins coordinates=xz
JOINTS = 2

View File

@@ -0,0 +1,2 @@
T1 P1 D0.100000 X-0.333000 Z+0.100000 ;
T2 P2 D0.200000 Z+0.200000 ;

View File

@@ -0,0 +1,11 @@
#INCLUDE xzbase.inc
[EMC]
VERSION = 1.1
MACHINE = trivkins XZ KINEMATICS_BOTH
DEBUG = 0
[KINS]
# Note: coordinates must agree with [TRAJ]COORDINATES
KINEMATICS = trivkins coordinates=xz kinstype=BOTH
JOINTS = 2

View File

@@ -0,0 +1,90 @@
[HAL]
HALFILE = LIB:basic_sim.tcl
HALUI = halui
[TRAJ]
COORDINATES = XZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 1.0
DEFAULT_LINEAR_ACCELERATION = 20.0
MAX_LINEAR_VELOCITY = 4.44444
MAX_LINEAR_ACCELERATION = 22.2222
[DISPLAY]
DISPLAY = tklinuxcnc
LATHE = 1
#EDITOR = geany
TOOL_EDITOR = tooledit diam z
PROGRAM_PREFIX = ../../nc_files/
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
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 = xz.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.001
[EMCIO]
TOOL_TABLE = xz.tbl
TOOL_CHANGE_POSITION = 2 0 1
TOOL_CHANGE_WITH_SPINDLE_ON = 1
[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 3.3
MAX_ACCELERATION = 20.3
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
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 3.4
MAX_ACCELERATION = 20.4
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
[AXIS_X]
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
MAX_VELOCITY = 3.1
MAX_ACCELERATION = 20.1
[AXIS_Z]
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
MAX_VELOCITY = 3.2
MAX_ACCELERATION = 20.2