Index: trunk/doc/user/02_model/via_asym_shape.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/doc/user/02_model/via_asym_shape.png =================================================================== --- trunk/doc/user/02_model/via_asym_shape.png (revision 15433) +++ trunk/doc/user/02_model/via_asym_shape.png (nonexistent) Property changes on: trunk/doc/user/02_model/via_asym_shape.png ___________________________________________________________________ Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: trunk/doc/user/02_model/via_octagon_shape.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/doc/user/02_model/via_octagon_shape.png =================================================================== --- trunk/doc/user/02_model/via_octagon_shape.png (revision 15433) +++ trunk/doc/user/02_model/via_octagon_shape.png (nonexistent) Property changes on: trunk/doc/user/02_model/via_octagon_shape.png ___________________________________________________________________ Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: trunk/doc/user/02_model/via_square_shape.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/doc/user/02_model/via_square_shape.png =================================================================== --- trunk/doc/user/02_model/via_square_shape.png (revision 15433) +++ trunk/doc/user/02_model/via_square_shape.png (nonexistent) Property changes on: trunk/doc/user/02_model/via_square_shape.png ___________________________________________________________________ Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: trunk/doc/user/02_model/via_ring_shape.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/doc/user/02_model/via_ring_shape.png =================================================================== --- trunk/doc/user/02_model/via_ring_shape.png (revision 15433) +++ trunk/doc/user/02_model/via_ring_shape.png (nonexistent) Property changes on: trunk/doc/user/02_model/via_ring_shape.png ___________________________________________________________________ Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: trunk/doc/user/02_model/index.html =================================================================== --- trunk/doc/user/02_model/index.html (revision 15433) +++ trunk/doc/user/02_model/index.html (revision 15434) @@ -29,7 +29,7 @@ Netlist is the list of logical connections to be realized in copper. A netlist is a list of named nets. Each net consists of a list of terminals (pins or pads) to connect. A terminal is given as -elementname-pinname, e.g. U4-7 means "pin number 7 in element called U4". +refdes-pinname, e.g. U4-7 means "pin number 7 in subcircuit called U4".

Fonts are always embedded in the design file in order to guarantee that the file can be ported and will look the same on different hosts. @@ -195,8 +195,7 @@ automatically inserted around objects on the same layer group:

Overlapping or touching polygons are not automatically merged. An object @@ -204,6 +203,11 @@ if there are multiple such polygons overlapping under the objects (on the same layer group), all such polygons get the clearance cutout.

+If a polygon has the "clearpolypoly" flag set, it clears any other polygon +that does not have the "clearpolypoly" flag set but has the +"clearpoly" set. In other words, a "clearpolypoly" polygon behaves the same +as a line/arc that has the "clearline" flag. +

If a polygon is cut into multiple islands, the behavior depends on the "fullpoly" flag of the polygon. If it is not set (default), only the largest island is kept, else all islands are kept. In the "fullpoly" mode islands @@ -238,50 +242,50 @@ Bug: copper text can not participate in short circuits, the galvanic connection checker code skips texts. -

2.4.5. Via Objects

+

2.4.5. Vias, holes, test points, test pads, fiducials, targets/marks

A via is an electrically connected hole that connects copper rings to multiple -layers. Thermal relief styles are available to both pads and pins, and the shape -styles of a via are available to pins. Since a via hole always punches all layer -groups and applies the same ring style on any outside layer groups, blind or -buried vias and individually defined layer pad stacks (e.g. with changing ring -shape per layer) are not possible using the via object. +layers. In pcb-rnd, a via is always implemented using a +padstack.

-A thermal relief property is added to the copper rings of a via when it is -connected to the surrounding polygon of any individual layer. Physical designs -may use thermal reliefs to enable easy hand soldering, or reduce occurrence of -tombstoning in automated production. +A hole is a special case of a padstack: it has +an unplated hole and typically does not have copper pad shapes but should +have mask cutout shape.

-The following thermal relief options are available: - -
Pad/Pin/Via Thermal Relief -
Thermal Relief Appearance -
no connection unconnected via -
solid solid thermal -
round x 90 Thermal relief arc style -
round x 45 Thermal relief arc style, 45deg -
crossbar x 90 Thermal relief crossbar style, 90deg -
crossbar x 45 Thermal relief crossbar style, 45deg -
+A test point or test pad is a padstack that has +copper shape only on one of the outer copper layer and a mask cutout shape +over that layer.

