补齐 gmoccapy TRT 示例程序对标验证

This commit is contained in:
2026-07-01 17:31:40 -04:00
parent 9803aadf0a
commit 3b01c4e428
5 changed files with 1196 additions and 6 deletions

View File

@@ -0,0 +1,162 @@
import { xyzacTrtProfile } from "./xyzac-trt.js";
import { getSourceReferencesForProfile } from "./source-reference-map.js";
const sourceReferenceObjects = getSourceReferencesForProfile("gmoccapy-xyzac-trt");
export const gmoccapyXyzacTrtProfile = {
...xyzacTrtProfile,
id: "gmoccapy-xyzac-trt",
title: "gmoccapy XYZAC table rotary tilting",
iniPath: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini",
pyvcpXmlPath: null,
postguiHalPath: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal",
generatedHalPath: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt_cmds.hal",
toolTablePath: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl",
machineName: "sim-xyzac-trt",
display: {
geometry: "XYZ-A",
display: "gmoccapy",
jogAxes: ["X", "Y", "Z", "C"],
openFile: "./examples/impeller-7bl-xyzac.ngc",
programPrefix: "../../../nc_files",
positionOffset: "RELATIVE",
positionFeedback: "ACTUAL",
maxFeedOverride: 2,
},
rs274ngc: {
subroutinePath: "./examples:../../macros",
halPinVars: false,
parameterFile: "xyzac.var",
},
kinematics: "xyzac-trt-kins",
kinematicsModuleId: "xyzac-trt",
kinematicsParameters: {
sparm: null,
defaultSwitchkinsType: 0,
fixedTrtDefault: true,
switchkinsTypes: [
{ value: 0, label: "XYZAC fixed TRT", mdiCommand: null, webKinsType: "tcp-xyzac" },
{ value: 1, label: "identity", mdiCommand: null, webKinsType: "identity" },
{ value: 2, label: "USERK", mdiCommand: null, webKinsType: "userk" },
],
},
remaps: [
{
code: "M6",
modalGroup: 6,
prolog: "change_prolog",
ngc: "change_g43",
epilog: "change_epilog",
path: "configs/sim/gmoccapy/macros/change_g43.ngc",
boundary: "linuxcnc_gmoccapy_tool_change_remap_reference",
},
{
code: "M61",
modalGroup: 6,
prolog: "settool_prolog",
ngc: "settool_g43",
epilog: "settool_epilog",
path: "configs/sim/gmoccapy/macros/settool_g43.ngc",
boundary: "linuxcnc_gmoccapy_tool_set_remap_reference",
},
],
hal: {
halui: true,
halFiles: ["LIB:basic_sim.tcl -no_use_hal_manualtoolchange"],
postguiHalFiles: ["postgui.hal"],
postguiRequiresHalcompReady: true,
halcmd: {
loadusr: ["xyzac-trt-gui"],
feedbackNets: [
{ signal: "table-x", source: "joint.0.pos-fb", target: "xyzac-trt-gui.table-x" },
{ signal: "saddle-y", source: "joint.1.pos-fb", target: "xyzac-trt-gui.saddle-y" },
{ signal: "spindle-z", source: "joint.2.pos-fb", target: "xyzac-trt-gui.spindle-z" },
{ signal: "tilt-a", source: "joint.3.pos-fb", target: "xyzac-trt-gui.tilt-a" },
{ signal: "rotate-c", source: "joint.4.pos-fb", target: "xyzac-trt-gui.rotate-c" },
],
offsetNets: [
{ signal: "tool-offset", source: "motion.tooloffset.z", target: "xyzac-trt-kins.tool-offset" },
{ signal: "tool-offset", source: "xyzac-trt-kins.tool-offset", target: "xyzac-trt-gui.tool-offset" },
{ signal: "y-offset", source: "xyzac-trt-kins.y-offset", target: "xyzac-trt-gui.y-offset" },
{ signal: "z-offset", source: "xyzac-trt-kins.z-offset", target: "xyzac-trt-gui.z-offset" },
{ signal: "tool-offset", source: "motion.tooloffset.z", target: "gmoccapy.tooloffset-z" },
],
spindleFeedback: [
{ signal: "spindle-speed-limited", source: "spindle-speed-limited", target: "abs_spindle_feedback.in" },
{ signal: "spindle-abs", source: "abs_spindle_feedback.out", target: "gmoccapy.spindle_feedback_bar" },
{ signal: "spindle-at-speed", source: "spindle-at-speed", target: "gmoccapy.spindle_at_speed_led" },
],
toolChange: {
strategy: "gmoccapy-postgui-manual-toolchange",
manualGmoccapyPinsConnected: true,
postguiUnlinks: [
"iocontrol.0.tool-change",
"iocontrol.0.tool-changed",
],
activeLoop: {
signal: "tool-changed",
source: "gmoccapy.toolchange-changed",
target: "iocontrol.0.tool-changed",
stage: "postgui.hal",
},
},
initialSets: [
{ pin: "y-offset", value: 20 },
{ pin: "z-offset", value: 10 },
],
},
},
halui: {
mdiCommands: [],
},
halPins: [
"motion.tooloffset.z",
"xyzac-trt-kins.tool-offset",
"xyzac-trt-kins.y-offset",
"xyzac-trt-kins.z-offset",
"gmoccapy.spindle_feedback_bar",
"gmoccapy.spindle_at_speed_led",
"gmoccapy.toolchange-change",
"gmoccapy.toolchange-changed",
"gmoccapy.toolchange-number",
"gmoccapy.tooloffset-z",
],
offsets: {
y: 20,
z: 10,
xRotPoint: 0,
yRotPoint: 0,
zRotPoint: 0,
conventionalDirections: 0,
},
nativeRuntime: {
linuxcncsvr: true,
task: "milltask",
emcmot: "motmod",
halui: "halui",
display: "gmoccapy -ini",
taskCycleTimeSeconds: 0.010,
servoPeriodNs: 1000000,
nmlChannels: ["emcCommand", "emcStatus", "emcError"],
},
machineFileStaging: {
machineRel: "gmoccapy/non_trivial_kinematics/table-rotary-tilting",
demoDirectory: "examples",
defaultProgramFilename: "impeller-7bl-xyzac.ngc",
wasmDir: "/work/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/gmoccapy-xyzac-trt",
},
sourceReferences: sourceReferenceObjects.map((reference) => reference.path),
sourceReferenceObjects,
samplePrograms: [
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/impeller-7bl-xyzac.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzac.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzbc.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzac.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc",
],
semanticBoundary: "linuxcnc_gmoccapy_nontrivial_xyzac_trt_profile_source_map",
linuxCncKinematicsReady: false,
tcpCapable: true,
rtcpProof: true,
promotionAllowed: false,
};

