[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: GL pcb bugs and a question re the log/library window, gerber outline output



On Tue, Feb 17, 2009 at 09:08:33PM +0000, Peter Clifton wrote:
> > 
> > I think the only straightforward way to fix the self-intersecting arc is
> > to build it internally from two parts and union them.  Might be slow on
> > teardrop'd boards.
> 
> Probably just need some simple geometry to work out if it would
> self-intersect or not fn(radius, width, angle), and do something
> different with those cases which do. Unfortunately, there is (of
> course), a whole family of potential intersections, so its not quite as
> simple as just specifying an outer circle poly, with a circular hole.

You just build it as two halves and use the polygon code to union it.
The math to make the self-intersecting arc "by hand" is going to end up
being a special case of exactly what the polygon code will do.  Your fn()
shouldn't be too bad, I think it's just "find the coordinates of the arc
endpoints and see if they're <thickness apart".

> Ben, did you figure out what specifically causes co-incident lines to
> cause grief? My understanding of the code was that they shouldn't cause
> problems. (I'd love to see any simple test-cases you have where they
> do).

It usually boils down to numerical instability in the polygon code.
I may have an example.  I save all the strange boards people send in with
bug reports to use as regression tests.

-- 
Ben Jackson AD7GD
<ben@xxxxxxx>
http://www.ben.com/


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user