1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
7 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
8 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
10 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
15 <h2 class=
"sectionedit1510"><a name=
"improvements_not_contained_in_the_new_concept" id=
"improvements_not_contained_in_the_new_concept">Improvements not contained in the new concept
</a></h2>
19 “New layout” templates and wizards. (instead of defaulting to
4×4 8-layer)
23 Ability to hook into layer exporters (i.e. thindraw as a HID)
27 Also, trim polygons against “outline” layer. Fix polygons in general.
31 <!-- EDIT1510 SECTION "Improvements not contained in the new concept" [1-270] -->
32 <h1 class=
"sectionedit1511"><a name=
"new_concept_proposal" id=
"new_concept_proposal">New concept proposal
</a></h1>
36 <!-- EDIT1511 SECTION "New concept proposal" [271-305] -->
37 <h2 class=
"sectionedit1512"><a name=
"old_concept" id=
"old_concept">Old concept
</a></h2>
41 There are “Layer groups” which contain “conductive layers”. One “Layer group” is actually one “physical layer”.
42 There is max
10 layer groups. Number of layers is
16 +
2 silk screen layers. Layers have no “type”.
46 <code>Layer group:
<br/>
50 Numbers of layers contained
<br/>
58 Contained lines, arcs, polygons,…
<br/>
60 Rtree of contained ^^^^
<br/>
74 <!-- EDIT1512 SECTION "Old concept" [306-741] -->
75 <h2 class=
"sectionedit1513"><a name=
"new_concept" id=
"new_concept">New concept
</a></h2>
79 In the next part terms “physical layer” and “layer” are used. It can be changed to better names. Having just “layer” for
80 “physical layer” and something else for “layer” will be great. Would “surface” go? Layer for one layer on PCB and surface for
85 Layers are contained in a linked list, so there is no bounds on the number of them. “Physical layers” should probably be also
90 The Z-order of “physical layers” and “layers” is determined by the order in linked list and in layout file.
94 Active “layer” of each type is represented as pointer in “physical layer”. There is
95 an array of size “number of layer types”, pointer on right place is the active layer.
96 There is no need to have an active layer of each type.
100 One “physical layer” can be marked as “top” and one as “bottom”, so new footprints have some default layers assignment.
101 This marks are useful just for footprint importing, there is no other use for them.
105 When adding anything (components, lines, polygons), all parts goes to the active layer of the right type for current “physical layer”.
106 So line is added to active “conductive layer”, its mask to active “mask layer”,…. If there is no such layer, nothing happens.
107 If the current layer is not conductive, something else can happen. Like adding polygon to “mask layer” will just mask/unmask that part….
111 There are two types of colors. The ones defined in application preferences and the ones defined in layout file.
112 User can select to see any of the sets.
116 Colors in preferences are assigned to layer names, not layer numbers.
120 There is no concept of “layer number” everything is referred by name or pointer.
124 Each “physical layer” has Dimension property and can also have an Outline layer.
125 The difference is, that NOTHING can be drawn out of dimension. The Outline is just
126 hint how to manufactor the board. The Dimension is just one rectangle, Outline can have any
127 shape. This Dimension property should replace the “Board dimension” currently defined in preferences.
131 Gerber output names will contain “physical layer” name.
135 The “Show Pin/Pads/Vias” flags in “Physical layer” is just inspecting and printing use.
136 It doesn
't hurt to have and can aid documentation generation.
140 <code>Physical layer:
<br/>
142 Name ← this will be used in gerber export
<br/>
144 Dimentions ← layer doesn
't have to be across whole board
<br/>
146 Attributes ← we can come up with a list of “expected attributes” like “permittivity, thickness,..”
<br/>
148 Flags ← some “physical layer” wide flags
<br/>
150 Layers ← linked list of layers in this “physical layer”
<br/>
152 Pointer to layers ← linked list of all layers in this physical layer
<br/>
154 Array of pointers to “active layers”
<br/>
162 Placement list ← Contained lines, arcs, polygons,…
<br/>
164 Rtree of contained ^^^^
<br/>
166 Flag ← flags described below
<br/>
168 Type ← type list below
<br/>
174 Pointer for linked list of “layers”
<br/>
176 Pointer for linked list contained in “physical layer”
<br/>
182 Conductive ← the only conductive layer
<br/>
184 Mechanical ← some additional non-conductive stuff
<br/>
186 Outline ← outline of board
<br/>
188 Silk ← Texts, component oulines,…
<br/>
190 Mask ← mask on the board
<br/>
192 Paste ← solder paste definition
<br/>
194 Countryard ← component spacing definition
<br/>
200 Physical layer flags:
<br/>
202 Show Pin/Via/Pads ← Show/Hide Pin/Via/Pads,
3 separate flags – NOT SAVED, the one in “Layer” is saved
<br/>
208 Visible ← Show/Hide this layer – just temporal use, NOT SAVED
<br/>
210 Show Pin/Via/Pads ←
3 separate flags, On some layers for special purpose it make sense to not include Via/Pin/Pads
<br/>
212 Negativness ← Layer is negative layer
<br/>
218 <!-- EDIT1513 SECTION "New concept" [742-4385] -->
219 <h2 class=
"sectionedit1514"><a name=
"object_placements" id=
"object_placements">Object
& Placements
</a></h2>
223 Each object is composed of
2 parts. One is
'description of the object
'. This is specific for the type of the object.
227 The other is
'placement of the object
'. This is common to all object.
231 It is possible to have more than one placement of single object.
235 There are
'shared copy
' and
'copy on write
' possibilities.
240 Placement object:
<br/>
248 ReferenceCounter
<br/>
250 Pointer to the object
<br/>
252 Pointer to composite ← when I am at some composite
<br/>
254 Pointer to next object ← next object in the composite
<br/>
258 Placement flags:
<br/>
268 <!-- EDIT1514 SECTION "Object & Placements" [4386-4992] -->
269 <h2 class=
"sectionedit1515"><a name=
"composite_objects" id=
"composite_objects">Composite objects
</a></h2>
273 Composite is an object composed of multiple other object. Composite can be an element of another composite.
277 Footprints, sub-layouts and vias are just composite objects.
281 All elements of composite object has placement relative to the origin of the composite.
286 Composite object:
<br/>
288 Type ← type list below
<br/>
292 Linked list of placement objects
<br/>
296 Composite types:
<br/>
310 <!-- EDIT1515 SECTION "Composite objects" [4993-5443] -->
311 <h3 class=
"sectionedit1516"><a name=
"via" id=
"via">Via
</a></h3>
315 Via is a composite object of type
'via
'.
319 There is a copper object around the hole on each
'physical layer
' it intersects.
323 The hole is represented as an object on
'outline
' layer on each
'physical layer
' it intersects.
327 <!-- EDIT1516 SECTION "Via" [5444-5678] -->
328 <h3 class=
"sectionedit1517"><a name=
"footprint" id=
"footprint">Footprint
</a></h3>
332 Footprint is a composite object of type
'footprint
'.
336 It has attributes Name and Sourcefile.
343 <li class=
"level1"><div class=
"li"> Footprint contains layers with predefined names: Conductive, Silkscreen, Paste, Mask, Countryard
</div>
345 <li class=
"level1"><div class=
"li"> Footprint can contain more conductive layers, each grouped with Paste and Mask layers ← useful for
2 sides mounting connectors
</div>
347 <li class=
"level1"><div class=
"li"> Any connected element on conductive layer can be marked as Pin/Pad
</div>
349 <li class=
"level1"><div class=
"li"> Footprint can contain Outline layer
</div>
354 <!-- EDIT1517 SECTION "Footprint" [5679-6158] -->
355 <h2 class=
"sectionedit1518"><a name=
"named_attributes" id=
"named_attributes">Named attributes
</a></h2>
359 This is just my personal “To look at” section. – Martin Kupec
<br/>
361 Refdefs should be distinguishable from the rest of Silk
362 so they can be put on different Silk Layer.
366 <!-- EDIT1518 SECTION "Named attributes" [6159-] --></body>