From 9fd23192dd9673a6c2bd3ce2010ce8d355e6aad4 Mon Sep 17 00:00:00 2001 From: cnc Date: Thu, 4 Jun 2026 19:15:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=80=83=E6=89=80=E6=9C=89=E5=88=86?= =?UTF-8?q?=E7=BB=84=EF=BC=8C=E5=AE=8C=E6=88=90=E5=B0=BD=E9=87=8F=E5=A4=9A?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=E3=80=82=E7=A6=81=E6=AD=A2=E9=A1=BA?= =?UTF-8?q?=E6=89=8B=E6=89=A9=E5=8A=9F=E8=83=BD=20smoke=EF=BC=9A=E9=94=81?= =?UTF-8?q?=E5=AE=9Akinematics=E6=BA=90=E7=A0=81=E9=94=9A=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check-linuxcnc-kinematics-source-map.sh | 19 +++++++++++++++++++ docs/linuxcnc-kinematics-source-map.md | 12 ++++++++++++ 2 files changed, 31 insertions(+) diff --git a/check-linuxcnc-kinematics-source-map.sh b/check-linuxcnc-kinematics-source-map.sh index e42de90..8e2eeac 100755 --- a/check-linuxcnc-kinematics-source-map.sh +++ b/check-linuxcnc-kinematics-source-map.sh @@ -8,6 +8,20 @@ cd "$(dirname "$0")" # kinematics, posemath, switchkins INI/HAL/remap/tooldata/assets, and adjacent # build metadata. It validates source coverage documentation only; it does not # add or interpret CNC behavior. +linuxcnc_root=${LINUXCNC_ROOT:-../linuxcnc} +linuxcnc_root=$(cd "$linuxcnc_root" && pwd) + +grep -F 'GENSERKINSSRCS := emc/kinematics/ugenserkins.c' \ + "$linuxcnc_root/src/emc/kinematics/Submakefile" >/dev/null +grep -F 'extern int kinematicsInverse(const struct EmcPose * world,' \ + "$linuxcnc_root/src/emc/kinematics/kinematics.h" >/dev/null +grep -F 'extern int kinematicsSwitch(int switchkins_type);' \ + "$linuxcnc_root/src/emc/kinematics/kinematics.h" >/dev/null +grep -F 'motion.switchkins-type' \ + "$linuxcnc_root/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" >/dev/null +grep -F '#' \ + "$linuxcnc_root/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc" >/dev/null + python3 - <<'PY' from pathlib import Path import re @@ -49,6 +63,11 @@ for group in expected_groups: ) required_phrases = [ + "LinuxCNC Source Anchors", + "`src/emc/kinematics/Submakefile`", + "`src/emc/kinematics/kinematics.h`", + "motion.switchkins-type", + "`#` remap assignment", "not browser API surface", "OPFS-only", "derive M428/M429/M430 cases from", diff --git a/docs/linuxcnc-kinematics-source-map.md b/docs/linuxcnc-kinematics-source-map.md index 9019864..5e18304 100644 --- a/docs/linuxcnc-kinematics-source-map.md +++ b/docs/linuxcnc-kinematics-source-map.md @@ -22,6 +22,18 @@ groups: | `asset` | 122 | LinuxCNC INI-adjacent HAL, README, GUI, demo, PYVCP, and other source assets. | | `tooldata` | 10 | LinuxCNC tool table files referenced by covered M428/M429/M430 INI files. | +## LinuxCNC Source Anchors + +- `src/emc/kinematics/Submakefile` defines the kinematics build source surface, + including `GENSERKINSSRCS`. +- `src/emc/kinematics/kinematics.h` declares `kinematicsInverse()` and + `kinematicsSwitch()` for switchkins-capable modules. +- `configs/sim/axis/vismach/5axis/bridgemill/5axis.ini` wires + `motion.switchkins-type` and representative M428/M429/M430 switchkins + configuration. +- `configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc` + provides a representative `#` remap assignment. + ## Boundaries - `asset`, `metadata`, `header`, and `tooldata` entries are source coverage,