View File

@@ -217,15 +217,23 @@ export const linuxCncSourceReferenceMap = [
},
{
id: "gmoccapy-trt-xyzac-ini",
profileId: "xyzac-trt",
profileId: "gmoccapy-xyzac-trt",
kind: "ini",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini",
boundary: "linuxcnc_gmoccapy_config_reference",
usage: "gmoccapy non-trivial XYZAC TRT machine config using DISPLAY=gmoccapy and xyzac-trt-gui",
},
{
id: "gmoccapy-trt-xyzac-generated-hal",
profileId: "gmoccapy-xyzac-trt",
kind: "generated_hal",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt_cmds.hal",
boundary: "generated_hal_reference",
usage: "basic_sim generated loadrt/net proof for the gmoccapy XYZAC TRT machine",
},
{
id: "gmoccapy-trt-xyzac-postgui",
profileId: "xyzac-trt",
profileId: "gmoccapy-xyzac-trt",
kind: "postgui_hal",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal",
boundary: "linuxcnc_gmoccapy_hal_reference",
@@ -233,15 +241,39 @@ export const linuxCncSourceReferenceMap = [
},
{
id: "gmoccapy-trt-xyzac-table",
profileId: "xyzac-trt",
profileId: "gmoccapy-xyzac-trt",
kind: "tool_table",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl",
boundary: "linuxcnc_gmoccapy_config_reference",
usage: "gmoccapy non-trivial TRT tool table source",
},
{
id: "gmoccapy-trt-xyzac-var",
profileId: "gmoccapy-xyzac-trt",
kind: "parameter_file",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac.var",
boundary: "linuxcnc_gmoccapy_config_reference",
usage: "gmoccapy TRT parameter file staged with the machine project",
},
{
id: "gmoccapy-trt-change-g43",
profileId: "gmoccapy-xyzac-trt",
kind: "remap_subroutine",
path: "configs/sim/gmoccapy/macros/change_g43.ngc",
boundary: "linuxcnc_gmoccapy_tool_remap_reference",
usage: "M6 change_g43 remap used by the gmoccapy TRT INI",
},
{
id: "gmoccapy-trt-settool-g43",
profileId: "gmoccapy-xyzac-trt",
kind: "remap_subroutine",
path: "configs/sim/gmoccapy/macros/settool_g43.ngc",
boundary: "linuxcnc_gmoccapy_tool_remap_reference",
usage: "M61 settool_g43 remap used by the gmoccapy TRT INI",
},
{
id: "gmoccapy-trt-impeller-demo",
profileId: "xyzac-trt",
profileId: "gmoccapy-xyzac-trt",
kind: "gcode_demo",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/impeller-7bl-xyzac.ngc",
boundary: "linuxcnc_gmoccapy_program_reference",
@@ -249,7 +281,7 @@ export const linuxCncSourceReferenceMap = [
},
{
id: "gmoccapy-trt-boat-xyzac-demo",
profileId: "xyzac-trt",
profileId: "gmoccapy-xyzac-trt",
kind: "gcode_demo",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzac.ngc",
boundary: "linuxcnc_gmoccapy_program_reference",
@@ -257,12 +289,44 @@ export const linuxCncSourceReferenceMap = [
},
{
id: "gmoccapy-trt-boat-xyzbc-demo",
profileId: "xyzbc-trt",
profileId: "gmoccapy-xyzac-trt",
kind: "gcode_demo",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzbc.ngc",
boundary: "linuxcnc_gmoccapy_program_reference",
usage: "gmoccapy non-trivial TRT XYZBC boat example program",
},
{
id: "gmoccapy-trt-test-xyzac-ngcgui",
profileId: "gmoccapy-xyzac-trt",
kind: "gcode_ngcgui_subroutine",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzac.ngc",
boundary: "linuxcnc_gmoccapy_ngcgui_subroutine_reference",
usage: "gmoccapy non-trivial TRT XYZAC ngcgui subroutine example staged with the profile",
},
{
id: "gmoccapy-trt-test-xyzbc-ngcgui",
profileId: "gmoccapy-xyzac-trt",
kind: "gcode_ngcgui_subroutine",
path: "configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc",
boundary: "linuxcnc_gmoccapy_ngcgui_subroutine_reference",
usage: "gmoccapy non-trivial TRT XYZBC ngcgui subroutine example staged with the profile",
},
{
id: "gmoccapy-trt-xyzac-kins",
profileId: "gmoccapy-xyzac-trt",
kind: "kinematics_source",
path: "src/emc/kinematics/xyzac-trt-kins.c",
boundary: "linuxcnc_source_required",
usage: "source-derived XYZAC TRT kinematics backing the gmoccapy non-trivial sample",
},
{
id: "gmoccapy-trt-trtfuncs",
profileId: "gmoccapy-xyzac-trt",
kind: "kinematics_source",
path: "src/emc/kinematics/trtfuncs.c",
boundary: "linuxcnc_source_required",
usage: "shared table-rotary-tilting kinematics functions",
},
{
id: "gmoccapy-xyzab-ini",
profileId: "gmoccapy-xyzab",

View File

@@ -107,12 +107,15 @@ export const LINUXCNC_PARITY_ITEMS = [
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/impeller-7bl-xyzac.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzac.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzbc.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzac.ngc",
"configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc",
],
functions: [
"DISPLAY gmoccapy",
"POSTGUI spindle/tool HAL bindings",
"xyzac-trt-gui vismach feedback pins",
"gmoccapy TRT example programs",
"gmoccapy TRT ngcgui subroutine examples",
],
},
{