Skip to content

IridiumIO/PolyCut

Repository files navigation

GitHub Downloads (all assets, all releases) GitHub Release

Use your 3D Printer as a plotter / vinyl cutter. If you've already got a 3D Printer, you shouldn't need to buy a separate Cricut or Silhouette machine.

Polycut is a tool designed to import SVG files and convert them to 2D GCode to run on 3D Printers, CNCs or any other Gcode machines that have blades/pens/knives/foil tools attached. It also directly supports uploading to a networked 3D Printer via Moonraker/Klipper.

 

NewMainUI

NewPreviewUI

 

Installation

Static Badge

Features

Drawing Canvas:

  • Import multiple SVGs, arrange and scale them on the canvas
    • SVG groups / layers are preserved on import, including clipped geometries
  • While I strongly recommend using Inkscape to design your SVGs exactly as you want and then use Polycut as a machine path generator, basic transformation support is available in Polycut.
    • Copy/Cut/Paste support
    • Boolean operations (Union, Subtract, Intersect, Exclude)
    • Mirror/Flip objects (handy for using heat-transfer vinyl)
    • Editing Stroke/Fill colour
    • Resize/rotate/move
  • Basic shapes (line, ellipse, rectangle, path) can be drawn directly on the canvas

Tool Modes:

  • Cutting mode - Generates optimised outline paths for a drag knife or cutter (e.g. Roland Vinyl Cutter, or cricut/silhouette blades).
    • Configurable swivel offsets that account for the blade diameter to ensure sharp corners remain sharp
    • Tracks the blade orientation when moving between cut lines to optimise and avoid tearing / scratching
  • Drawing mode - generate paths and fills using a variety of fill patterns:
    • Hatch, Crosshatch, Spiral, Triangular Hatch, Diamond Crosshatch, and Radial fills
  • Multipass — repeat cutting or drawing passes N times, stepping down in Z between each pass; useful for thicker materials that need multiple light passes rather than a single deep cut
  • Foiling / Engraving / Embossing / Etching - Each can easily be done using configurable settings of the above modes

Saved Projects:

  • Save and reload working projects to/from disk, preserving all canvas shapes and properties.
  • Allows exporting the canvas to SVG as well

Printer/Machine Configuration:

  • Add and manage multiple printers (or any GCode supporting machine really) with independent profiles
  • Per-printer Custom Start / End GCode
  • Per-printer Tool X / Y Offsets to compensate for toolhead mounting offsets
  • Klipper bounding box preview - Send a dry-run rectangle pass to the Klipper before actually cutting, so you can confirm the material is aligned properly before actually cutting/drawing

Preview

  • A full 2D animated render of toolpaths including travel/active line discrimination, showing the order processing will occur
  • Detailed controls for Pause, Resume, Step Forward, Step Back in the preview animation
  • GCode preview shows estimated time and total drawing/cutting length (also exported to Klipper if you use it)

Export

  • Save to GCode file, or
  • Send to a networked 3D printer using Klipper/Moonraker
    • Option to auto-start running the file after upload
    • Klipper Bounding Box Preview export — runs a travel-only rectangle so you can verify alignment before committing to a cut

Monitor

  • Simply takes the provided URL from the export tab and renders the webpage; handy for monitoring Klipper from within the app rather than opening a separate browser

Generators:

There are two generators currently included with Polycut; Polycut.Core and GCodePlot

  • Polycut.Core: Created for Polycut from the ground up, and incorporates a lot of performance and quality tweaks.
  • GCodePlot: Created by @arpruss, with a few tweaks by myself that haven't made it into the base repository yet. This is a more tried-and-tested generator with more consistent results; initially this was a superior processor, but over the past few months Polycut.Core has become a lot more capable with more supported features. GCodePlot remains for those who simply prefer it :)
    • Note: GCodePlot doesn't support the spiral/radial/diamond/triangle fill patterns. It also cannot process SVG text elements or clipped paths directly.

 

Requirements

  • Windows 10 v1809 or higher (Windows 11 required for Mica effects).
    • Technically it could work as far back as Windows 7 but I haven't tested it.

 

Additional Screenshots

Background

I have a 3D printer. I wanted to get into bookbinding, which utilises a lot of vinyl designs that typically require a Cricut, Silhouette or similar vinyl cutter that costs as much as a 3D printer. A 3D printer is already a perfectly good 3-axis system, capable of <200 micron cutting/drawing precision. General solutions do exist for creating GCode from SVG files already - You can convert SVGs to GCode from within Cura, but it doesn't account for the diameter of a swivel blade, and thus corners are never crisp; Inkscape has its own inbuilt GCodeTools but it is extremely kludgy; InkCut looks to be nice, but it refuses to run on my PC.

GCodePlot by @arpruss is an excellent extension to Inkscape - by far the best I found (and in fact, you can use it from within Polycut) but on its own, it isn't quite smooth enough. You have to chop up a 12" cutting mat to fit on a standard 3d printer bed, and you never quite know where to line everything up. First I created a template for Inkscape that had a pre-chopped cutting mat in it. Then modified GCodePlot to allow exporting from Inkscape's export menu, added support for ignoring hidden/locked layers, and added Moonraker upload support. That should have been enough for me.

But then I got ambitious...

Tutorial on setting up Klipper to quickly swap between 3D printing and non-printing modes

Klipper Setup.md

3D-printable mount for holding swivel blade/pens

If you have an Ender 3 S1 or other printer that can take this hotswap mount, then you can get my current vinyl cutter holder here.

Otherwise, you'll find vinyl cutters on Printables/Thingiverse. I strongly recommend using one that has a spring in it, because a 3D printer bed is nowhere near level enough for the accuracy needed to consistently cut through vinyl. A spring will allow a bit of flexibility and pressure to keep the blade in contact with the cutting mat.

Issues and Planned Features

See the document here


Like this project?

Please consider leaving a tip on Ko-Fi :)

Buy Me a Coffee at ko-fi.com

About

Polycut is a tool designed to import SVG files and convert them to 2D GCode to run on 3D Printers that have blades/pens/knives/foil stampers or other tools attached. It also directly supports uploading to a networked 3D Printer via Klipper. Think of it as an alternative to buying a Cricut if you already have a 3D Printer.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors