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

Re: gEDA-user: Embedded polygon

On Tue, 2011-01-18 at 11:17 -0500, George M. Gallant, Jr. wrote:
> Peter,
> I just redid the git, rebuilt pcb, same results.

I wasn't expecting the result to change (I'm not running git HEAD here,
I'm running my OpenGL port, which has different drawing code for
polygons, and hence doesn't crash).

> [ggallant@firefly pcb]$ git rev-parse HEAD
> 13de8601a39f2ed2a18aca814598f3ebe17ff506


I've identified the problem. Basically, the thermal shape around some of
your through-hole pins is causing it to crash. PCB's themal shape is
producing some horrible illegal geometry for the clearance you have set
around the pins.

As a quick hack to get you up and running again, search for lines with
"thermal([0-9]X)" in the flags. Make an edit similar to the one here:

-	Pin[10000 0 6000 3000 6600 3800 "2" "2" "edge2,thermal(1X)"]
+	Pin[10000 0 6000 2000 6600 3800 "2" "2" "edge2,thermal(1X)"]

                          ^__ clearance I think.

The problem is that the thermal shape becomes broken for certain large
clearance sizes, and that caused PCB to explode.

Make a backup of your original work before attempting this!

Once you've got it loading correctly, you can determine what sort of
clearance you need to give an appropriate looking thermal relief.

Notes for developers (should go into a launchpad bug if I can't fix this

A fix for this belongs:

1. In src/thermal.c (to avoid producing BROKEN polygons)
2. Wherever the clearance modified - to avoid choosing a bad clearance.
3. Possibly some warning function to note the mistake when loading a PCB
with bad clearances.

4. Longer term - do we need to revisit the maths used to create thermal
shapes? How do we fix this without risking breaking old designs?

Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,

Tel: +44 (0)7729 980173 - (No signal in the lab!)
Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me)

geda-user mailing list