4.5 KiB
name, description
| name | description |
|---|---|
| linuxcnc-axis-manual-execution | Run and validate LinuxCNC G-code through the AXIS graphical interface in the repository's isolated simulation workflow. Use when a manual UI execution, DRO movement check, or desktop shortcut needs to be reproduced; do not use this as permission to drive physical hardware. |
Linuxcnc Axis Manual Execution
Use this skill for the repository's manual AXIS simulation workflow. The default target is the 3-axis tutorial configuration and linuxcnc/nc_files/3dtest.ngc.
Scope and Safety
- Treat this workflow as simulation-only. Do not connect it to or operate a physical machine unless the user separately authorizes that and the hardware configuration, limits, and emergency controls have been verified.
- A program is not considered executed merely because AXIS opened it or switched to AUTO. Require visible DRO/coordinate movement and a normal interpreter completion at
M2. - Stop and report the first real LinuxCNC error. Debug/text messages are not motion errors by themselves.
Repository Entrypoints
- Manual launcher:
scripts/launch_axis_3dtest_manual.sh - Desktop shortcut:
/home/mes006/Desktop/3axis-tutorial.desktop - Source program:
linuxcnc/nc_files/3dtest.ngc - Source AXIS model/configuration:
linuxcnc/configs/sim/axis/vismach/3axis-tutorial
The launcher copies the model/configuration into a temporary runtime directory, sets AXIS_OPEN_FILE to the source program, points PROGRAM_PREFIX at linuxcnc/nc_files, enables the AXIS homing prompt, and raises the temporary Z positive limit to 100 mm. The source .ngc, .ini, variable, and position files must remain unchanged.
Before every startup and again after LinuxCNC exits, the launcher closes any existing LinuxCNC simulation by attempting axis-remote --quit, halcmd stop, halcmd unload all, and realtime stop; it then terminates matching LinuxCNC/AXIS service processes, waits for them to exit, and removes /tmp/linuxcnc.lock only when no matching service remains. The input-method daemon is not stopped: immediately before startup, IBus is switched to the English xkb:us::eng engine, English is made the first input source, and the X keyboard layout is set to us, so AXIS shortcuts are not intercepted while Chinese input remains available for later use. Cleanup output is printed so stale-session failures remain visible.
Manual UI Procedure
- Start the launcher directly or open the desktop shortcut. Wait for an AXIS window whose title contains
3dtest.ngcand3axis-tutorial. - Reset E-stop with the red E-stop control (AXIS
F1), then turn machine power on (AXISF2). Accept the homing prompt if it appears. - Ensure all three axes are homed. If the prompt is absent, select X, Y, and Z in the Manual Control panel and click
Home Axisfor each, or use AXISMachine -> Home All/Ctrl+Home. Homing only X is insufficient: AXIS can enter AUTO while refusing to move. - Click the AXIS Run toolbar button (blue play icon) or press
r. Do not use the LinuxCNC Python command API as a substitute when the request is specifically for a manual UI test. - Watch the DRO and program highlight. Success requires
motion_line/highlight progress, actual X/Y/Z values changing, and the interpreter returning to idle at the program'sM2. UseEscto stop an unexpected run. - Close AXIS after the test. The launcher removes its temporary runtime directory when LinuxCNC exits.
Verification Evidence
Record at least:
- AXIS window title and selected source path.
- State transitions: E-stop reset, machine ON, all homed, AUTO/RUNNING.
- Initial and final DRO coordinates plus evidence that coordinates changed during motion.
- Final motion/current line and interpreter idle state.
- Any
NML_ERROR/RCS_ERRORtext; do not classify(DEBUG,...)messages as errors.
For 3dtest.ngc, the expected geometry reaches roughly 56 mm on each XYZ coordinate after the G20 inch-to-mm conversion. The unmodified tutorial configuration has a Z positive limit of 0.001 mm, so use the launcher-managed temporary configuration rather than launching the base INI directly.
Known Program Pitfalls
nestedcall.ngccurrently containsO<g20sub> callsub, which the installed LinuxCNC interpreter reports asUnexpected character after O-word; do not use it as a passing baseline without an explicit source-level compatibility decision.- A loaded file with
task_mode=AUTObuthomed=[1,0,0]is not a successful run. Home Y and Z before diagnosing G-code behavior.