ID: | 138 |
From: | ge...@igor2.repo.hu |
Date: | Sun, 13 Nov 2016 05:53:02 +0100 (CET) |
Subject: | Re: [pcb-rnd] parametric footprints |
in-reply-to: | 136 from John Griessen <jo...@cibolo.com> |
replies: | 141 from John Griessen <jo...@cibolo.com> |
On Sat, 12 Nov 2016, John Griessen wrote: > On 11/12/2016 01:42 PM, John Griessen wrote: >> 4. rows of square pads with paste are generated on top of the center pad, >> with specification for >> being sized from 1mm across to 2mm across with a pitch of 2mm. >> >> Here is some guideline info on qfns: >> >> http://ecosensory.com/geda/qfn_guidelines.png > > Beyond making qf.awk ready to use minimally, looking at this shows > how attributes-per-object of layout can go farther. > > If you created a new layer solderpaste that would allow fully following > guidelines for qfn. > Another way is add attributes per pad about what paste shrink or bloat is and > generate > past as a post processing layer of rs274-x pcb-rnd (and mainline) has a real bad layer support code. Copper layers are explicit: you can create, name and group them. But anything beyond that is an ugly hack: - the outline layer is really a copper layer and the code decides it's for the router by looking at the name(!) of the layer - there are always exactly two silk layers, they are always indexed as +1 and +2 after the last copper layer; this gets ugly when you change the number of copper layers; it's also impossible to have multiple silk layers on the same side (different colors) or remove silk layer (e.g. single sided board; the workaround is to delete some gerber files manually...) - the solder mask layer doesn't really exist at all; the mask is calculated on the fly; many output plugins are aware of the solder "layer", but it's always a hack - paste layer is even worse, it doesn't exist either, but only a few output plugins even care about paste - any extra, user defined layer is a hack: comment layers, layers for metadata (e.g. automated testing) are all copper layers for pcb-rnd - there's no way to tell the code it's not copper; this interferes when you accidentally connect two vias with a comment... I started a long term cleanup of this situation, because maintaining these hardwired hacks in the code is a nightmare and there's some user pull on editable solder mask layer. Some of the code already use the new layer API that doesn't make assumptions, but most of the code is not switched over yet. > > I like the idea of generating both soldermask and solderpaste from pads, vias > with attributes on them. > Seems better than having to learn to think of separately editing those layers. In some situations generating them is good, in other situations it's bad. If you generate layers and you need something done differently, you need to step back and change things indirectly. This often feels like a workaround. If you have explicit layers, you often need to draw (or generate) e.g. when creating a new footprint. Then if you want to make a global change on how these things are generated, it's harder if you already have a snapshot. I don't think either of the above two would be a clear winner. I am considering a setup where you simply have multiple solder mask layers: - one that is generated from the pads automatically - but this still would be an explicilty layer - one or two where you can manually draw openings or fillings (draw and erase) To produce a final output these layers would be merged. I'd probably do the same with paste. This method would keep the advantage of auto-generated pad masks/paste but would allow the user to randomly override it without any indirection. Like you figure you want your power line thicker with some extra solder, you could just draw a few lines over it on the "remove mask" layer. Or you do your first production run and turns out only one of the 6 qfn()s need more paste because of some via sucks away too much: you could go there and draw a drop of paste on the "add paste" layer, without having to change the footprint. > I don't seen any lihata name=vlaue pairs in the .pcb file yet. Is that coming > soon? pcb != lihata. We have support for distinct file formats, they don't mix. You either save in the gEDA/pcb format, and it will have 0 lihata in it, or you wave in the lihata board format. The attribute-for-every-object feature is available only in the lihata board format. There's no plan to extend the gEDA/pcb format in any way - we will track reasonable mainline changes, but we won't change that format from pcb-rnd. Regards, Igor2
Reply subtree:
138 Re: [pcb-rnd] parametric footprints from ge...@igor2.repo.hu
141 Re: [pcb-rnd] parametric footprints from John Griessen <jo...@cibolo.com>
142 Re: [pcb-rnd] parametric footprints from ge...@igor2.repo.hu