[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gEDA-dev: Re: gEDA trackers



On Thu, Apr 19, 2007 at 01:52:03PM -0400, DJ Delorie wrote:
> 
> > 1. Database driven part/symbol/footprint system
> 
> In six hours?
> 
> > 2. n*45 placement of components
> 
> I.e. arbitrary rotations?  (why stop at 45's? ;)
> 

Indeed, but I believe that it is impossible to make it work properly
without fundamental changes to the PCB file format. For example right
now when you rotate a compoenent by 90 degrees, these are the
coordinates of the individual pads which are modified in the Pad or
Pin stanzas. Modify them little by little by steps which give irrational
numbers and the errors will accumulate. The only solution is to have a
rotation angle in the Element stanzas and never touch the Pad, Pin and
whatever can be in an element. This has advantages, since different
elements could just refer to the same footprint (making the file a bit 
shorter but that's not what worries me), and perform global edits on all
elememts which share a given footprint (right now I do this sometimes
with a text editor when i want to change the soldermask clearance for
example).

Other ideas:
1) add an editable solderpaste layer (I have no idea on whether this
can be done in a few hours): right now the solderpaste seems to be
exactly the same size as the pads. This is almost always wrong,
especially for large pads (DPAK, etc).

The simpler way to have semi-automatic solderpaste might be to have
something similar to the soldermask dimension, which would be by default
a bit smaller than the pad width (by how much, I don't know, it can't go
negative for very thin pads like 0.5 mm spacing). Of course if this
dimension is zero, there is no solder paste. For the large pads, you
might want to add solderpaste stanzas to the element description, 
so that you can decide where to put solder paste blobs as shown in:

http://www.nxp.com/acrobat_download/packages/footprint/SOT428_fr.pdf

(for the small pins on this package, you may get away with a single
blob, but for the large one you have to split it to avoid problems
during relow).

2) make internal PCB dimensions metric: inches are defined in terms
of metric and not the other way around since 50 years ago (yes the
inch shrank a bit at that time). However I use everyday more components
whose controlling dimensions are defined in metric units. With the
newest PCB that displays the dimensions with 4 decimal digits, the
display of the current coordinates often ends up with numbers like 
999 or 001 but this is only a minor nuisance.

The real nuisance is that, in metric mode, 45 degree tracks often 
do not snap exactly to the coordinates as PCB adds a very small
(0.0001 inch typically) stub. Now if I add another segment to the 
track in the same direction, it may start from either end of the stub
and the final result may or may not be considered for merging into
a single segment. In either case it is a problem if I delete the 
segment: either I have to delete 3 segments (and I may not realize 
that when I have zoomed in and only see one end) or at least two 
when the segments are merged but the small stub is left. Similar
issues happen when moving and it also probably requires more user
fixup when dragging a whole area (dragging is a hard problem, I know).

If the underlying units were metric, there would be no such problems
since imperial units are always exactly representable in metric
(of course you need a very small unit now, I still don't understand
why PCB went from mil (25.4 microns) to 1/100 mil (254 nm) instead 
of 0.1 micron, now you need to switch to nanometers or at least
2 nanometers).

3) Restore the old PCB way of snapping to the center of the pad.
I have not switched to the newer PCB for the designs I am currently
doing in part for this reason: when I have two SMD pads to join which 
are aligned on their wide side:

 ----    ----
 |X1|    |Y1|
 |X2|    |Y2|
 |X3|    |Y3|
 ----    ----

now if I join pad X and pad Y, PCB gives me the choice of going
from X1 to Y1 or from X3 to Y3. Previous versions allowed me to 
go from X2 to Y2, which is much more pleasing aesthetically. I also
prefer to be able to snap the pad center to the grid if I want to.

	Regards,
	Gabriel


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