Skip to content

Repository files navigation

PlasmaCut-bCNC

Versión en español

Author and maintainer: Hanzel Grillo E.
PlasmaCut stable version: 0.11.0
PlasmaCut SVG Preflight: 0.1.0
License: GNU GPL v2.0 only (GPL-2.0-only)

PlasmaCut-bCNC is an independent third-party CAM workflow for CNC plasma cutting with bCNC + GRBL. It combines geometry preparation, kerf compensation, nesting-aware cut order, tangential lead-in, floating-head probing, Surface Map, Dynamic Z and persistent Cut Memory recovery.

This is machine-control software. Validate generated G-code with the plasma source OFF after machine/process changes and keep the operator at the machine during production. Dynamic Z is not an arc-voltage THC.

What is included

  • PlasmaCut.py - stable bCNC plug-in, version 0.11.0.
  • tools/PlasmaCutSVG.py - standalone SVG Preflight utility, version 0.1.0.
  • tools/install_PlasmaCutSVG.sh - Linux desktop installer for SVG Preflight.
  • tests/ - Cut Memory/state-machine, broad geometry/process and SVG Preflight tests.
  • docs/ - user manual, validation record, test matrix and release notes.
  • examples/preflight_demo.svg - synthetic compound-path example for SVG Preflight.

Stable artifact identity

PlasmaCut.py:

SHA-256: 8d9be7162dd23bc42b9314b2b0494caf055ecc71cb79c93d797d05ea4b6cddb9

tools/PlasmaCutSVG.py:

SHA-256: 2d709c66664fefb4a10f549695d18f7927e369d08ca7e9a57511ee0f0b8fc540

The public 0.11.0 source differs from the physically accepted audit candidate only by release metadata, authorship/license declarations and user-visible documentation strings. Machine-control functions remain regression-equivalent to the validated implementation.

Validated environment

  • bCNC 0.9.16
  • Python 3.10
  • GRBL 1.1-style controller workflow
  • X/Y/Z plasma table
  • floating-head probing

Core workflow

SVG
  |
  +--> [optional] PlasmaCut SVG Preflight
  |        - split compound paths
  |        - flatten curves at controlled tolerance
  |        - fail closed on unsupported/open visible geometry
  |
  v
bCNC import
  |
  v
PlasmaCut
  - nesting / INSIDE-OUTSIDE
  - native bCNC Profile kerf compensation
  - tangential lead-in
  - G38.2 local probing
  - optional Surface Map + Dynamic Z
  - preflight validation
  - Cut Memory / RESUME
  |
  v
GRBL / CNC plasma

PlasmaCut installation

Close bCNC first.

cp PlasmaCut.py   ~/.local/lib/python3.10/site-packages/bCNC/plugins/PlasmaCut.py

chmod 644   ~/.local/lib/python3.10/site-packages/bCNC/plugins/PlasmaCut.py

python3 -m py_compile   ~/.local/lib/python3.10/site-packages/bCNC/plugins/PlasmaCut.py

Verify:

sha256sum   ~/.local/lib/python3.10/site-packages/bCNC/plugins/PlasmaCut.py

Expected:

8d9be7162dd23bc42b9314b2b0494caf055ecc71cb79c93d797d05ea4b6cddb9

PlasmaCut SVG Preflight installation

chmod +x tools/install_PlasmaCutSVG.sh
bash tools/install_PlasmaCutSVG.sh

Then launch from the desktop or run:

plasmacut-svg

Default flattening tolerance is 0.05 mm.

Cut Memory

During a monitored PlasmaCut or RESUME job, protected Stop and Pause use the same irreversible safe-interruption workflow:

feed hold
-> stationary Hold:0
-> torch OFF
-> purge interrupted stream
-> safe Z
-> automatic original X0/Y0 park when coordinate continuity is trusted
-> create RESUME
-> Idle

Recovery never auto-starts. The operator explicitly uses normal bCNC Start or DISCARD RECOVERY. A recovered cutting path must obtain a fresh G38.2 reference before the next M3.

Loss of controller/application/power continuity invalidates automatic XY trust; the original physical X0/Y0 must be restored manually before recovery.

Surface Map and Dynamic Z

Surface Map performs a probing grid before production. SHOW MAP QUALITY evaluates:

  • map completeness/finiteness;
  • global Z span;
  • worst neighbor Z jump;
  • worst local slope;
  • worst isolated-point residual.

Dynamic Z is relative to the latest real probe:

Zcmd(x,y) = CutHeight + [MapZ(x,y) - MapZ(reference XY)]

It is intended for pre-existing, relatively stable sheet shape and is not a continuous arc-voltage THC.

Validation

Automated release validation:

  • Cut Memory/state machine: 37 tests
  • broad geometry/process regression: 21 tests
  • SVG Preflight: 12 tests

The original physically accepted release line also completed multiple plasma-OFF machine regressions and live-plasma cuts.

Principal long-job acceptance case:

  • 192 closed contours;
  • 415.000 x 807.565 mm artwork envelope;
  • 7 x 12 Surface Map = 84 points;
  • measured Z span: 6.470 mm;
  • Dynamic Z ON;
  • Cut Memory ON;
  • approximately 1 h 13 min monitored production;
  • 10,635 GRBL acknowledgements;
  • 0 reported GRBL errors.

The proprietary/ownership status of the ornamental artwork used in that acceptance case was not established for redistribution, so the artwork itself is intentionally not included in this public repository.

See docs/VALIDATION.md and docs/TEST_MATRIX.md.

Testing locally

Python 3.10 is the validated CI target.

python3 -m py_compile PlasmaCut.py tools/PlasmaCutSVG.py

PLASMACUT_EXPECT_A06_FIXED=1 python3 -m unittest -v tests/test_cut_memory_state_machine.py

python3 -m unittest -v tests/test_broad_regression.py

python3 -m unittest -v tests/test_PlasmaCutSVG.py

Documentation

Safety/security reports

See SECURITY.md. For issues that could cause unintended motion, unexpected torch activation, unsafe recovery or loss of coordinate trust, use GitHub private vulnerability reporting when enabled instead of publishing operational details first.

Contributing

See CONTRIBUTING.md. Machine-control changes require reproducible regression evidence and plasma-OFF validation before live acceptance.

License

Copyright (C) 2026 Hanzel Grillo E.

PlasmaCut and PlasmaCut SVG Preflight are licensed under the GNU General Public License, version 2 only (GPL-2.0-only).

See LICENSE.

Attribution

PlasmaCut-bCNC is an independent third-party project. It integrates with bCNC but is not an official bCNC component. See NOTICE.md.

About

Third-party CNC plasma CAM workflow for bCNC: kerf, nesting, probing, Surface Map, Dynamic Z, Cut Memory recovery and SVG Preflight.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages