Hi Devs-
I'd like to adjust how our arcs are handled and stored. This is part of
the arc tracks work package but is sufficiently tangential that I think
it bears checking before I implement.
Problem: Arcs are stored in the pcbnew file using center, start point
and arc angle. This leaves the end point of the arc subject to rounding
errors. This causes problems in STEP export as well as (for the arc
tracks) connectivity issues as dragging requires point matching, not
just copper overlap.
Proposed solution: I would like to adjust the pcbnew file format and
internal SHAPE_ARC, DRAWSEGMENT arc and EDGE_MODULE arc to use a single
format consisting of start point, mid point and end point. Mid point
here is defined as the point along the arc that is at the half-angle of
the full arc.
In this case, the values used and saved for connectivity and edge
continuity will be fixed. The center point of the arc may vary due to
rounding issues but arc will remain continuous with its neighboring
segments. Since the mid point of the arc is also saved, we closely
constrain the arc extent as well.
To get the arc center in this case (for drawing/plotting), we would use
GetArcCenter() from trigo.cpp.
Does anyone have objections to this course of action? If not, I'll send
around the patch for testing before pushing.
Best-
Seth
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help : https://help.launchpad.net/ListHelp