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

Re: gEDA-user: next PCB release - 1.99za vs 4.0



On Sep 13, 2010, at 6:45 PM, Andrew Poelstra wrote:

> On Mon, Sep 13, 2010 at 08:58:54PM -0400, DJ Delorie wrote:
>> 
>>> What's the physical meaning of an eight-layered composite?
>> 
>> A board with eight copper layers, assuming the eight drawing layers
>> each map to a different physical layer.  Making the structure "flat"
>> just means that all your drills and outlines apply to all layers
>> equally.
>> 
> 
> Okay, how does this look (I don't think this compiles, it's just
> an example)?:
> 
> /*** BEGIN ***/ 
> 
> /*
> * The layer structuring works as follows:
> *   1. At the physical level, PCBs are composed of composites. These
> *      composites have an outline and thickness, and drills pass through
> *      them. They may contain sub-composites -or- PCB layers.
> *
> *   2. Overlays, or drawing layers, are tagged with their respective
> *      physical layer(s) to obtain a stacking order. Some overlays, such
> *      as the ratsnest one, have no physical layer, and are considered
> *      to be "on top" of everything else for drawing purposes.
> *
> *   3. Keepouts are just another form of overlay.
> *
> *   4. In footprint mode, there is a single composite. When importing
> *      footprints, the top and bottom layer of this composite will (by
> *      default) map to the top-most and bottom-most layer of the PCB.
> */
> 
> /*! The type of overlay */
> typedef enum
> {
>  OVERLAY_COPPER,	/*! conductive */
>  OVERLAY_SILK,		/*! non-conductive */

Suggest
OVERLAY_CONDUCTOR,
OVERLAY_INSULATOR,

>  OVERLAY_KEEPOUT,	/*! keepout */
>  OVERLAY_VIRTUAL	/*! non-PCB (ratsnest, documentation, etc) */
> }
> OverlayStyle;
> 
> /*! Overlay ("drawing layer") structure */
> typedef struct _overlay
> {
>  const char *name;	/*! Layer name */
>  const char *color;	/*! Layer color */
> 
>  OverlayStyle style;	/*! Layer material */
> 
>  Layer **layer;	/*! Associated physical layers */
>  unsigned n_layers;	/*! Number of physical layers */
> 
>  int b_visible;	/*! Visible in GUI */
>  int b_active;		/*! Active layer in GUI */
>  int b_vacuum;		/*! "Hole mode" in GUI */

Shouldn't we make the drawn shapes specify if it adds or subtracts material not the layer????

This would make the layer either positive or negative, negative layers default to subtraction objects, but can have objects that add.

Where solder mask is a negative layer, but copper is a positive layer.
Note: I am not referring to how assembly houses prefer gerbers in positive or negative, but wether the material application either added by shapes or removed by shapes.

>  int b_locked;		/*! Un-editable in GUI */
> }
> Overlay;
> 
> /*! Physical layer structure */
> typedef struct _layer
> {
>  const char *name;	/*! Layer name */
>  const char *color;	/*! Layer color */
> 
>  unsigned z_index;	/*! Stacking order within its composite */
> }
> Layer;
> 
> /*! Composite structure */
> typedef struct _comp;
> {
>  const char *name;	/*! Composite name */
>  int thickness;	/*! The physical thickness of the composite */
> 
>  int b_leaf;		/*! If true, composite has layers, otherwise it has sub-composites */
> 
>  unsigned n_children;	/*! Number of sub-comps or layers */
>  struct _comp **child;	/*! Array of sub-comps */ 

linked list of children?  no need for b_leaf?

>  Layer **layer;	/*! Array of layers */
> 
>  void *geometry;	/*! The shape of the composite (?) */

Is this like the outline for this composite???

> }
> Composite;
> 
> /*** END ***/ 
> 
> Andrew
> 


I don't know if the thickness of the composite works well for the conductor layers....

If I have two metals on a pcb it may be that one is etched and is 1Oz thick and another is stamped foil and is 50um thick.  how would composites handle this case?

I guess that this is a subtlety on the thickness of PCBs  as is the thickness of a prepreg defined by the distance between opposing conductors or the distance between the cores backing the conductors????

Cu
=== Core                 <--------------|
Cu                  <----|                       |
----- prepreg         | Here  or       |  Here
Cu                  <----|                       |
=== Core                 <--------------
Cu

Normally the prepreg layer is variable to make the overall thickness meet the specification.

Steve





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