Each table below describes the full tree of one of the pcb-rnd file formats, from the root.
type:name | value | ver | description |
---|---|---|---|
ha:pcb-rnd-board-v* | \t\t\tThe full, self-contained description of a printed circuit board. \t\t\tThis is the root of a board .lht file. The * after the v in the name \t\t\tis an integer which is the format version. \t\t | ||
ha:meta | Any meta-data that won't directly turn into physical material (e.g. copper). | ||
board_name | string | User assigned name of the board | |
ha:grid | User interface last grid settings | ||
offs_x | coord | grid origin: X offset from 0;0 | |
offs_y | coord | grid origin: Y offset from 0;0 | |
spacing | coord | distance between two grid points both in X and Y directions | |
ha:size | object size related settings | ||
x | coord | <9 | drawing area size X (width) |
y | coord | <9 | drawing area size Y (height) |
x1 | coord | >=9 | drawing area box X1 (left) |
y1 | coord | >=9 | drawing area box Y1 (upper) |
x2 | coord | >=9 | drawing area box X2 (right) |
y2 | coord | >=9 | drawing area box Y2 (lower) |
isle_area_nm2 | double | remove polygon islands smaller than this value, specified in nm2 | |
thermal_scale | double | scale all thermals on the board by this factor | |
ha:drc | <5 | design rule checker settings for the old DRC | |
bloat | coord | Minimum copper spacing | |
shrink | coord | Minimum overlap between validly touching copper objects | |
min_width | coord | Minimum copper width | |
min_silk | coord | Minimum silk width | |
min_drill | coord | Minimum drill diameter | |
min_ring | coord | Minimum annular ring width | |
ha:cursor | obsolete cursor/view state | ||
x | coord | last position, X (horizontal) | |
y | coord | last position, Y (horizontal) | |
zoom | double | last view zoom factor | |
ha:layer_stack | physical layer stack information: geometry and properties of physical layers | ||
li:groups | ordered list of physical layers from top to bottom | ||
ha:INTEGER | a layer group (a physical layer of the board); the ID of the layer group is the integer in the name of the node | ||
name | string | >=6 | purpose of layer groups (useful with mechanical/documentation groups |
ha:type | a flag-list of layer type flag bits | ||
top | flag | location: top side | |
bottom | flag | location: bottom side | |
intern | flag | location: internal | |
logical | flag | location: logical (not in the actual stackup) | |
copper | flag | material: copper | |
silk | flag | material: silk | |
mask | flag | material: mask | |
paste | flag | material: paste | |
outline | flag | "material": router path for board outline; normally for the outer contour, sometimes for biggish inner cutouts as well) | |
mech | flag | "material": various mechanical fabbing instructions, e.g. slots; the purpose field provides more detail about the use | |
doc | flag | "material": documentation, either for the user and for pcb-rnd or both (the purpose field shoudl tell); e.g. assembly documentation for the user, keepout for the user and DRC | |
substrate | flag | material: substrate or insulator | |
name | string | >=6 | purpose of layer groups (useful with mechanical/documentation groups |
li:layers | ordered list of logical layer IDs hosted by this layer group | ||
ha:font | font kit: all fonts used on the board (if no font specified, default font will be used); old boards use pcb-rnd-font-v1, boards >= v9 use pcb-rnd-font-v2 | ||
ha:FONT-ID | the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below -> | ||
ha:styles | routing styles hash: collection of all available routing syles | ||
ha:netlists | all available netlists | ||
li:input | the input netlist (as seen in the last netlist import, a.k.a. forward annotation) | ||
ha:NETNAME | a network | ||
style | string | <=7 | routing style hint; same as the style attribute; from v8 only the style attribute exists |
li:conn | list of terminals connected to the network | ||
diameter | string | refdes-terminal | |
ha:attributes | >=5 | a hash of attribute key=value pairs | |
attrib-key | string | attribute value | |
li:netlist_patch | a list of intentional deviations from the input netlist, a.k.a. material for back annotation | ||
li:net_info | describe the current state of a net, as seen on the input | ||
net | string | net name; first item on the list, only once | |
term | string | terminal name; zero or more items starting from the second item | |
ha:add_conn | the 'as built' network requires a new connection to be created during the back annotation | ||
net | string | net name the terminal should be added to | |
term | string | terminal name | |
ha:del_conn | the 'as built' network requires an existing connection to be removed during the back annotation | ||
net | string | net name the terminal should be removed from | |
term | string | terminal name | |
ha:change_attrib | <9 | the 'as built' network requires an attribute to be set or changed | |
net | string | net name whose attribute needs to be changed | |
key | string | key (name) of the attribute | |
val | string | new value of the attribute | |
ha:change_net_attrib | >=9 | the 'as built' network requires an attribute to be set or changed | |
net | string | net name whose attribute needs to be changed | |
key | string | key (name) of the attribute | |
val | string | new value of the attribute | |
ha:change_comp_attrib | >=9 | component (subcircuit) requires an attribute to be set or changed | |
comp | string | component refdes whose attribute needs to be changed | |
key | string | key (name) of the attribute | |
val | string | new value of the attribute | |
ha:comp_add | >=9 | create a new subcircuit (component in netlist terminology) | |
comp | string | component refdes | |
ha:comp_del | >=9 | remove a subcircuit (component in netlist terminology) | |
comp | string | component refdes | |
li:conf | complete pcb-rnd configuration tree -> | ||
ha:data | Layers and global objects of the board -> | ||
ha:pixmaps | >=7 | Collection of all unique pixmaps used by the board or footprint -> | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value |
type:name | value | ver | description |
---|---|---|---|
li:pcb-rnd-buffer-v* | >=6 | buffer file containing a whole paste buffer with bound layers | |
x | coord | buffer origin point, X coordinate | |
y | coord | buffer origin point, Y coordinate | |
ha:data | Layers and global objects of the board -> |
type:name | value | ver | description |
---|---|---|---|
li:pcb-rnd-conf-v1 | complete pcb-rnd configuration tree | ||
ha:overwrite | overwrite values while merging; children: a full or partial config tree | ||
ha:prepend | prepend values while merging; children: a full or partial config tree | ||
ha:append | append values while merging; children: a full or partial config tree |
type:name | value | ver | description |
---|---|---|---|
ha:pcb-rnd-drc-query-v* | pcb-rnd drc_query script | ||
li:defs | Definitions of user tunable constants | ||
ha:name | each entry is identified by an unique name | ||
default | string | default value | |
type | string | data type of the constant (a valid conf system type name, e.g. real, coord) | |
desc | string | human readable description of the purpose of the constant | |
li:rules | DRC rules | ||
ha:name | each entry is identified by an unique name | ||
type | string | violation type (for grouping violations in the drc report) | |
title | string | title (short summary) of the violation | |
desc | string | human readable description of the violation, with hints on how to resolve it | |
query | string | query script to execute for finding violations |
type:name | value | ver | description |
---|---|---|---|
li:pcb-rnd-font-v* | font description | ||
ha:FONT-ID | the full description of a font; the node name is the integer font id or "geda_pcb" for font 0 (for historical reasons); the name is used only to make each node unique, the ID is also a field below | ||
cell_height | coord | height of the tallest glyph | |
cell_width | coord | width of the widest glyph | |
height | coord | >=2 | total height, font-wise (distance between lowest point of the lowest glyph and highest point of the tallest glyph |
cent_height | coord | >=2 | same as height but computed for centerline of stroke |
tab_width | coord | >=2 | optional: tab column width |
line_height | coord | >=2 | optional: vertical advance from one line to the next in multiline rendering |
baseline | coord | >=2 | normally the origin of a text object is the top-left of the glyph coord system; when this is enabled and the font has a baseline, the glyphs are moved up so the origin is at the custom baseline of the font (bbox is modified too); measured from the top (from the glyph coord system y=0) |
id | integer | unique font ID within the fontkit; fonts are referenced by ID | |
name | string | user specified, user readable font name | |
ha:symbols | a collections of glyphs availbale in the font | ||
ha:CHARACTER | Description of a glyph (symbol). Node name is a signel ASCII character or is of format &xx where xx is a hex digit of the ASCII code of the character. Characters that must use the hex version are: codes below 33 or over 126, &, #, {, }, /, :, ;, =, \, : | ||
height | coord | height of the glyph | |
width | coord | width of the glyph | |
delta | coord | extra space always inserted after the current symbol, before the next character | |
advance | coord | x direction advance; if not specified, calculated as width+delta; because of rounding errors and historical reasons, advance is more stable than delta | |
li:objects | objects that make up the symbol; IDs are per symbol local IDs counted from 0 | ||
ha:line.ID | round cap line, simplified | ||
x1 | coord | line first endpoint, horizontal offset | |
y1 | coord | line first endpoint, vertical offset | |
x2 | coord | line second endpoint, horizontal offset | |
y2 | coord | line second endpoint, vertical offset | |
thickness | coord | width of the line | |
ha:simplearc.ID | round cap arc, simplified | ||
x | coord | center, X coord | |
y | coord | center, Y coord | |
r | coord | radius (of the centerline of the arc) | |
thickness | coord | width of the pen the arc is drawn with | |
astart | angle | start angle | |
adelta | angle | delta angle | |
li:simplepoly.ID | round cap arc, simplified; contains a flat list of coords; each coord pair is an x;y corner of the outline of the polygon (odd indices are x coords, even indices are y coords) | ||
ha:entities | >=2 | table for translating named &entity; characters to character indices | |
ENTITYNAME | integer | translate &ENTITYNAME; to the charatcter addressed by the integer value (should be between 1 and 254) | |
ha:kerning | >=2 | kerning table: tune horizontal distance of character pairs | |
CHAR1-CHAR2 | coord | if CHAR1 is followed by CHAR2 while rendering a string, move CHAR2 horizontally by the value; negative means CHAR2 is moved toward CHAR1; non-printable chars are represented by their &hh hex values (like in symbol names) |
type:name | value | ver | description |
---|---|---|---|
ha:pcb-rnd-log-v* | pcb-rnd message log dump | ||
li:entries | list of message log entries | ||
ha:ID | each entry is identified by an unique unsigned long int ID | ||
stamp | string | UNIX time stamp of entry creation | |
level | integer | log level enum value (see error.h) | |
seen | integer | 1 if the message got displayed | |
str | string | log message |
type:name | value | ver | description |
---|---|---|---|
ha:rnd-menu-v1 | Menu file | ||
li:mouse | mouse bindings | ||
li:left | actions to execute on left button click | ||
li:press | actions to execute on mouse button press when no modifier is pressed | ||
li:press-shift | actions to execute on mouse button press when shift is pressed | ||
li:press-ctrl | actions to execute on mouse button press when control is pressed | ||
li:release | actions to execute on mouse button release when no modifier is pressed | ||
li:release-shift | actions to execute on mouse button release when shift is pressed | ||
li:release-ctrl | actions to execute on mouse button release when control is pressed | ||
li:middle | actions to execute on middle button click | ||
li:press | actions to execute on mouse button press when no modifier is pressed | ||
li:press-shift | actions to execute on mouse button press when shift is pressed | ||
li:press-ctrl | actions to execute on mouse button press when control is pressed | ||
li:release | actions to execute on mouse button release when no modifier is pressed | ||
li:release-shift | actions to execute on mouse button release when shift is pressed | ||
li:release-ctrl | actions to execute on mouse button release when control is pressed | ||
li:right | actions to execute on right button click | ||
li:press | actions to execute on mouse button press when no modifier is pressed | ||
li:press-shift | actions to execute on mouse button press when shift is pressed | ||
li:press-ctrl | actions to execute on mouse button press when control is pressed | ||
li:release | actions to execute on mouse button release when no modifier is pressed | ||
li:release-shift | actions to execute on mouse button release when shift is pressed | ||
li:release-ctrl | actions to execute on mouse button release when control is pressed | ||
li:scroll-up | actions to execute on scroll wheel scolling up event | ||
li:press | actions to execute on mouse button press when no modifier is pressed | ||
li:press-shift | actions to execute on mouse button press when shift is pressed | ||
li:press-ctrl | actions to execute on mouse button press when control is pressed | ||
li:scroll-down | actions to execute on scroll wheel scolling down event | ||
li:press | actions to execute on mouse button press when no modifier is pressed | ||
li:press-shift | actions to execute on mouse button press when shift is pressed | ||
li:press-ctrl | actions to execute on mouse button press when control is pressed | ||
li:main_menu | root of the main pull-down menu system; ordered list of main menus | ||
ha:MENUNAME | main menu name, e.g. "File" | ||
m | string | mnemonic: single character that should be underlined and used as a hot key in the menu name | |
li:submenu | ordered list of menu items for a submenu -> | ||
li:popups | collection of popup menus | ||
ha:POPUPNAME | popup menu name, e.g. "layer" for layer context menu | ||
m | string | mnemonic: single character that should be underlined and used as a hot key in the menu name | |
li:submenu | ordered list of menu items for a submenu -> | ||
li:toolbar_static | ordered list (from left to right) of toolbar icons | ||
ha:TOOLNAME | tool menu name, e.g. "polyhole" for the polygon hole draw tool | ||
te:tip | tooltip for the icon button | ||
li:anchored | list of submenus; child of submenu would be copied and appended after ever occurance of the ANCHORNAME | ||
ha:@ANCHORNAME | list menu items/subtrees to be copied after each @ANCHORNAME in the menu system | ||
li:submenu | ordered list of menu items for a submenu -> | ||
ha:scripts | a collection of named action scripts that can be symnlinked from elsewhere in the menu file | ||
li:SCRIPTNAME | action script |
type:name | value | ver | description |
---|---|---|---|
ha:rnd-menu-patch-v1 | Menu patch instructions | ||
te:prio | optional; integer priority value used in ordering the menu files/patches before merging | ||
li:patch | ordered list of patch instructions | ||
ha:append_menu | append (or overwrite) a submenu tree at a given path | ||
te:path | path to a menu item, starting from the menu tree root; e.g. /main_menu/File/Revert -> | ||
li:submenu | ordered list of menu items for a submenu -> | ||
ha:remove_menu | remove a submenu or menu item at a given path | ||
te:path | path to a menu item, starting from the menu tree root; e.g. /main_menu/File/Revert -> | ||
ha:overwrite_menu_props | overwrite properties of an existing menu | ||
te:path | path to a menu item, starting from the menu tree root; e.g. /main_menu/File/Revert -> | ||
ha:props | same as menu properties documented at LEAFSUBMENUNAME |
type:name | value | ver | description |
---|---|---|---|
li:pcb-rnd-padstack-v* | >=6 | A singe padstack prototype | |
ha:ps_proto_v6.0 | padstack prototype specification, as introduced in lihata board v4 -> |
type:name | value | ver | description |
---|---|---|---|
ha:coraleda-project-v1 | Project file root. Except for "common", each software package should create a single subtree under the root; the subtree shall be named after the software package | ||
ha:common | project settings that should be common to all software packages | ||
name | string | long name of the project | |
desc | string | description of the project | |
url | string | homepage of the project | |
vcs | string | main vcs url for the project | |
contact | string | author/maintainer contact info | |
li:files | ordered list of source files being used by the project | ||
ha:NAME | a project member file | ||
path | string | path to the file, relative to the project file | |
desc | string | description of the file | |
type | string | optional: type of the file; one of: "pcb", "schematic", "doc" | |
li:libs | ordered list of libraries the project depends on | ||
ha:NAME | a library | ||
path | string | path to the library, relative to the project file; all files and subdirectories under the root, recursively, are considered part of the library (must not be used together with url) | |
url | string | url to the library (must not be used together with path) | |
desc | string | description of the library | |
type | string | optional: type of the library; one of: "footprint" (for pcb design), "symbol" (for schematic), "sim" (models and subcircuits for e.g. spice simulation) | |
li:pcb-rnd-conf-v1 | complete pcb-rnd configuration tree -> |
type:name | value | ver | description |
---|---|---|---|
li:pcb-rnd-subcircuit-v* | footprint file containing a single subcircuit | ||
ha:subc.ID | >=3 | an instance (full copy) of a subcircuit | |
uid | minuid | UID assigned by the user to track subc history | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a subcircuit | ||
found | flag | If set, this object has been found by FindConnection() | |
selected | flag | Set when the object is selected. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
nonetlist | flag | subcircuit is not on the netlist and should not interfere with the netlist | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
ha:data | Layers and global objects of the board -> | ||
ha:pixmaps | >=7 | Collection of all unique pixmaps used by the board or footprint -> |
type:name | value | ver | description |
---|---|---|---|
li:view-list-v* | a list of view items (locations and objects to highlight on the board, e.g. for DRC violations) | ||
ha:view.ID | a view item; ID is a 32 bit signed integer, unique within the view list | ||
type | string | free form short text for type of the entry; the GUI may group items by type | |
title | string | free form short text for the title of the entry; the GUI typically uses this in brief listings | |
description | string | free form long text for the detailed description of the entry | |
li:bbox | coord | optional: 4 coordinates in x1;y1;x2;y2 order that describes the bounding box of the view in board space coordinates; when available, the preview or go-to will use this for view box | |
li:xy | coord | optional: 2 coordinates in x;y order that describes a specific board location | |
li:objs.ID | a group of related objects; there should be at most two groups with ID 0 and 1. These objects are often highlighted in red and blue. | ||
li:id | objects are specified as a list of object IDs (32 bit integers) |
Each table below describes a subtree that usually does not specify a whole tree (thus they are usually not a valid file on their own). These subtrees are described in a separate table because they are used from multiple other trees.
type:name | value | ver | description |
---|---|---|---|
ha:data | Layers and global objects of the board | ||
li:objects | List of global (non-layer/multi-layer) objects | ||
ha:padstack_ref.ID | >=4 | a padstack reference (instance) placed on the board (e.g. used as a via) | |
proto | integer | padstack prototype ID to use, from the parent data's proto list | |
x | coord | place padstack with origin at this horizontal coordinate | |
y | coord | place padstack with origin at this vertical coordinate | |
clearance | coord | global clearance; if non-zero, overrides local (per shape) clearance | |
rot | angle | rotation angle in degrees | |
xmirror | integer | 0 or 1; if 1, mirror all shapes over the x (horizontal) axis (so that y coords are flipped) | |
smirror | integer | 0 or 1; if 1, mirror the layer stackup: bottom becomes top, top becomes bottom (a.k.a. "place on the other side") | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a padstack | ||
found | flag | If set, this object has been found by FindConnection() | |
hole | flag | For pins and vias, this flag means that the pin or via is a hole without a copper annulus. | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
warn | flag | For pins, vias, and pads, set to indicate a warning. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
li:thermal | list of thermal shapes, per layer | ||
li:LAYERID | integer layer ID the thermal affects; each word is a boolean flag that is either present on the list or is missing; only one shape may be present | ||
on | none | thermal is present on this layer; if not present, all other thermal flags are ignored on this layer | |
diag | none | thermal graphics is not axis aligned but diagonal (rotated by 45 degrees) | |
round | none | shape: rounded edge fingers | |
sharp | none | shape: sharp edge fingers | |
solid | none | shape: no thermal relief, solid connection without clearance | |
noshape | none | >=6 | shape: special: omit copper shape of the padstack on this layer |
ha:via.ID | <=4 | an old via object (loaded as padstack in the new model) | |
x | coord | place padstack with origin at this horizontal coordinate | |
y | coord | place padstack with origin at this vertical coordinate | |
thickness | coord | copper shape dimension (diameter) | |
clearance | coord | copper clearance around the copper shape | |
mask | coord | mask cutout shape dimension (diameter) | |
hole | coord | drill/hole diameter | |
name | string | optional name attribute | |
number | string | for a pin (or to-be-pin) this is the terminal ID | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags_pinvia | flag bits of a pin or via | ||
found | flag | If set, this object has been found by FindConnection() | |
hole | flag | For pins and vias, this flag means that the pin or via is a hole without a copper annulus. | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
warn | flag | For pins, vias, and pads, set to indicate a warning. | |
usetherm | flag | Obsolete, indicates that pins/vias should be drawn with thermal fingers. | |
drc | flag | Set for objects that fail DRC: flag like FOUND flag for DRC checking. | |
lock | flag | Set for locked objects. | |
nonetlist | flag | subcircuit is not on the netlist and should not interfere with the netlist | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
pin | flag | object is a pin (in an element) | |
via | flag | object is a via | |
li:layers | ordered list of layers; v1 required the order to be top-bottom physically; v1 also required silk layers to be at the end (same resrtictions as in the old .pcb format; only real (non-bound) layers have attributes) | ||
ha:NAME | a logical layer | ||
lid | integer | >=2 | layer ID |
visible | integer | <6 | only in real (non-boud) layers: 1 if the layer is visible, 0 if not (UI setting) |
group | integer | only in real (non-boud) layers: "parent" layer group ID | |
color | string | >=5 | layer color on UI, in #rrggbb format |
stack_offs | integer | only in bound layers: match offset e.g. for internal copper layers | |
ha:type | only for bound layers: try to bind to this type of layer on the host board | ||
top | flag | location: top side | |
bottom | flag | location: bottom side | |
intern | flag | location: internal | |
logical | flag | location: logical (not in the actual stackup) | |
copper | flag | material: copper | |
silk | flag | material: silk | |
mask | flag | material: mask | |
paste | flag | material: paste | |
outline | flag | "material": router path for board outline; normally for the outer contour, sometimes for biggish inner cutouts as well) | |
mech | flag | "material": various mechanical fabbing instructions, e.g. slots; the purpose field provides more detail about the use | |
doc | flag | "material": documentation, either for the user and for pcb-rnd or both (the purpose field shoudl tell); e.g. assembly documentation for the user, keepout for the user and DRC | |
substrate | flag | material: substrate or insulator | |
purpose | integer | >=6 | only in bound layers: match layer group purpose |
combining | >=2 | layer combination (compositing) flags | |
sub | flag | draw in negative | |
auto | flag | padstacks draw their paste, mask and silk objects on the first layer (of matching type) that features the auto flag | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
li:objects | list of drawing primitives put on this layer | ||
ha:line.ID | round cap line | ||
x1 | coord | line first endpoint, horizontal offset | |
y1 | coord | line first endpoint, vertical offset | |
x2 | coord | line second endpoint, horizontal offset | |
y2 | coord | line second endpoint, vertical offset | |
thickness | coord | width of the line | |
clearance | coord | copper clearance around the object | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a line | ||
found | flag | If set, this object has been found by FindConnection() | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
rubberend | flag | For lines, used internally for rubber band moves: indicates one end already rubber banding. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
li:thermal | list of thermal flags for heavy terminals, on the single layer the object is on | ||
on | none | draw any thermal only if this string is present; else normal clearance is applied | |
diag | none | if present, the thermal is diagonal (45 degree rotated) | |
round | none | if present, thermal shape is rounded | |
sharp | none | if present, thermal shape is sharp | |
solid | none | if present, there is no thermal but a solid connection ("join") | |
ha:arc.ID | round cap elliptic arc (only width==height is fully supported at the moment) | ||
x | coord | center, X coord | |
y | coord | center, Y coord | |
width | coord | radius (of the centerline of the arc) in X direction | |
height | coord | radius (of the centerline of the arc) in Y direction | |
thickness | coord | width of the pen the arc is drawn with | |
clearance | coord | copper clearance around the object | |
astart | angle | start angle | |
adelta | angle | delta angle | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a arc | ||
found | flag | If set, this object has been found by FindConnection() | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
rubberend | flag | For lines, used internally for rubber band moves: indicates one end already rubber banding. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
li:thermal | list of thermal flags for heavy terminals, on the single layer the object is on | ||
on | none | draw any thermal only if this string is present; else normal clearance is applied | |
diag | none | if present, the thermal is diagonal (45 degree rotated) | |
round | none | if present, thermal shape is rounded | |
sharp | none | if present, thermal shape is sharp | |
solid | none | if present, there is no thermal but a solid connection ("join") | |
ha:gfx.ID | >=7 | rectangular custom pixmap graphics | |
sx | coord | visible size, X direction | |
sy | coord | visible size, Y direction | |
cx | coord | center, X coord | |
cy | coord | center, Y coord | |
rot | angle | rotation angle, CCW | |
xmirror | ingteger | 0 or 1, whether the pixmap should be mirrored (x coord mirror, which means mirror against the y axis | |
ymirror | ingteger | 0 or 1, whether the pixmap should be mirrored (y coord mirror, which means mirror against the x axis | |
pixmap_ref | ingteger | ID of the pixmap to use from the pixmaps subtree; this pixmap represents the neutral state (no rotation, no mirror) pixmap of the object | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a arc | ||
found | flag | If set, this object has been found by FindConnection() | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
rubberend | flag | For lines, used internally for rubber band moves: indicates one end already rubber banding. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
li:thermal | list of thermal flags for heavy terminals, on the single layer the object is on | ||
on | none | draw any thermal only if this string is present; else normal clearance is applied | |
diag | none | if present, the thermal is diagonal (45 degree rotated) | |
round | none | if present, thermal shape is rounded | |
sharp | none | if present, thermal shape is sharp | |
solid | none | if present, there is no thermal but a solid connection ("join") | |
ha:polygon.ID | polygon, as drawn (unclipped) | ||
clearance | coord | >=3 | copper clearance around the object |
enforce_clearance | coord | >=7 | enforce minimum clearance on clearing objects within the polygon |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a polygon | ||
found | flag | If set, this object has been found by FindConnection() | |
clearpoly | flag | For polygons, this flag means that pins and vias will normally clear these polygons (thus, thermals are required for electrical connection). When clear, polygons will solidly connect to pins and vias. | |
fullpoly | flag | For polygons, the full polygon is drawn (i.e. all parts instead of only the biggest one). | |
selected | flag | Set when the object is selected. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
clearpolypoly | flag | For polygons, apply clearance to nearby polygons | |
floater | flag | subc part can be moved after subc placing | |
li:thermal | list of thermal flags for heavy terminals, on the single layer the object is on | ||
on | none | draw any thermal only if this string is present; else normal clearance is applied | |
diag | none | if present, the thermal is diagonal (45 degree rotated) | |
round | none | if present, thermal shape is rounded | |
sharp | none | if present, thermal shape is sharp | |
solid | none | if present, there is no thermal but a solid connection ("join") | |
li:geometry | first item is the outer contour, subsequent, optional items are holes | ||
contour | coordtbl | 2 column table of x;y coords for the outer contour | |
hole | coordtbl | 2 column table of x;y coords for a hole | |
ha:text.ID | single line text object | ||
x | coord | placement: X coord | |
y | coord | placement: Y coord | |
role | string | when part of an old element, determines which of the three hardwired text object role is used (footprint, refdes or value) | |
string | string | text string (payload) | |
fid | integer | font ID | |
scale | integer | text size scale in % | |
scale_x | double | text size scale in X direction (width), as a multiplier; if 0, use scale/100 | |
scale_y | double | text size scale in Y direction (height), as a multiplier; if 0, use scale/100 | |
direction | integer | <=5 | rotation in 90 degree steps (0 is horizontal); between -3 and +3, inclusive. Starting from v6, the rot field shall be used instead of direction |
rot | angle | >=6 | rotation angle in degrees, [0..360), CCW |
thickness | coord | >=6 | if zero, use the default width algorithm; if non-zero use this value as rotation angle in degrees |
clearance | coord | >=8 | if non-zero and the object has tight_clearance attribute that is true, use this value for the clearance around the text object in polygons |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a text | ||
found | flag | If set, this object has been found by FindConnection() | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
onsolder | flag | For text, indicates that it is on the solder side. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
dyntext | flag | For text: dynamic string (substitute %patterns%) | |
floater | flag | subc part can be moved after subc placing | |
entity | flag | For text: substitute &entity; with glyph | |
li:padstack_prototypes | >=4 | ||
unused | none | placeholder for marking unused slot to keep slot indices for early lihata v4 | |
ha:ps_proto_v4.PID | padstack prototype specification, as introduced in lihata board v4 | ||
hdia | coord | hole diameter; 0 means no hole | |
htop | integer | hole start: copper layer index from the top (positive) or bottom (negative) copper layer (0 means top copper layer) | |
hbottom | integer | hole start: copper layer index from the bottom (positive) or top (negative) copper layer (0 means bottom copper layer) | |
hplated | integer | 0=hole and/or slot is unplated; 1=hole and/or slot is plated | |
name | string | >=5 | optional user assigned prototype name |
li:shape | shape per layer type definition | ||
ha:ps_shape_v4 | shape on a specific layer type (specified by layer_mask and combining), as specifie in lihata board v4; shape is either ps_poly, ps_line or ps_circ (only one of these will present per layer type); shape coords are relative to padstack origin; layer mask shall contain one material and at most one location bit | ||
ha:layer_mask | layer type and location | ||
top | flag | location: top side | |
bottom | flag | location: bottom side | |
intern | flag | location: internal | |
logical | flag | location: logical (not in the actual stackup) | |
copper | flag | material: copper | |
silk | flag | material: silk | |
mask | flag | material: mask | |
paste | flag | material: paste | |
outline | flag | "material": router path for board outline; normally for the outer contour, sometimes for biggish inner cutouts as well) | |
mech | flag | "material": various mechanical fabbing instructions, e.g. slots; the purpose field provides more detail about the use | |
doc | flag | "material": documentation, either for the user and for pcb-rnd or both (the purpose field shoudl tell); e.g. assembly documentation for the user, keepout for the user and DRC | |
substrate | flag | material: substrate or insulator | |
combining | layer compositing match | ||
sub | flag | draw in negative | |
auto | flag | padstacks draw their paste, mask and silk objects on the first layer (of matching type) that features the auto flag | |
clearance | coord | local, per-layer-type clearance doubled; applied if global padstack clearance is 0; WARNING: for historical reasons this field stores the DOUBLE of the actual clearance. | |
li:ps_poly | arbitrary convex polygon shape; contains a list of x;y coordinates | ||
ha:ps_line | straight line shape, round or square cap | ||
x1 | coord | line first endpoint, horizontal offset | |
y1 | coord | line first endpoint, vertical offset | |
x2 | coord | line second endpoint, horizontal offset | |
y2 | coord | line second endpoint, vertical offset | |
thickness | coord | width of the line | |
square | integer | 0=round cap; 1=square cap | |
ha:ps_circ | filled circle shape | ||
x | coord | center, horizontal offset | |
y | coord | center, vertical offset | |
dia | coord | circle diameter | |
te:ps_hshadow | >=6 | hole/slot shadow | |
ha:subc.ID | >=3 | an instance (full copy) of a subcircuit | |
uid | minuid | UID assigned by the user to track subc history | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a subcircuit | ||
found | flag | If set, this object has been found by FindConnection() | |
selected | flag | Set when the object is selected. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
nonetlist | flag | subcircuit is not on the netlist and should not interfere with the netlist | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
ha:data | Layers and global objects of the board -> | ||
ha:element.ID | <3 | an instance (full copy) of an obsolete element footprint | |
x | coord | element origin (diamond), horizontal offset | |
y | coord | element origin (diamond), vertical offset | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags_element | flag bits of an element | ||
found | flag | If set, this object has been found by FindConnection() | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
drc | flag | Set for objects that fail DRC: flag like FOUND flag for DRC checking. | |
lock | flag | Set for locked objects. | |
nonetlist | flag | subcircuit is not on the netlist and should not interfere with the netlist | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
onsolder | flag | element is placed on the solder side | |
li:objects | list of special objects that make up the element; lines and arcs are always on a silk layer | ||
ha:line.ID | round cap line -> | ||
ha:arc.ID | round cap elliptic arc (only width==height is fully supported at the moment) -> | ||
ha:text.ID | single line text object -> | ||
ha:pad.ID | SMD pad emulated using a line object; becomes a rectangle (but watch out for the cap-extended length!) when the square flag is set | ||
x1 | coord | line first endpoint, horizontal offset | |
y1 | coord | line first endpoint, vertical offset | |
x2 | coord | line second endpoint, horizontal offset | |
y2 | coord | line second endpoint, vertical offset | |
thickness | coord | width of the line | |
clearance | coord | clearance around the line | |
mask | coord | size of the mask cutout, as interpreted by gEDA/PCB | |
name | string | symbolic name of the pad | |
number | string | "pin number" for the netlist | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags_pad | flag bits of a pad | ||
found | flag | If set, this object has been found by FindConnection() | |
hole | flag | For pins and vias, this flag means that the pin or via is a hole without a copper annulus. | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
warn | flag | For pins, vias, and pads, set to indicate a warning. | |
usetherm | flag | Obsolete, indicates that pins/vias should be drawn with thermal fingers. | |
drc | flag | Set for objects that fail DRC: flag like FOUND flag for DRC checking. | |
lock | flag | Set for locked objects. | |
nonetlist | flag | subcircuit is not on the netlist and should not interfere with the netlist | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
pin | flag | object is a pin (in an element) | |
via | flag | object is a via | |
ha:pin.ID | thru-hole pin; emulated as an old-style via | ||
x | coord | place padstack with origin at this horizontal coordinate | |
y | coord | place padstack with origin at this vertical coordinate | |
thickness | coord | copper shape dimension (diameter) | |
clearance | coord | copper clearance around the copper shape | |
mask | coord | mask cutout shape dimension (diameter) | |
hole | coord | drill/hole diameter | |
name | string | optional name attribute | |
number | string | for a pin (or to-be-pin) this is the terminal ID | |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags_pinvia | flag bits of a pin or via | ||
found | flag | If set, this object has been found by FindConnection() | |
hole | flag | For pins and vias, this flag means that the pin or via is a hole without a copper annulus. | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
warn | flag | For pins, vias, and pads, set to indicate a warning. | |
usetherm | flag | Obsolete, indicates that pins/vias should be drawn with thermal fingers. | |
drc | flag | Set for objects that fail DRC: flag like FOUND flag for DRC checking. | |
lock | flag | Set for locked objects. | |
nonetlist | flag | subcircuit is not on the netlist and should not interfere with the netlist | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing | |
pin | flag | object is a pin (in an element) | |
via | flag | object is a via | |
ha:rat.ID | global rat line | ||
x1 | coord | line first endpoint, horizontal offset | |
y1 | coord | line first endpoint, vertical offset | |
x2 | coord | line second endpoint, horizontal offset | |
y2 | coord | line second endpoint, vertical offset | |
lgrp1 | integer | first endpoint's layer group ID | |
lgrp2 | integer | second endpoint's layer group ID | |
anchor1 | string | >=7 | first endpoint's objet anchor written as an absolute idpath |
anchor2 | string | >=7 | second endpoint's objet anchor written as an absolute idpath |
ha:attributes | a hash of attribute key=value pairs | ||
attrib-key | string | attribute value | |
ha:flags | flag bits of a line | ||
found | flag | If set, this object has been found by FindConnection() | |
clearline | flag | For lines and arcs, the line/arc will clear polygons instead of connecting to them. | |
selected | flag | Set when the object is selected. | |
auto | flag | For lines and vias, indicates that these were created by the autorouter. | |
rubberend | flag | For lines, used internally for rubber band moves: indicates one end already rubber banding. | |
exportsel | flag | Set for objects that should be exported in a partial export. | |
lock | flag | Set for locked objects. | |
termname | flag | when set the names of pins are shown. | |
floater | flag | subc part can be moved after subc placing |
type:name | value | ver | description |
---|---|---|---|
ha:pixmaps | >=7 | Collection of all unique pixmaps used by the board or footprint | |
ha:ulzw.ID | pixmap with payload ulzw-compressed | ||
sx | integer | size in X direction (width), in pixels | |
sy | integer | size in Y direction (height), in pixels | |
transparent | string | color of the transparent pixel in #rrggbb form; omit node if there is no transparent pixel in the pixmap | |
pixmap | string | base64 encoded version of the ulzw compressed raw pixmap, whih is in 24 bit RGB format, stored row-major |
type:name | value | ver | description |
---|---|---|---|
li:submenu | ordered list of menu items for a submenu | ||
m | string | mnemonic: single character that should be underlined and used as a hot key in the menu name | |
- | none | horizontal separator | |
@ANCHOR | none | an anchor is an invisible placeholder where a dynamically generated set of menu items should be inserted runtime | |
ha:SUBSUBMENUNAME | sub-submenu item: opens a new level of submenu when clicked | ||
m | string | mnemonic: single character that should be underlined and used as a hot key in the menu name | |
li:submenu | ordered list of menu items for a submenu -> | ||
ha:LEAFSUBMENUNAME | leaf submenu item: executes an action when clicked | ||
m | string | mnemonic: single character that should be underlined and used as a hot key in the menu name | |
li:a | list of alternative hotkey sequences to activate the menu | ||
a | string | a single hotkey sequences to activate the menu | |
li:action | list of actions to execute when the menu is activated | ||
action | string | a single action to execute when the menu is activated | |
tip | string | tooltip text | |
checked | string | the menu item has a checkbox; value is the action to execute to determine whether the menu item's checkbox is checked or not | |
update_on | string | path of a conf node that triggers re-evaluation of the checkbox state |
type:name | value | ver | description |
---|---|---|---|
te:path | path to a menu item, starting from the menu tree root; e.g. /main_menu/File/Revert |
type | description |
---|---|
angle | \tA decimal number without unit, representing an angle in degree. Can \tbe positive or negative. |
coord |
\tA decimal number with a unit suffix. If the unit suffix is missing,
\tthe coordinate is loaded in the internal units (which is nanometer as of 2018,
\tbut could change in the future, thus files shall not depend on it). Depending
\ton the context, coordinates may have a sign (positive or negative).
\t \tExamples: x=10mil; y=1.5mm; dia=12cm; |
coordtbl |
\tA two-column table of coords. First column are X, second column are Y
\tcoordinates.
\t \tExamples: ta:contour { \t1mm; 2.1mm; \t5mm; 5.2mm; \t3.7mm; 12mil; } ta:foo = { 1mm; 2.1mm; 5mm; 5.2mm; 3.7mm; 12mil; } |
double | \tUnitless numeric value in decimal format. Depending on context it is \tsometimes signed. |
flag | \tIf the flag is set, the value is "1", if the flag is not set, the \twhole key=value pair is omitted. |
integer | \tUnitless integer value in decimal format. Depending on context it is \tsometimes signed. |
minuid | \tAn unique ID as generated by libminuid (24 ASCII characters). |
none | \tNo value. |
string | \tFree form text data |
ver column: Format version range the subtree may appear in.