[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: next PCB release - 1.99za vs 4.0
On Mon, Sep 13, 2010 at 07:24:57PM -0700, Steven Michalske wrote:
>
> On Sep 13, 2010, at 6:45 PM, Andrew Poelstra wrote:
>
> >
> > /*** 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,
>
I like this.
> > 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????
>
We will; that boolean is purely a UI flag. Now that I think about
it, "hole mode" is a property of the whole PCB, not individual layers.
> 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?
>
That makes sense, if Layer inherits from Composite.
> > Layer **layer; /*! Array of layers */
> >
> > void *geometry; /*! The shape of the composite (?) */
>
> Is this like the outline for this composite???
>
Yeah, I wasn't sure how to do that, so I just threw a void pointer in
to indicate association.
> > }
> > 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.
>
The short answer is, I don't know :) but if Layers inherit from Composites,
then conductor layers will have a thickness associated with them.
Andrew
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user