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

Re: gEDA-user: Nanometer conversion pushed to git head



On Tue, Aug 16, 2011 at 11:53:21PM +0100, Peter Clifton wrote:
> On Mon, 2011-08-15 at 18:34 -0700, Andrew Poelstra wrote:
> > Exciting news everyone!
> > 
> > I have just pushed the nanometer conversion patches to git HEAD.
> 
> I'm really glad to see this work merged. When I get a moment, I will
> rebase my PCB+GL branches against it. (I might do it in a few gentle
> steps, rather than all 56 commits at once - depending on how brave I
> feel!).
> 
> 
> I see a lot of people think this will help with (hiding) the "rotating a
> square pad" bug. I'm still uneasy about that though.
> 
> We should perhaps make our next order of business fixing that properly.
> I guess we should modify / extending the pad definition line to specify
> an orientation, or allow specification of an overall rotation for a
> package.
>

Can we do this by adding a "pcb::rotation" attribute to every object?
I mentioned in another thread my desire to not add anymore cruft to
the current file-format.

This would, of course, break backward-compatibility no matter what we
do. The square-pad bug is hardcoded into every .pcb that it affects.

Maybe by default we would only use this attribute on square pads ;)
we really don't have enough stuff pcb can read but not write floating
around the file format..

With the attribute solution, at least, we won't have to touch the
parser.

> I have some ideas about how pad-stacks could be made more general
> though, so a square pad (like many others) is just a special case of a
> polygon - which can, of course.. be rotated arbitrarily, either at the
> pad level, or on the component level.
> 

We had a long discussion last time we talked about future file
formats, in regards to primitives. What geometric primitives do
we want? What electrical primitives? How are layers stored? Can
we mark subsets of layers? Can we set different DRC rules on
everything?

How do vias work? Are they special in spanning multiple layers?
Or can anything do that? Can we specify the substrate? Layer
thickness? Trace height?

Even sticking to geometry, how much should be stored as polygons?
Should text? Should arcs? Bezier curves?

(I would love to have answers to these questions. My point is
 simply that there're a LOT of them. And it might be hard to
 fix the square-pad-rotation bug without answering them.)

> 
> > Please test and let me know how things are working. I have
> > compiled all 56 commits (by script) to confirm that they can
> > compile so "git bisect" will work.
> 
> That is really good. Perhaps you can lend me your script to run over my
> PCB+GL stuff ;) I do manual compile tests for each commit before pushing
> stuff to git HEAD, but don't always test everything after I rebase.
> 

while ((i = 0; i < 50; ++i)); do git checkout HEAD^; make>/dev/null; done

(I ran it 2-and-a-bit times to get all 56 commits ;)

I did this, scrolled through the output, noted the (two) bad commits,
and fixed them both in one rebase -i.

> 
> > I have done a few save/load tests. There does not appear to
> > be any breaks in the file format.
> > 
> > 
> > Thank you all for your support and testing as I have worked
> > on this over the last month or two.
> 
> Your efforts are much appreciated. As soon as I get a chance, I'll try
> running it on some real production board data to verify things look the
> same.
> 

Thanks! I hope it goes well.

-- 
Andrew Poelstra
Email: asp11 at sfu.ca OR apoelstra at wpsoftware.net
Web:   http://www.wpsoftware.net/andrew/



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