-A variety of pin pad shapes are also available to the pcb-rnd user. The copper -annulus (ring) on the outside layer groups is selectable from a predefined set -of shapes that provide solderability or can be used to indicate a special pin. -Flags in the via object define the shape used. - -
Via Annulus Shape Styles -
Shape Appearance -
ring (default) Ring via style -
square Square via style -
octagon Octagonal via style -
asymmetric Asymmetric via style -
+A fiducial mark is a special case of a padstack +very similar to the test point/pad. +

+A mark or target (e.g. for layer alignment) is usually realized as a + subcircuit it has more complex graphics that +doesn't fit in a padstack. +

+Holes, test points/pads and fiducials are often realized within a + subcircuit , especially if they have a refdes +and present on the schematics. -

2.4.6. Element Objects and Footprints

+

2.4.6. Subcircuits

+

+A subc (subcircuit) is a group of objects with its own, local layer +information. All layers of a subc are bound layers, that is, the user +is free to choose on which actual board layer it is placed on. +There is no limitation on what layers or objects a subc can contain. +

+The main uses of subc are: +

+
2.4.6.1 Subcircuits as footprints
+

-An element is an instance of a footprint that is already placed on the -board or loaded into a paste buffer. +A subcircuit may be an instance (copy) of a footprint. The subcircuit is +placed on the board or loaded into a paste buffer (the footprint lives in +the footprint library).

In the footprint form the construct is small and flexible. It describes @@ -290,128 +294,42 @@ it doesn't have font and the refdes is random.

-When the footprint is loaded, it becomes an element. The element inherits all +When the footprint is loaded, it becomes an subcircuit. The subcircuit inherits all the physical properties and the blank details are filled in with the data taken -from the current board: the layer binding is done, all parts of the element +from the current board: the layer binding is done, all parts of the subcircuit lands on a specific board layer; the refdes is rendered using the font in the current board.

-The footprint -> element instantiation is also a copy. Once the element -is created from a footprint, the element is a self-containing object and +The footprint -> subcircuit instantiation is also a copy. Once the subcircuit +is created from a footprint, the subcircuit is a self-containing object and does not have any direct reference to the footprint it was once derived from. -Changes to the original footprint will not affect the elements. +Changes to the original footprint will not affect the subcircuits.

In other words, a footprint is an abstract recipe, part of a -library, while an element is a land pattern already embedded in a +library, while an subcircuit is a land pattern already embedded in a specific design and describes actual copper and silk.

-Currently an element or footprint can contain the following objects: -

+Currently a subcircuit or footprint can contain any object on any layer +that a board can contain. The only notable limitation (that applies to boards too) +is that there is no good way to represent plated slotting.

-An element has the following properties: +Commonly used subcircuit attributes:

Element Properties -
element property description -
name: refdes unique identifier, e.g. "C42" -
name: value informal value, e.g. "15 pF" -
name: description informal element or footprint description, e.g. "1206" +
subcircuit attribute description +
name: refdes unique identifier, e.g. "C42" - pcb-rnd code will use this when present +
name: value informal value, e.g. "15 pF" +
name: footprint informal footprint description, e.g. "1206"

-Extra object flags: -

- -
Element Flags -
name description -
ONSOLDER when set, the element is on the bottom side, else it's on the top side -
NONETLIST when set, the element is not intended to be on the netlist; useful for elements that are not present on the schematics and are placed during the layout design -
HIDENAME when set the name of the element is hidden -
DISPLAYNAME when set the names of pins are shown -
+If the nonetlist flag is set, the subcircuit is not intended to be +part of the netlist -

2.4.7. Pins of Elements

- -A pin of an element is really a via, plus some metadata and capabilities: - - -Each element has its own list of pins. Pin rings can overlap (which will -make galvanic connection). There may be duplicate pin numbers and pin names. -Pin numbers are in the same namespace as pad numbers. - -A pin has the following properties:

- -
Pin Properties -
name description -
name pin name, e.g. "base" -
number pin name, e.g. 2 -
intconn internal element connections (see section TODO) -
- -Extra object flags: -

- -
Pin Element Flags -
name description -
via flags (extra flags listed for vias are applicable to pins too) -
WARN the pin contributes to a short circuit ("orange mark") -
- -

2.4.8. Pads of Elements

-

-A pad is an smd pad of an element. It is modelled as a line segment, usually -with square cap - this makes the pad look like a rectangle. A pad has -the same metadata and capabilities as pins. Overlapping pads are supported. -A pad is always on either the top or the bottom copper layer group. -

-A pad has the following properties: -

- -
Pad Properties -
name description -
name pin name, e.g. "base" -
number pin name, e.g. 2 -
intconn internal element connections (see section TODO) -
- -Extra object flags: -

