Vector based printing (Marlin)
September 06, 2019 08:02AM
Hi all,
I'm experimenting vector based FDM printing using G2, G3 and G5 commands (arcs and Bézier curves), hand writing the GCode also for complex models, printing on cheap hardware (Prusa i3 MK3) and also on really high-end printers.

During last months I verified that vector printing determines:
  • a truly better surface finish;
  • a lot less hardware vibration (especially printing with cheap hardware), leading to smoother movements and material deposition;
  • the possibility to reach higher print speed while maintaining good quality results;
  • a perfect match with the "pressure (or linear) advance" technology.

Moreover in my opinion it's a clever idea to let the machine reach its real print resolution, bypassing faceted STL and G1 interpretation of arcs and curves.

So I've come here to ask you:
  • have you yet experimented with this techniques?
  • which is the best way today to convert a vector path (ex. SVG, DXF) into G2/G3/G5 commands?

I'm planning to code a new vector based slicer, initially only for hollow objects (just perimeters), then... who can say. Imho there's so much need for a true NURBS approach to slicing.

Thank you!

Edited 1 time(s). Last edit at 09/06/2019 08:53AM by Starliner.


Understanding the universe since the last century.
Re: Vector based printing (Marlin)
September 11, 2019 06:38AM
I have never experimented this but I would love to see a slicer able to use STEP files with real arcs instead of the triangles from STL. Can't really help you but will follow this topic with pleasure!


[github.com] - #BearUpgrade
Re: Vector based printing (Marlin)
September 11, 2019 08:32AM
Quote
gregsaun
I would love to see a slicer able to use STEP files with real arcs instead of the triangles from STL

Not only arcs, also Bézier curves in order to describe any curved shape or movement.
Post-processing Gcode to parse and "condens" G1 into G2/G3/G5 commands it looks a kind of useless "reverse engineering" procedure me, considering that vector instructions are yet contained into STEP or SVG files.

Thank you!


Understanding the universe since the last century.
Re: Vector based printing (Marlin)
September 11, 2019 08:53AM
I don't like the idea of condensing G1 into G2/G3/G5 either.


[github.com] - #BearUpgrade
Re: Vector based printing (Marlin)
September 11, 2019 09:25AM
Someone told me that the new Kisslicer will support curved surfaces from STEP and IGES:
[www.kisslicer.com]


[github.com] - #BearUpgrade
Re: Vector based printing (Marlin)
September 11, 2019 11:10AM
Quote
gregsaun
Someone told me that the new Kisslicer will support curved surfaces from STEP and IGES:
[www.kisslicer.com]

The KISSlicer Premium version declare that "Curved Surfaces" features is about 10% of development, and that:
  • "Support curved surfaces as a geometric primitive."
  • "Releasing an open source tool to import STEP / IGES (for better CAD integration.)"
  • "Smooth existing triangle meshes with a crease-angle threshold."

So the ability to import STEP / IGES files is good but not useful if this not lead to produce G2/G3/G5 instructions, so there are no evidence (emerging by visiting website or using the free version) that KISSlicer is able to translate vector STEP / IGES instructions into G2/G3/G5 commands.

[www.kisslicer.com]

Thank you!


Understanding the universe since the last century.
Re: Vector based printing (Marlin)
September 12, 2019 01:26PM
Yes I totally agree with you, not very clear


[github.com] - #BearUpgrade
Re: Vector based printing (Marlin)
September 14, 2019 04:25AM
The current way Marlin (and other firmware) handles G2/G3/G5 is by turning it into a sequence of straight lines feed into the planner. The only reason I can think of you could get better results using them would be because of the line segments created this way happen to be smaller than those coming from the G1's from the slicing software.

I would expect a similar result if you get a more detailed STL to be printed just with G1's.

I do agree that STEP or IGES may allow slicing software to make a better job but there is a lot of inertia as existing solutions can get the job done. Circle and Bézier implementations in the firmware might be improved in the future to do an even better job.
Re: Vector based printing (Marlin)
September 16, 2019 03:03AM
Hi misan, thank you.

Quote
misan
The current way Marlin (and other firmware) handles G2/G3/G5 is by turning it into a sequence of straight lines feed into the planner.

This is a very important aspect of the matter, and I've had the same pictures in my head while reading "planner_bezier.cpp" files.
After all this may not be a problem, because ultimately you rely on motor's steps and their resolution so you will ever obtain little linear movements. My tests showed truly better results and nicer mechanical movements while printing with G2/G3 (in my life I was used to carefully listen to the CNC sound while operating.)

Quote
misan
I would expect a similar result if you get a more detailed STL to be printed just with G1's.

According to my tests an highly detailed STL do not lead to better result, and in some instances the Slicers (Simplify3D, Slic3r, etc...) produce better instructions while lowering (a little bit of course!) STL details.

Edited 1 time(s). Last edit at 09/16/2019 03:10AM by Starliner.


Understanding the universe since the last century.
Re: Vector based printing (Marlin)
September 16, 2019 06:58AM
Quote
My tests showed truly better results and nicer mechanical movements while printing with G2/G3

That could be the case as linear segments created this way can be better adjusted to planner motion joins than those coming from an STL where your chances to hit the planner sweet spot are almost nil.

However, this is not something I have researched any further so I am just doing guesswork here.

My reasoning is that having higher-level information can enable the software to make better-informed decisions. Slicing STEP models might allow that.
Re: Vector based printing (Marlin)
February 04, 2021 01:48PM
gcode post processing:

from G1 to:

G2/G3 [github.com]
G5 [github.com]
Sorry, only registered users may post in this forum.

Click here to login