{ "schema": "linuxcnc.five-axis-machine-catalog/1", "sourceRoot": "linuxcnc", "officialSources": [ { "title": "LinuxCNC 5-Axis Kinematics", "url": "https://linuxcnc.org/docs/html/motion/5-axis-kinematics.html" }, { "title": "LinuxCNC kins(9)", "url": "https://linuxcnc.org/docs/html/man/man9/kins.9.html" }, { "title": "LinuxCNC switchable kinematics", "url": "https://linuxcnc.org/docs/html/motion/switchkins.html" } ], "cases": [ { "id": "xyzac-trt", "label": "XYZAC · 转台倾转(A/C)", "family": "table-rotary-tilting", "machineClass": "five-axis-mill", "coordinates": "XYZAC", "joints": 5, "kinematics": "xyzac-trt-kins", "rtcp": "native", "webWasm": "supported", "description": "A 轴绕 X 倾转,C 轴绕 Z 回转,工件安装在复合转台上。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc", "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini", "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzac.ngc", "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/impeller-7bl-xyzac.ngc", "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzac.ngc" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", "designParameters": ["rotaryPoint", "tiltToRotaryOffset", "toolOffset", "physicalZero"] }, { "id": "xyzbc-trt", "label": "XYZBC · 转台倾转(B/C)", "family": "table-rotary-tilting", "machineClass": "five-axis-mill", "coordinates": "XYZBC", "joints": 5, "kinematics": "xyzbc-trt-kins", "rtcp": "native", "webWasm": "supported", "description": "B 轴绕 Y 倾转,C 轴绕 Z 回转,适合 BC 类转台或相应摆头结构。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc", "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc", "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzbc.ngc" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c", "designParameters": ["rotaryPoint", "tiltToRotaryOffset", "toolOffset", "physicalZero"] }, { "id": "xyzab-tdr", "label": "XYZAB · 双转台(A/B)", "family": "table-dual-rotary", "machineClass": "five-axis-mill", "coordinates": "XYZAB", "joints": 5, "kinematics": "xyzab_tdr_kins", "rtcp": "native-linuxcnc", "webWasm": "adapter-required", "description": "A/B 两个转轴组成双转台,源码案例包含旋转点、X/Z 偏置和 TCP 演示。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc", "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini", "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini" ], "kinematicsSource": "linuxcnc/src/hal/components/xyzab_tdr_kins.comp", "designParameters": ["xRotPoint", "yRotPoint", "zRotPoint", "xOffset", "zOffset", "toolOffset", "physicalZero"] }, { "id": "bridge-mill-5axiskins", "label": "Bridge Mill · 5axiskins(XYZBCW/Y)", "family": "bridge-mill", "machineClass": "five-axis-mill-with-extra-coordinate", "coordinates": "XYZBCWY", "joints": 7, "kinematics": "5axiskins", "rtcp": "native-linuxcnc", "webWasm": "adapter-required", "description": "桥式五轴机床,B/C 为姿态轴,W 为刀具方向运动;示例还演示 Y 轴双关节。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.ngc", "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/5axiskins.c", "designParameters": ["jointCoordinateMap", "duplicateAxisMap", "toolDirectionAxis", "toolOffset", "physicalZero"] }, { "id": "max5-maxkins", "label": "MAX5 · maxkins(XYZBC)", "family": "table-and-head-rotary", "machineClass": "five-axis-mill", "coordinates": "XYZBC", "joints": 6, "kinematics": "maxkins", "rtcp": "native-linuxcnc", "webWasm": "adapter-required", "description": "LinuxCNC 的 MAX5 非恒等五轴案例;同时提供 trivkins 对照配置,适合验证坐标映射。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini", "linuxcnc/configs/sim/axis/vismach/5axis/max5/README", "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/maxkins.c", "designParameters": ["rotaryAxisOrder", "rotaryCenters", "uvwTransform", "toolOffset", "physicalZero"] }, { "id": "hexapod-genhexkins", "label": "Hexapod · genhexkins(Stewart 平台)", "family": "parallel-platform", "machineClass": "six-dof-rtcp-capable", "coordinates": "XYZABC", "joints": 6, "kinematics": "genhexkins", "rtcp": "native-linuxcnc", "webWasm": "adapter-required", "description": "六支链并联平台,具有 XYZABC 六自由度;它是五轴 CAM/RTCP 可覆盖的六自由度机型。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", "linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal", "linuxcnc/configs/sim/axis/vismach/hexapod-sim/README", "linuxcnc/src/emc/kinematics/genhexkins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/genhexkins.c", "designParameters": ["baseJointPoints", "platformJointPoints", "spindleOffset", "screwLead", "iterationLimits", "physicalZero"] }, { "id": "pentapod-pentakins", "label": "Pentapod · pentakins(五支链平台)", "family": "parallel-platform", "machineClass": "five-axis-parallel", "coordinates": "XYZAB", "joints": 5, "kinematics": "pentakins", "rtcp": "native-linuxcnc", "webWasm": "adapter-required", "description": "五支链并联平台,LinuxCNC 源码提供 base/effector 几何参数和迭代求解案例。", "localCases": [ "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", "linuxcnc/configs/sim/axis/pentapod/kinematics.hal", "linuxcnc/configs/sim/axis/pentapod/README", "linuxcnc/src/emc/kinematics/pentakins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/pentakins.c", "designParameters": ["baseJointPoints", "effectorGeometry", "toolOffset", "convergenceCriterion", "physicalZero"] }, { "id": "puma-pumakins", "label": "PUMA · pumakins(串联机器人)", "family": "serial-robot", "machineClass": "six-axis-robot", "coordinates": "XYZABC", "joints": 6, "kinematics": "pumakins", "rtcp": "robot-tool-center-point", "webWasm": "adapter-required", "description": "PUMA 型六关节串联机器人;可承载五轴刀具姿态任务,但不是五关节铣床拓扑。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini", "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc", "linuxcnc/src/emc/kinematics/pumakins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/pumakins.c", "designParameters": ["A2", "A3", "D3", "D4", "toolOffset", "physicalZero"] }, { "id": "puma-genserkins", "label": "PUMA 560 · genserkins(DH 串联)", "family": "serial-robot", "machineClass": "six-axis-robot", "coordinates": "XYZABC", "joints": 6, "kinematics": "genserkins", "rtcp": "robot-tool-center-point", "webWasm": "adapter-required", "description": "PUMA 560 的通用串联运动学案例,用 DH 参数描述各关节。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini", "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", "linuxcnc/src/emc/kinematics/genserkins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/genserkins.c", "designParameters": ["DHParameters", "jointLimits", "toolOffset", "physicalZero"] }, { "id": "trivkins-xyzab", "label": "XYZAB · trivkins(直角坐标映射基线)", "family": "identity-baseline", "machineClass": "five-axis-linear-or-rotary", "coordinates": "XYZAB", "joints": 5, "kinematics": "trivkins", "rtcp": "none", "webWasm": "identity-only", "description": "五轴一一对应的基线案例,用于校验 GLB 关节树和坐标映射;本身不提供非线性 RTCP。", "localCases": [ "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini", "linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini", "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini", "linuxcnc/src/emc/kinematics/trivkins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/trivkins.c", "designParameters": ["coordinateOrder", "duplicateAxisMap", "physicalZero"] }, { "id": "trivkins-xyzcw", "label": "XYZCW · trivkins(C/W 直角坐标基线)", "family": "identity-baseline", "machineClass": "five-axis-linear-or-rotary", "coordinates": "XYZCW", "joints": 5, "kinematics": "trivkins", "rtcp": "none", "webWasm": "identity-only", "description": "以 C 回转和 W 刀具方向坐标组成的五坐标基线,用于验证非标准字母顺序和显示映射。", "localCases": [ "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini", "linuxcnc/src/emc/kinematics/trivkins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/trivkins.c", "designParameters": ["coordinateOrder", "toolDirectionAxis", "physicalZero"] }, { "id": "trivkins-xyzya", "label": "XYZYA · trivkins(双 Y/旋转 A 基线)", "family": "identity-gantry-rotary", "machineClass": "five-axis-linear-or-rotary", "coordinates": "XYZYA", "joints": 5, "kinematics": "trivkins", "rtcp": "none", "webWasm": "identity-only", "description": "XYZYA 五坐标示例,包含 Y 轴与旋转 A 轴的自定义轴序,用于验证重复/非标准轴映射。", "localCases": [ "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini", "linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini", "linuxcnc/src/emc/kinematics/trivkins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/trivkins.c", "designParameters": ["coordinateOrder", "duplicateAxisMap", "physicalZero"] }, { "id": "scorbot-kins", "label": "SCORBOT · scorbot-kins(五关节串联)", "family": "serial-robot", "machineClass": "five-joint-robot", "coordinates": "XYZAB", "joints": 5, "kinematics": "scorbot-kins", "rtcp": "robot-tool-center-point", "webWasm": "adapter-required", "description": "LinuxCNC 源码附带的五关节 SCORBOT 配置候选,属于机器人运动学,不应按五轴铣床 TRT 处理。", "localCases": [ "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", "linuxcnc/src/emc/kinematics/scorbot-kins.c" ], "kinematicsSource": "linuxcnc/src/emc/kinematics/scorbot-kins.c", "designParameters": ["robotLinkParameters", "jointLimits", "toolOffset", "physicalZero"] } ] }