← Back to team overview

kicad-developers team mailing list archive

Re: Arc support in zones etc

 

On Mon, 15 Dec 2008, jean-pierre charras - INPG wrote:

I am thinking computation time (for drawings) is not at pcbnew level,
but at graphic layer level (wxWidgets ? or Windows/Xwindows)
drawing time grows faster than segments count:
On my computer: less than 1 second for 12000 segments, 5 seconds for
24000 segments)

How about decoupling drawing/ui code from PCB structure engine? I thonl gEDA did such work some years ago. Anyway it is really difficult to get anything conclusive without real code profiling. My guess is that some of the progressive slowdown results from cpu cache size limits. Also, is it sure that using lookup tables for sin/cos is faster than cpu hw math if the table is out of cache? Drawing code is in the need of some modernisation too, is it? I need to study wx quite a bit more to be of any help in realising that.

Peter Clifton has made some really nice advances on gEDA tools by using cairo and opengl. I built his git head some time ago just to see whatwas going on. My understanding is that wxGC uses cairo on gtk.

http://pcjc2.blogspot.com/2008/05/cairo-support-for-gschem.html

Yes i believe trace the outline with arcs and then coarse polygons with
peak-to-peak error inside that outline line is an interesting (the best
?) approach.

I think that's the best way too :) Crosshatched fills and anything fancy like defined corner roundeness woud work just fine. Arcs for defining zone outlines would be nice too.

Arcs support has some advantages only when creating/editing complex
zones outlines, not to draw them.

Yes, that's because of Gerber limitations. Just for future there is nice piece of documentation there:
http://webstds.ipc.org/2581/documents/IPC-2581witham1pub.pdf

Filling areas can be handle by polygons (therefore without any arc
outlines, not supported by GERBER or graphic polygon primitives),
or by segments (these 2 ways are now supported by pcbnew)
FreePCB uses also zones outline to define the entire board shape (with
holes, restricted areas ...)
this is an interesting idea.

> I played with FreePCB on Wine and weren't able to view those gerbers on
> Gerbview as they seem to use negative aperture data or then I messed
> something up.
>
Yes, negative layers are used.
But most PCB manufacturers do not like this, because they cannot use DRC
at gerber level.
So i do not want to use negative layers in pcbnew.

It's a pity that manufacturers are a problem. It would make things so much easier for us to use neg layers for thermals and all. I'd also like to know why it's so difficult to do DRC on gerbers with aperture data. First hand it seems easy...

-Vesa






References