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,25 @@
The pentapod machine configuration is a set of files that makes up a basic LinuxCNC pentapod.
Start the machine, toggle E-Stop and Machine power, press Home all button, switch to world mode ($) and you can move the effector in world coordinates.
pentapod.ini
---------------
Config file for a general pentapod.
If you change the HOME location in TRAJ, make sure you change the appropriate HOME locations of the AXES as well, and make sure the position match (when run through the kinematics).
kinematics.hal
--------------
Defines base and effector joints coordinates.
basic_sim.tcl
--------------
Defines simulated joints, no real hardware attached in this config.
panel.xml
---------
Adds PyVCP panel.
pentapod_postgui.hal
------------------
Adds joints values and iterations number to PyVCP panel.

View File

@@ -0,0 +1,41 @@
# cartesian coordinates of base and effector joints for pentapod machine
setp pentakins.base.0.x -418.00
setp pentakins.base.0.y 500.00
setp pentakins.base.0.z -140.00
setp pentakins.base.1.x 418.00
setp pentakins.base.1.y 500.00
setp pentakins.base.1.z -140.00
setp pentakins.base.2.x 0.00
setp pentakins.base.2.y 500.00
setp pentakins.base.2.z -310.00
setp pentakins.base.3.x 418.00
setp pentakins.base.3.y 500.00
setp pentakins.base.3.z 510.00
setp pentakins.base.4.x -418.00
setp pentakins.base.4.y 500.00
setp pentakins.base.4.z 510.00
setp pentakins.effector.0.r 80.30
setp pentakins.effector.0.z 87.00
setp pentakins.effector.1.r 80.30
setp pentakins.effector.1.z 114.50
setp pentakins.effector.2.r 80.30
setp pentakins.effector.2.z 140.50
setp pentakins.effector.3.r 80.30
setp pentakins.effector.3.z 232.50
setp pentakins.effector.4.r 80.30
setp pentakins.effector.4.z 258.50
setp pentakins.max-error 1000.0
#setp pentakins.screw-lead 10.0
#setp pentakins.spindle-offset 0.0

View File

@@ -0,0 +1,93 @@
<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
<labelframe text="Iterations">
<font>("Helvetica",14)</font>
<vbox>
<hbox>
<label>
<text>"max:"</text>
<font>("Helvetica",14)</font>
</label>
<u32>
<halpin>"max-iter"</halpin>
<font>("Helvetica",14)</font>
<format>"3d"</format>
<width>3</width>
</u32>
</hbox>
<hbox>
<label>
<text>"last: "</text>
<font>("Helvetica",14)</font>
</label>
<u32>
<halpin>"last-iter"</halpin>
<font>("Helvetica",14)</font>
<format>"3d"</format>
<width>3</width>
</u32>
</hbox>
</vbox>
</labelframe>
<vbox>
<labelframe text="Joints values">
<font>("Helvetica",14)</font>
<hbox>
<label>
<text>"0: "</text>
<font>("Helvetica",14)</font>
</label>
<number>
<halpin>"joint0"</halpin>
<font>("Helvetica",14)</font>
<format>"4.4f"</format>
</number>
</hbox>
<hbox>
<label>
<text>"1: "</text>
<font>("Helvetica",14)</font>
</label>
<number>
<halpin>"joint1"</halpin>
<font>("Helvetica",14)</font>
<format>"4.4f"</format>
</number>
</hbox>
<hbox>
<label>
<text>"2: "</text>
<font>("Helvetica",14)</font>
</label>
<number>
<halpin>"joint2"</halpin>
<font>("Helvetica",14)</font>
<format>"4.4f"</format>
</number>
</hbox>
<hbox>
<label>
<text>"3: "</text>
<font>("Helvetica",14)</font>
</label>
<number>
<halpin>"joint3"</halpin>
<font>("Helvetica",14)</font>
<format>"4.4f"</format>
</number>
</hbox>
<hbox>
<label>
<text>"4: "</text>
<font>("Helvetica",14)</font>
</label>
<number>
<halpin>"joint4"</halpin>
<font>("Helvetica",14)</font>
<format>"4.4f"</format>
</number>
</hbox>
</labelframe>
</vbox>
</pyvcp>

View File

