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.
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.
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.
- bCNC 0.9.16
- Python 3.10
- GRBL 1.1-style controller workflow
- X/Y/Z plasma table
- floating-head probing
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
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.pyVerify:
sha256sum ~/.local/lib/python3.10/site-packages/bCNC/plugins/PlasmaCut.pyExpected:
8d9be7162dd23bc42b9314b2b0494caf055ecc71cb79c93d797d05ea4b6cddb9
chmod +x tools/install_PlasmaCutSVG.sh
bash tools/install_PlasmaCutSVG.shThen launch from the desktop or run:
plasmacut-svgDefault flattening tolerance is 0.05 mm.
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 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.
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.
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.pySee 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.
See CONTRIBUTING.md. Machine-control changes require reproducible
regression evidence and plasma-OFF validation before live acceptance.
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.
PlasmaCut-bCNC is an independent third-party project. It integrates with bCNC but is
not an official bCNC component. See NOTICE.md.