Skip to content

Releases: xyz-tools/gcode-preview

v2.18.0 - Summer Time

12 Aug 16:35
Compare
Choose a tag to compare

2.18.0 🏖️ Summer time 🏖️

Features

  • performance: Tube rendering is now more performant due to the use of BatchedMesh. This results in higher frame rates especially for larger models. (requires Threejs v0.159+) by @sophiedeziel in #164
  • Introduce Dev mode by @sophiedeziel in #157
    This uses lil-gui to add a panel with some debug stats and toggles. For instance, it allows you so see the wireframe of the model.

Bugs & small updates

Docs & typing

Demo

Full Changelog: v2.17.0...v2.18

v2.17.0 🚀 Extrusion geometry 🚀

03 Jun 23:59
Compare
Choose a tag to compare

What's Changed

  • performance: Tube rendering is now faster and more accurate, thanks to a new custom geometry
  • feature: The parser can calculate layer height for each layer. It is used in tube rendering as the line height of extrusions
  • options: New option lineHeight, that overrides the height of all extrusion lines in tube rendering

The repo also got some improvements:

  • Automatic deploy of the demo when pull-requests are opened and merged

Pull requests

Full Changelog: v2.16.0...v2.17.0

https://www.npmjs.com/package/gcode-preview/v/2.17.0

v2.16.0

31 May 09:44
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.15.0...v2.16.0

https://www.npmjs.com/package/gcode-preview/v/2.16.0

v2.15

19 Apr 10:11
Compare
Choose a tag to compare

🌈 Multi-color 🌈

  • works via detection of T0-T7 commands
  • supports systems like:
    • Prusa MMU1/2/3 & XL
    • Bambulabs AMS and AMS Lite
    • 3D Chameleon
    • Enraged Rabbit Carrot Feeder (ERCF)
    • IDEX systems
    • Tool change systems
    • Color mixing nozzles when used with a 'virtual tool' (M164 - Save Mix)

Full Changelog: v2.14.0...v2.15.0

v2.14

24 Mar 16:21
Compare
Choose a tag to compare

changes:

  • api: added dispose method to stop requestAnimationFrame and free memory
  • fix: Threejs Lighting was updated to use candela as per r155
  • fix: the type for the build volume setting was incorrect, leading to a compilation failure in certain cases

Apart from these changes to the lib, some other changes have been made to the repo, including:

  • generated files were removed from the repo
  • the examples were grouped together
  • the examples received node and security updates
  • linting and type checking was added to the github action (running unit tests were already being run)
  • a roadmap was created in Github to provide some more focus

I want to thank @sophiedeziel for their help in getting a bit more organized, the sparring on Discord and answering issues over the past few months 🖖

https://www.npmjs.com/package/gcode-preview/v/2.14.0

v2.13

16 Jan 22:51
Compare
Choose a tag to compare

This is a maintenance release.

  • new options:
  • renderExtrusion
  • renderTravel

These options toggle te rendering of extrusion/travel lines

fixed:

  • fat lines incorrecty rendering lines between extrusion lines
  • [demo] sidebar doesn't update after loading a new gcode file

https://www.npmjs.com/package/gcode-preview/v/2.13.0

v2.12 Tubular 🤙

11 Jan 20:45
Compare
Choose a tag to compare
  • new experimental mode: tube rendering
    In this mode extrusion lines are rendered using volumetric tubes using THREEjs TubeGeometry. Currently this mode is still under development and considered experimental.

To use it, pass the param renderTubes: true

Known issues:

  • performance: rendering takes several seconds or more for large models
  • accuracy: line width and line height are not taken into account when setting the tube radius

Thanks to @sophiedeziel for developing this feature.

https://www.npmjs.com/package/gcode-preview/v/2.12.0

image

v2.11 🏺 Vase Mode 🏺

21 Nov 21:56
Compare
Choose a tag to compare

Vase Mode

Previously, peviewing models sliced in 'spiral vase' mode would suffer lagging or would even lock up. But not anymore, thanks to a fix by @raulodev.

The issue was the creation of a new layer in memory for every increase in Z. Since spiral vase mode causes every gcode command to have a slight increased Z, this could cause hundreds of thousands layers to be allocated. The fix defines a threshold value for creating a new layer. Meaning that gcode commands to be grouped together in a layer until the Z reaches the threshold.

The default threshold is 0.05mm meaning that nothing changes for most gcode files.

To override the default there is a new option: minLayerTreshold.

https://www.npmjs.com/package/gcode-preview/v/2.11.0

v2.10 Halloween: Colors

31 Oct 09:50
Compare
Choose a tag to compare

🎃 Halloween release 🎃

image

image

(Halloween Pumpkin by Florian Reppin)

This release is all about colors!

  • Allow custom colors to be set for:
    • extrusion
    • travel
    • top layer
    • last segment
    • background
  • DEMO
    • supports changing colors
    • supports light/dark mode

Colors can be any valid THREE.Color value: css string, color name, hex value, or Color instance.

const preview = new GCodePreview.init({
    canvas: document.querySelector('.gcode-previewer'),
    topLayerColor: 'rgb(0, 255, 255)',
    lastSegmentColor: '#fff',
    extrusionColor: 'rgb(0,255, 128)',
    backgroundColor: 0x101010,
    travelColor: new THREE.Color('lime')
  });

more pictures:

image

(Spider by Jason C Kessler)

image

Ghost by Iain Willis

image

Halloween ghost by Erikringwalters

v2.9.4 Custom non travel moves for CNC'ing

21 Jul 21:52
Compare
Choose a tag to compare

This adds an option you can pass to GCode Preview to customize which commands are considered travel moves.

Originally, only commands that had an positive extrusion parameter (ex. G1 E10) are rendered differently from travel moves. But this doesn't work for CNC's. The convention for CNC's is to use G0/G00 for travel moves and cutting moves are done using G1/G2/G3 (or G01/G02/G03).

Here's an example of passing the new param:

 const preview = new GCodePreview.init({
    canvas: document.querySelector('.gcode-previewer'),
    nonTravelMoves: ['g1', 'g01', 'g2', 'g02', 'g3', 'g03']
  });