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

Re: gEDA-user: Removing soldermask over traces/polygons in PCB?



On Fri, Jan 21, 2005 at 11:48:37AM -0800, Steve Meier wrote:
> Harry,
> 
> The board I used this for had relatively few parts. (5) SO8, (1) 100 pin
> QFP the usual number of inductors, capacitors and resistors. Plus it had
> two connectors that had to be at 45 degree angles to each other. For
> those conditions I didn't observe any problems with the netlist/rats
> nest or DRC checking. Could you be more specific so that if I need this
> again in the future I could look into improving the effected routines.
 

Probably find.c and search.c have some assumptions.

For another place, check out rev 1.10 of rubberband.c.  Basically there
are lots of places in the code where you have to look for intersections
of different geometries and with a rectangular pad, an assumption in
most (all?) of those calculations is that its not off 0/90/180/270.

-Dan
 
> 
> 
> On Thu, 2005-01-20 at 16:09, harry eaton wrote:
> > There are more problems than just changing create.c. The connection finding
> > routines which are used for netlist checking, DRC testing etc. will not work
> > properly with diagonal pads if they have squared ends. This is the real
> > reason that diagonal pads are forbidden.
> > 
> > harry
> > 
> > ----- Original Message -----
> > From: "Steve Meier" <smeier@xxxxxxxxxxxxxxxxxxx>
> > To: "geda user" <geda-user@xxxxxxxx>
> > Sent: Wednesday, January 19, 2005 3:46 PM
> > Subject: Re: gEDA-user: Removing soldermask over traces/polygons in PCB?
> > 
> > 
> > > Diagonal pads can be made but you have to do a simple modification to
> > > the pcb code.
> > >
> > > in create.c comment out the following lines //
> > >
> > > Then you can do diagonal pads. I understand why they are discouraged but
> > > being able to rotate a conector 45 degrees was critical for one board!
> > >
> > > Steve Meier
> > >
> > > P.S. This is why I love open source... If you don't like the rules...
> > > you can change them.
> > >
> > > /*
> > > --------------------------------------------------------------------------
> > -
> > >  * creates a new pad in an element
> > >  */
> > > PadTypePtr
> > > CreateNewPad (ElementTypePtr Element,
> > >       Location X1, Location Y1, Location X2, Location Y2,
> > >       BDimension Thickness, BDimension Clearance, BDimension Mask,
> > >       char *Name, char *Number, int Flags)
> > > {
> > >   PadTypePtr pad = GetPadMemory (Element);
> > >
> > >   /* copy values */
> > >  // if (X1 != X2 && Y1 != Y2)
> > >  //  {
> > >  //    Message ("Diagonal pads are forbidden!\n");
> > >  //    return NULL;
> > >  //  }
> > > //  pad->Point1.X = MIN (X1, X2); /* works since either X1 == X2 or Y1
> > > == Y2 */
> > > //  pad->Point1.Y = MIN (Y1, Y2);
> > > //  pad->Point2.X = MAX (X1, X2);
> > > //  pad->Point2.Y = MAX (Y1, Y2);
> > >   pad->Thickness = Thickness;
> > >   pad->Clearance = Clearance;
> > >   pad->Mask = Mask;
> > >   pad->Name = MyStrdup (Name, "CreateNewPad()");
> > >   pad->Number = MyStrdup (Number, "CreateNewPad()");
> > >   pad->Flags = Flags & ~WARNFLAG;
> > >   pad->ID = ID++;
> > >   pad->Element = Element;
> > >   return (pad);
> > > }
> > >
> > >
> > >
> > >
> > > On Wed, 2005-01-19 at 10:20, Xtian Xultz wrote:
> > > > Em Qua 19 Jan 2005 15:03, Steve Meier escreveu:
> > > > > Do you really want bare copper or would bare copper with the surface
> > > > > finish be ok? If so create one or more "devices", with land patterns,
> > to
> > > > > represent the exposed contacts. Then place these phony devices on the
> > > > > board. I like to put them in the schematic, perhaps connected to a
> > > > > ground plane, as well.
> > > >
> > > > Well, there is a problem because I cant make device with land pattern in
> > the
> > > > diagonal orientation, so the line must be made with horizontal or
> > vertical
> > > > lines only. And there is a problem, because that kind of lines is to
> > conduct
> > > > high levels of currents, and using only 90 degrees curves makes the
> > > > inductance be indreased, and of course the line becomes longer. And its
> > a
> > > > boring process, because I must represent every piece of land pattern in
> > the
> > > > schematic (because of the netlist) and must create every piece too. Its
> > not a
> > > > solution.
> > > >
> > > > I made a suggestion on the pcb site, without answer, I dont know how
> > difficult
> > > > is it to implement, to made a way to edit the solder mask with lines and
> > > > poligons, using some boolean operations. Like, enabling the show of the
> > > > soldermask, when selecting the line command, the line will erase the
> > > > soldermask where I draw it. To make it perfect, the soldermask must be
> > drawn
> > > > with transparency, these function is in the PCB configuration file for
> > the
> > > > layers.
> > > >
> > > > >
> > > > > Steve Meier
> > > > >
> > > > > On Wed, 2005-01-19 at 03:26, Xtian Xultz wrote:
> > > > > > Em Qua 19 Jan 2005 01:13, Randall Nortman escreveu:
> > > > > > > I would like to create areas of bare copper, with no soldermask.
> > In
> > > > > > > particular, I'd like to create grounded guard bands around the
> > edges
> > > > > > > of my board to protect against ESD during handling of the board.
> > To
> > > > > > > see what I'm trying to do, have a look at the last two slides of:
> > > > > > >
> > > > > > >   http://www.cae.wisc.edu/~benedict/pcbpres.pdf
> > > > > > >
> > > > > > > As far as I can tell, only pads seem to clear the soldermask.  Is
> > it
> > > > > > > possible to get PCB to clear the soldermask over a trace or
> > polygon?
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Randall Nortman
> > > > > >
> > > > > > AFAIK, no. I sometimes do it to increase the current capability of a
> > > > > > trace. To do it, I use the postscript output, convert it to .sk with
> > > > > > pstoedit and opens it with sketch, and there I edit the way I want
> > (and
> > > > > > place some logos, figures, and stuff). And then export to .ps and
> > send to
> > > > > > my fab.
> > >
> > 
> 

--