@@ -0,0 +1,212 @@
[EMC]
VERSION = 1.1
MACHINE = SIM-PENTAPOD
DEBUG = 0
[DISPLAY]
DISPLAY = axis
CYCLE_TIME = 0.200
HELP_FILE = tklinuxcnc.txt
POSITION_OFFSET = MACHINE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 2
PYVCP = panel.xml
GEOMETRY = XYZ-AB
INCREMENTS = 10 mm, 1 mm, 0.1 mm
[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 = pentapod.var
SUBROUTINE_PATH = .
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000
TRAJ_PERIOD = 10000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[HAL]
HALUI = halui
HALFILE = LIB:basic_sim.tcl
HALFILE = kinematics.hal
POSTGUI_HALFILE = pentapod_postgui.hal
[HALUI]
MDI_COMMAND = G53 G0 X0 Y0 Z0 A0 B0
MDI_COMMAND = M6 T1 G43
MDI_COMMAND = G49
[TRAJ]
AXES = 5
COORDINATES = X Y Z A B
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 5.00
DEFAULT_LINEAR_VELOCITY = 50.000000
MAX_LINEAR_VELOCITY = 100.000000
MIN_LINEAR_VELOCITY = 0.100000
DEFAULT_ANGULAR_VELOCITY = 1.000000
MAX_ANGULAR_VELOCITY = 10.000000
MIN_ANGULAR_VELOCITY = 0.100000
POSITION_FILE = position.txt
NO_FORCE_HOMING = 1
[EMCIO]
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
[AXIS_X]
HOME = 0.000
MAX_VELOCITY = 100
MAX_ACCELERATION = 1000
MIN_LIMIT = -250
MAX_LIMIT = 250
[AXIS_Y]
HOME = 0.000
MAX_VELOCITY = 100
MAX_ACCELERATION = 1000
MIN_LIMIT = -250
MAX_LIMIT = 250
[AXIS_Z]
HOME = -0.000
MAX_VELOCITY = 100
MAX_ACCELERATION = 1000
MIN_LIMIT = -250
MAX_LIMIT = 250
[AXIS_A]
HOME = 0.000
MAX_VELOCITY = 20
MAX_ACCELERATION = 50
MIN_LIMIT = -50
MAX_LIMIT = 50
[AXIS_B]
HOME = 0.000
MAX_VELOCITY = 20
MAX_ACCELERATION = 50
MIN_LIMIT = -15
MAX_LIMIT = 15
[KINS]
KINEMATICS = pentakins
JOINTS = 5
[JOINT_0]
TYPE = LINEAR
HOME = 598.5792
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 400.0
MAX_LIMIT = 1500.0
FERROR = 2.000
MIN_FERROR = 0.200
HOME_OFFSET = 598.5792
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 15.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = -1
[JOINT_1]
TYPE = LINEAR
HOME = 697.1982
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 400.0
MAX_LIMIT = 1500.0
FERROR = 2.000
MIN_FERROR = 0.200
HOME_OFFSET = 697.1982
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 15.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = -1
[JOINT_2]
TYPE = LINEAR
HOME = 682.785
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 400.0
MAX_LIMIT = 1500.0
FERROR = 2.000
MIN_FERROR = 0.200
HOME_OFFSET = 682.785
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 15.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = -1
[JOINT_3]
TYPE = LINEAR
HOME = 787.9175
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 400.0
MAX_LIMIT = 1500.0
FERROR = 2.000
MIN_FERROR = 0.200
HOME_OFFSET = 787.9175
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 15.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = -1
[JOINT_4]
TYPE = LINEAR
HOME = 806.0397
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 1000.0
BACKLASH = 0.000
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 400.0
MAX_LIMIT = 1500.0
FERROR = 2.000
MIN_FERROR = 0.200
HOME_OFFSET = 806.0397
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_FINAL_VEL = 15.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = -1

View File

@@ -0,0 +1,15 @@
# This file adds joints values and iterations number to PyVCP panel.
net last-iter pentakins.last-iterations pyvcp.last-iter
net max-iter pentakins.max-iterations pyvcp.max-iter
net j0 pyvcp.joint0
net j1 pyvcp.joint1
net j2 pyvcp.joint2
net j3 pyvcp.joint3
net j4 pyvcp.joint4
net j0 joint.0.pos-fb
net j1 joint.1.pos-fb
net j2 joint.2.pos-fb
net j3 joint.3.pos-fb
net j4 joint.4.pos-fb

View File

@@ -0,0 +1 @@
T1 P1 Z100 C45 W100 ;added 20160605