← Back to team overview

kicad-developers team mailing list archive

Re: Concerns about clearing disagreements before committing.


On Fri, Nov 25, 2011 at 07:48:24PM -0700, Brian F. G. Bidulock wrote:

OK, maybe I didn't read correctly; at least we came to the same conclusions,
which is good.

> special case, from (0) to (N-1).  This is represented within the pad
> object as a bit mask with all copper layers set.  (Interestingly enough
> the bit mask for all copper layers is only set when there is a hole,
> even a zero diameter hole, through the pad, otherwise only a single
> layer bit is set for SMD pads).  All non-copper items never had a bit
> mask anyway: the layer on which they existed was determined by the layer
> number only.

Ok so there *is* a bit mask in the pads, and that is a 'conventional' int, is
suppose (32 copper layers are already a bit tough to fabricate, don't even ask
about 64...). Now if we only could choose the pad shape for each layer...:P:P

> Understand that, for example, when a via is created, it is created with
> a top and bottom layer number.  The existing layer mask inside the board

Agree, vias are (by technology!) a layer from-to object.

> Further, there is no need for any code outside the board item to even
> know what the internal representation of layers is within the object.


> It only needs the methods necessary to test certain things
> (IsOnLayer(layer) and IsOnLayers(top,bot)).  By removing the layer mask

Exactly as I said

> Understand?

At the end we said the same exact things:P:P

> By the way, the layer classes that I provided are:
> 	Copper - copper layers of the board
> 	Drawing - fabrication and assembly drawing layers

Are you sure you really *need* to hardcode the types? Why not use a generic
approach like all the CAD/CAM out there?

For example Eco/Comment/Drawing are simply artworks layer, nothing would change
that. And most of the others are simply artworks layer (maybe restricted to
pads) (adhesive, probing, contacts and so on). 

I'd classify your choice as follow:

 	Copper - Copper, obviously
 	Dielectric - Artwork (embedded capacitors, I suppose)
 	Plating - Artwork (plating mask)
 	HoleFile - Pad-only Artwork (hole plug dispenser)
 	KeepOut - Special. I forgot it, it's useful to keep it aroud, top and bottom.
 	ViaPlug - Pad-only  Artwork (hole plug dispenser)
 	SolderMask - Special, solder mask, top and bottom
 	Contacts - Pad-only Artwork. Depends on process (plating or foil application), 
	           but the fabricator just need the pad to be plated.
 	PeelMask - Artwork
 	Finish - Artwork. What's the difference with Plating?
 	SilkScreen - Special, top and bottom.
 	SolderPaste - Pad-only artwork, maybe special for DRC 
		    (there may be constraint on dispensing).
 	Adhesive - Pad-only Artwork (glue dispenser)
 	Courtyard - Special, useful for DRC, top and bottom. I call it playground :)
 	Component - Artwork, top and bottom. 
	            Maybe special since refdes and value could go there.
 	Coating - Artwork
 	Edges - Special
 	Eco - Artwork
 	Probe - Pad-artwork (BTW I'm working on D-356)
 	Fixture - Artwork
 	Comment - Artwork
 	Drawing - Artwork

Less classes to handle are better IMHO. What do you gain, for example, in
differentiating between Eco and Comment?

To fully exploit this you need to add masks to vias (to indicate if they need
to be plugged, tented, probeable and so on).

> But my question was whether this should be later strapped in against
> "testing" or "experimental".  I suppose "experimental".

I vote for experimental

Lorenzo Marcantonio
Logos Srl

Follow ups