G0/G1 vs G2/G3 Commands Arcs vs lines

Hey everyone,

I’m new to the 3d printing world and im super excited to get my new SM probs part way through next month. ive started reading and looking into various setups for software as from what i have seen LUBAN is pretty limited and fusion has just changed their licence terms removing a bunch of stuff…

One of the things that i have run across is a script called Arc Welder. looks pretty cool. i have used a few laser cutting tools at work and one of the things we do is clean up the file pre cutting by removing lines that are too small for the laser to handle by replacing them with arcs. so this script really caught my eye.

what i need to know is this, DOES THE SM2.0 interpret arc commands, or does it only implement small lines to create arcs. from what i understand when the file is sliced, arcs are commonly made into lines. the more detail required, the more small lines are created to makeup that “arc”

THANKS IN ADVANCE!!!

1 Like

G2/G3 are enabled as small line segments, not true arc motion. Specifically, a minimum of 24 segments per circle, and 1mm per arc segment.

Additionally, internally, it splits all motion, even straight lines, into 5mm segments for the purpose of bed levelling Z tracking with 3DP (not laser or CNC though).

1 Like

so do i understand correctly then that for 3d prints, each layer will be made of however many necessary 1mm straight lines to produce that arc? that seems to me like it wouldn’t be able to make very smooth round objects though?

it WILL use arcs for the CNC and Laser though? what is the reason behind this just out of curiosity? seems like the less “points” that have to be hit the faster things would go and less processing would be required…

again admitting that i am a newb.

All arcs are 1mm lines, max.

All 3DP motion is divided into 5mm lines, max.

The reasoning is how the Bresenham algorithm is implemented, above my pay grade. Has to do with how the chip sends pulses to the stepper motors, and there’s lots of research in controlling motors in straight line motion. True curves are much more advanced, not many firmwares implement them, if any. Even GRBL, the main choice for laser and CNC firmware uses Bresenham and subdivides arcs.

The processor is fast, processing speed is not a limitation. It’s a stepper motor control algorithm limitation as I understand it. It would be possible to make smaller lines per arc, but I guess they decided 1mm is an acceptable tradeoff between smoothness and processing. In practice it has good results.

Snapmaker didn’t make that algorithm, that’s from Marlin. Plenty of documentation on how motion control works in the marlin docs, if you want to dig in, but it’s not easily digestible at all, this is advanced computer science. https://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html

Don’t ask me how to understand that, I have no idea haha. I just know that’s at the core of the firmware and any changes to that would be massive undertakings, possibly involving major leaps forward in the field of computer science and motion control.

2 Likes