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 */
  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 */
  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 */
  Layer **layer;        /*! Array of layers */

  void *geometry;       /*! The shape of the composite (?) */
}
Composite;

/*** END ***/ 

Andrew



_______________________________________________
geda-user mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

Reply via email to