From Dynomotion

Jump to: navigation, search

Trajectory Planner Arc Faceting and Collinear Tolerance

The Trajectory Planner works to simplify and smooth GCode by combining Linear and Arc segments into single Linear segments whenever possible if the resulting Linear segment will not deviate from the original path by more than the allowed Collinear Tolerance.  See also here.

Note that arcs that require a long time (relative to Lookahead buffering time) to execute (based on arc length and feed rate) are subdivided into smaller arcs to avoid excessive buffering.  If these arcs were not subdivided then on-the-fly Feed Rate Overrides (Software) could be delayed by long periods of time.  If the resulting arcs are essentially straight lines (relative to the allowed Collinear Tolerance) then they will be treated as straight lines and may show faceting. 

If faceting is a problem reduce the Collinear Tolerance to the level necessary for your system and requirements.

Here is some example GCode which results in an arc being faceted into line segments:

G0 X13.3343 Y47.6702
G3 X0.0 Y49.5 I-13.3343 J-47.6702 F129.6
G3 X-13.3343 Y47.6702 I0.0 J-49.5

These arcs with a Collinear Tol of 0.0005 inches (12.7um) result in this faceted path (although not possible to see on this scale) that take about 12 seconds at the specified feedrate (much longer than the specified look ahead buffer time):


Below are the Trajectory Planner Settings used:


The GCode was executed and the Trajectory was captured in real time and Plotted below.  Again at this scale its difficult to see any faceting.


Expanding the Y Scale by about 13X allows the facets to be visible.  The path deviations are approximately 0.0003inches (10um) which is less than the allowed (0.0005inches) 12.7um Collinear Tolerance.


Reducing the Collinear Tolerance to 0.0002inches (5um) eliminates the faceting