buixuanan / fritzing

Automatically exported from code.google.com/p/fritzing
0 stars 0 forks source link

SMD Mask Layer in Gerber Export #2138

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Add additional files to the Gerber export which contains the SMD pad 
informations to produce paste masks*.

The tryout with Eagle shows, there is no assigned file extention for that 
layer. Wikipedia (http://de.wikipedia.org/wiki/Gerber-Format#Extended-Gerber) 
says, common for that layer is:

»GTP, - (Gerber Top Paste Mask)
 GBP, - (Gerber Bottom Paste Mask)«

The Layer in Eagle is called tCream and bCream.

We are not using bottom SMD by now, but maybe it make sense to plan with it 
anyway.

*Paste Mask

A stainless steel template in a tightened frame, with holes corresponding to 
landpatterns on the bare board that are either cut, punched, or drilled with a 
laser. The solder stencil is used at the beginning of the circuit assembly 
process where it is placed on top of a bare board, solder paste is pushed 
through the holes, then the stencil is lifted away. This leaves small solder 
paste deposits on the bare board, onto which components are placed. 
(http://www.edaboard.com/thread209923.html)

Original issue reported on code.google.com by stefanhermann79@googlemail.com on 25 Jul 2012 at 6:51

Attachments:

GoogleCodeExporter commented 9 years ago
what about svg and pdf etchable export? In fact, since you wanted it for 
homebrew do you need gerber as well?

Original comment by irasc...@gmail.com on 25 Jul 2012 at 7:02

GoogleCodeExporter commented 9 years ago
Two tricky aspects to this problem. First, when the board has two layers it is 
easy to identify a pad vs. a throughhole connector. With a one layer board this 
is more involved, though I don't think it's a showstopper.

The second problem is how to get the renderer to skip throughhole connectors. 
If all parts were either SMD or throughhole, then it would be a simple matter 
of hiding the throughhole parts. The trouble occurs when a part has both kinds 
of connectors. In this case, it would be best to deal with it at the point that 
the part returns its svg for a given layer, because it would be much more 
difficult to make the correlation between a connector and its svg elements 
later, when the svg for the entire board has been assembled (or even later when 
the Gerber conversion has taken place). Unfortunately, there is quite a bit of 
plumbing required to intervene at the earlier step.

Original comment by irasc...@gmail.com on 25 Jul 2012 at 8:33

GoogleCodeExporter commented 9 years ago
Maybe it is not so difficult. I think, THT parts are always circles and donuts, 
while SMD is allways a square or rectangle. 

Original comment by stefanhermann79@googlemail.com on 26 Jul 2012 at 5:12

GoogleCodeExporter commented 9 years ago
@comment3: Usually rects and circles, both can be paths or polygons and it's 
not clear you can disambiguate using stroke-width and fill. Remember also that 
many of the connectors use the old style invisible rectangle on top of the svg, 
which means there is no correlation with the actual svg shape. The way you 
disambiguate is through the fzp file which tells you whether the connector 
exists on one layer or two.

Original comment by irasc...@gmail.com on 26 Jul 2012 at 5:53

GoogleCodeExporter commented 9 years ago
@comment4: when the connector is an invisible rect or circle, not related to 
the actual graphic, it makes it very tricky to figure out how to mask out the 
throughhole graphic.  I wonder whether we have to fix all the instances of pcbs 
that use this method. I could write a script to identify all of them.

Original comment by irasc...@gmail.com on 26 Jul 2012 at 5:57

GoogleCodeExporter commented 9 years ago
The following might work: render the layer svg normally, then do a second pass 
which identifies all the throughhole connectors. We know the bounding rect for 
each of these, and could add an svg rectangle in white on top which would 
effectively clip the underlying throughhole graphic.

Original comment by irasc...@gmail.com on 26 Jul 2012 at 6:07

GoogleCodeExporter commented 9 years ago
r6218: first-pass implementation available only in gerber export; not yet in 
panelizer or export etchable svg/pdf.

Original comment by irasc...@gmail.com on 26 Jul 2012 at 8:37

GoogleCodeExporter commented 9 years ago
paste mask added to panelizer

Original comment by irasc...@gmail.com on 26 Jul 2012 at 1:51

GoogleCodeExporter commented 9 years ago
can you use this for the paste mask contour, if it is saved out as a pdf?

Original comment by irasc...@gmail.com on 26 Jul 2012 at 1:53

Attachments:

GoogleCodeExporter commented 9 years ago
r6220: paste mask added to export etchable pdf, svg

Original comment by irasc...@gmail.com on 26 Jul 2012 at 3:06

GoogleCodeExporter commented 9 years ago
Great ! I just needed a very small edit to make it compile.

Original comment by jerome.b...@gmail.com on 26 Jul 2012 at 3:58

Attachments:

GoogleCodeExporter commented 9 years ago
r6221: thanks Jerome, your patch is checked in. 

Original comment by irasc...@gmail.com on 26 Jul 2012 at 4:34

GoogleCodeExporter commented 9 years ago
Issue 2053 has been merged into this issue.

Original comment by irasc...@gmail.com on 11 Aug 2012 at 10:01

GoogleCodeExporter commented 9 years ago
An additional requirement for the paste mask is: openings shrunk in relation to 
openings in pad/pin land pattern.  (Opposite to the solder mask which is 
enlarged from the pad/pin land pattern.)

If the paste mask is same as solder mask, it might not work for DIY.  Not only 
not shrunk from the land pattern, but enlarged from the land pattern, for an 
error x2.  That is, too much solder paste applied?  But it might work.

Many manufacturers provide a separate drawing for the paste mask.

Heat sink lands might require even further shrinkage (say 60% coverage by 
paste.)

(I have no experience myself, I'm just exploring using a paste mask stencil 
from Polulu.)

Original comment by boo...@nc.rr.com on 14 Sep 2012 at 11:42

GoogleCodeExporter commented 9 years ago
Issue has moved to new issue tracker at github. Please continue the discussion 
at https://github.com/fritzing/fritzing-app/issues

Original comment by andre.knoerig@gmail.com on 23 Sep 2014 at 3:39