- -
Pad Object Flags -
name description -
via flags (extra flags listed for vias are applicable to pins too) -
WARN the pin contributes to a short circuit ("orange mark") -
EDGE2 indicates that the second point is closer to the edge. For pins, indicates that the pin is closer to a horizontal edge and thus pinout text should be vertical. (Padr.Point2 is closer to outside edge also pinout text for pins is vertical) -
- -

2.4.9. Subcircuits

-

-A subc (subcircuit) is a group of objects with its own, local layer -information. All layers of a subc are bound layers, that is, the user -is free to choose on which actual board layer it is placed on. -There is no limitation on what layers or objects a subc can contain. -

-The main uses of subc are: -

- -
2.4.9.1 Subcircuits as footprints
-

When a subcircuit is a footprint, it normally has the refdes attribute set. Refdes is the name that identifies the part on the netlist. Some objects of a footprint will have the term attribute to turn those object into @@ -427,13 +345,17 @@ U5-3 means "the object(s) whose term attribute is 3 within the subcircuit whose refdes attribute is 'U5'". -

2.4.9.2 Subcircuits as repetitive modules
+
2.4.6.2 Subcircuits as repetitive modules

-Compared to subcircuits as footprint, a repetitive module will not have -a refdes attribute and will not have terminals. +If the repetitive module is specified as a refdes-named device on +the schematics, it is really just a footprint. Else it is a non-footprint +subcircuit. +

+Compared to subcircuits as footprint, a non-footprint subcircuit will not have +a refdes attribute and will not have terminals. It will also have the +nonetlist flag set. - -

2.4.10. Pad stacks

+

2.4.7. Pad stacks

A pad stack is a generic pin/pad/via object that may contain any combination of: @@ -540,9 +462,26 @@ possible to have different clearance for internal layers, for example.

Each padstack reference has a per board layer list of thermal relief types. +

+A thermal relief property is added to the copper rings of a via when it is +connected to the surrounding polygon of any individual layer. Physical designs +may use thermal reliefs to enable easy hand soldering, or reduce occurrence of +tombstoning in automated production. +

+The following thermal relief options are available: + +
Pad/Pin/Via Thermal Relief +
Thermal Relief Appearance +
no connection unconnected via +
solid solid thermal +
round x 90 Thermal relief arc style +
round x 45 Thermal relief arc style, 45deg +
crossbar x 90 Thermal relief crossbar style, 90deg +
crossbar x 45 Thermal relief crossbar style, 45deg +
-

2.4.11. Rat line Objects

+

2.4.8. Rat line Objects

A rat line represents a logical connection that is not yet realized in copper. It requires a loaded netlist for generation, and relies on calculations for any @@ -550,11 +489,11 @@ connections are straight line connections between the terminals of any two drawing primitives that aren't yet connected -

2.4.12. Netlists

+

2.4.9 Netlists

A netlist is a list of named logical networks. Each network is a list of netlist terminals that should be connected. A netlist terminal is a pair -of element-refdes and pin-number (or pad-number). Thus a typical netlist +of subcircuit-refdes and pin-number (or pad-number). Thus a typical netlist looks like the following:

-The netlist assumes element refdes are unique. If an element has multiple -instances of the same pin (or pad) number, the engine picks one randomly and -assumes there's an invisible, internal connection within the element. +The netlist assumes subcircuit refdes are unique. If a subcircuit has multiple +instances of the same terminal number, the engine picks one randomly and +assumes there's an invisible, internal connection within the subcircuit.

Rat lines can be regenerated from the current netlist for missing connections. Connections that are realized in copper but not present on the netlist, pcb-rnd @@ -592,14 +531,14 @@ process is called "forward annotation".

It is also possible to make changes to the netlist from within pcb-rnd: -pins can be swapped, element packages replaced using back annotation -actions. Such actions will keep a list of intended netlist and element +terminals can be swapped, subcircuit footprint replaced using back annotation +actions. Such actions will keep a list of intended netlist and subcircuit changes, called the netlist patch. Pcb-rnd will keep these changes even if a new version of the netlist is imported. It is possible to export the netlist patch that can be imported in the schematics editor to change the schematics - this process is called "back annotation". A new forward annotation from the schematics editor to pcb-rnd will then cancel -the netlist/element changes as the new netlist import netlist matches +the netlist/subcircuit changes as the new netlist import netlist matches the intended (changed) netlist.

2.5. Comparison of Physical world and pcb-rnd world terminology