← Back to team overview

kicad-developers team mailing list archive

Re: Bezier curves in DRAWSEGMENT class

 

On Wed, Sep 14, 2016 at 9:19 AM, Tomasz Wlostowski <
tomasz.wlostowski@xxxxxxx> wrote:

> On 14.09.2016 00:00, Cirilo Bernardo wrote:
> > I think it would be nice to support Bezier curves but aside from adding
> > support for editing those curves, I think we need a good enough 2D
> > geometry kernel so that we can improve zone outlines and perhaps
> > even allow tracks to be straight, arc, or Bezier curve. In general though
> > I think good support for "PolyLine" would be of more general use; after
> > all any 2D Bezier curve can be easily approximated with a series of
> > circular arcs (which a Polyline can do).
>
> Cirilo, JP,
>
> I agree we need copper layer arc support. I'm reluctant to add Bezier
> curves unless they are approximated as polylines because of the
> complexity of necessary DRC functions. Writing an accurate arc-to-arc or
> arc-to-segment collision/distance check is already quite difficult.
>
>
I agree regarding the copper layer arc and DRC; I forgot to mention before
that I do prefer approximating Beziers with circular arcs because the
collision
checks are trivial in comparison. Maybe for now leave the Bezier code and
consider deprecating/removing it in the future when we have PolyLine
support?

In my mind, tracks are open polylines and fill zones are closed polylines.
When doing DRC checks, a closed polyline can be created to represent a
track (or region) and its min. clearance. Checking for collisions between
closed polylines is easy - of course it's a little more complex than our
current collision code for straight segments, but in cases where we
currently
represent arcs by short segment approximations I expect the polyline
approach to reduce the number of calculations by a significant amount.


> Besides, what would be the use of such curves for PCB design other than
> fancy graphics (silkscreen, etc)?
>
> Tom
>
>
Sometimes (though personally I know of extremely few examples) people
like to use strange curves for the board outline, but as I said we can
replace
Beziers with circular arcs. In fact I don't believe DXF supports Beziers so
if people are exporting strange board shapes via MCAD we will have a
polyline or similar.

- Cirilo



>
> >
> > - Cirilo
> >
> >
> > On Wed, Sep 14, 2016 at 4:03 AM, jp charras <jp.charras@xxxxxxxxxx
> > <mailto:jp.charras@xxxxxxxxxx>> wrote:
> >
> >     Le 13/09/2016 à 11:36, Tomasz Wlostowski a écrit :
> >     > Hi all,
> >     >
> >     > Looking at the sources of the DRAWSEGMENT class (with the hopes of
> >     > refactoring it a bit to enable arbitrary copper shapes), I noticed
> that
> >     > it supports Bezier curves. They are also supported by the file
> format
> >     > parser/writer. There's however no drawing tool for these. Is this
> some
> >     > outdated code that can be removed or do we plan to support Bezier
> curves
> >     > in PCBnew?
> >     >
> >     > Cheers,
> >     > Tom
> >
> >     In fact, this is not an outdated code, but a not-yet-used code.
> >     A long time ago, we planned to support Bezier curves in Kicad, but
> >     this is still on a todo list.
> >
> >     --
> >     Jean-Pierre CHARRAS
> >
> >     _______________________________________________
> >     Mailing list: https://launchpad.net/~kicad-developers
> >     <https://launchpad.net/~kicad-developers>
> >     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> >     Unsubscribe : https://launchpad.net/~kicad-developers
> >     <https://launchpad.net/~kicad-developers>
> >     More help   : https://help.launchpad.net/ListHelp
> >     <https://help.launchpad.net/ListHelp>
> >
> >
> >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help   : https://help.launchpad.net/ListHelp
> >
>
>

References