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

Re: gEDA-user: How to trigger recalculation of a polygon?



On Thu, Oct 11, 2007 at 02:30:28PM +0000, Kai-Martin Knaak wrote:
> Is there a way to trigger recalculation of a polygon in pcb?

Reload the PCB.

I've submitted several fixes to polygon updates recently, so if you use
a newer version (like the most recent snapshot) you may not have to take
this step.

> Background: The polygons of a medium sized analog pcb make zooming and 
> panning a bit slow. Also, start-up is delayed by half a minute.

These are two separate problems.  The startup delay is caused by clearing
all of the objects in the same plane(s) as the polygons by subtracting
shapes from the initial polygon.  After startup, all operations are
incremental (which is why you are seeing a difference when you reload --
if there are bugs in an incremental update, the polygons won't be right).

If your startup is extremely long, consider looking at the saved PCB file
to see if you have accidentally created multiple overlapping polygons.
One of the PCBs submitted with a bug report had 3 overlapping polygons
because the bug caused them to disappear, leading the submitter to just
redraw it.  They were still all there, all being cleared on each startup.

The run-time delay is caused by the polygon dicer.  It recursively
subdivides polygons into enclosed shapes with no holes (by 'dicing'
up the polygons along the centers of holes).  This is required to draw
the polygons in the HID layers, such as the display.

If you turn on 'thin draw polygons' (ctrl-shift-p in lesstif, I think)
it will only draw outlines, which does not require dicing, and makes
everything quite snappy.  The last CVS snapshot has my changes to make
those transparent polygons behave like you'd expect, allowing you to
select "through" them since you can see through them.

-- 
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