File format root nodes

Each table below describes the full tree of one of the sch-rnd file formats, from the root.

li:cschem-buffer-v*

type:name value ver description
li:cschem-buffer-v*     Buffer content (direct/indirect: same meaning as schematic sheet)
 ha:obj_indirect.1     Group of concrete objects ->
 ha:obj_direct.2     Group of concrete objects ->

li:sch-rnd-conf-v1

type:name value ver description
li:sch-rnd-conf-v1     complete sch-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

ha:std_devmap.v*

type:name value ver description
ha:std_devmap.v*     Device map for plugin std_devmap
 ha:comp_attribs     Attributes to be set in the abstract component
  ha:attrib     a hash of attributes
   simple-attrib-key string   attribute value without metadata (text node)
   ha:detailed-attrib     attribute with metadata (hash node)
    value string   attribute value
    prio integer   priority value

li:cschem-group-v*

type:name value ver description
li:cschem-group-v*     concrete group (e.g. symbol)
 ha:group.1     Group of concrete objects ->

ha:cschem-sheet-v*

type:name value ver description
ha:cschem-sheet-v*     schematic sheet
 ha:obj_indirect.1     Group of concrete objects ->
 ha:obj_direct.2     Group of concrete objects ->
 li:conf     complete sch-rnd configuration tree ->

Common subtrees

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.

ha:group.ID

type:name value ver description
ha:group.ID     Group of concrete objects
 uuid minuid   instance UID
 src_uuid minuid   source UID
 x coord   xform: translate placement in x (horizontal) direction
 y coord   xform: translate placement in y (vertical) direction
 rot angle   xform: rotate placement
 mirx bool   xform: mirror placement left/right
 miry bool   xform: mirror placement child up/down
 loclib_name string   name in the local library (optional)
 li:objects     List of child objects
  ha:line.ID     Drawing object: straight line ->
  ha:arc.ID     Drawing object: circular arc ->
  ha:polygon.ID     Drawing object: polygon ->
  ha:text.ID     Drawing object: straight line ->
  ha:connection.ID     Logical object: connection between different groups ->
  ha:pen.NAME     Logical object: a named pen used for drawing; names are unique within a group ->
 ha:attrib     a hash of attributes
  simple-attrib-key string   attribute value without metadata (text node)
  ha:detailed-attrib     attribute with metadata (hash node)
   value string   attribute value
   prio integer   priority value

ha:group_ref.ID

type:name value ver description
ha:group_ref.ID     Group reference to a concrete object within the same sheet or buffer
 ref oidpath   path relative to sheet root, to the referee (should be a group)
 li:child_xform     List of child object transformation to be performed after placement
  OIDPATH     list of transformations to be performed on referee children objects after placement; OIDPATH is relative to the referee group
   movex coord   xform: move child in x (horizontal) direction
   movey coord   xform: move child in y (vertical) direction
   rot angle   xform: rotate child
   mirx bool   xform: mirror child left/right
   miry bool   xform: mirror child up/down
   remove bool   xform: mirror child up/down
 ha:attrib     a hash of attributes
  simple-attrib-key string   attribute value without metadata (text node)
  ha:detailed-attrib     attribute with metadata (hash node)
   value string   attribute value
   prio integer   priority value

ha:line.ID

type:name value ver description
ha:line.ID     Drawing object: straight line
 x1 coord   start point, x coord
 y1 coord   start point, y coord
 x2 coord   end point, x coord
 y2 coord   end point, y coord
 stroke pen   pen to use
 lock bool   object is locked
 floater bool   "group lock" doesn't apply

ha:arc.ID

type:name value ver description
ha:arc.ID     Drawing object: circular arc
 cx coord   center point, x coord
 cy coord   center point, y coord
 r coord   radius
 sang angle   start angle
 dang angle   delta angle
 sx coord   start point, x coord
 sy coord   start point, y coord
 ex coord   end point, x coord
 ey coord   end point, y coord
 stroke pen   pen to use
 lock bool   object is locked
 floater bool   "group lock" doesn't apply

ha:polygon.ID

type:name value ver description
ha:polygon.ID     Drawing object: polygon
 li:outline     ordered list of contour objects (no gaps allowed)
  ha:line.ID     Drawing object: straight line ->
  ha:arc.ID     Drawing object: circular arc ->
 stroke pen   pen used for outline objects
 fill pen   pen used for fill (no fill if not present)
 lock bool   object is locked
 floater bool   "group lock" doesn't apply

ha:connection.ID

type:name value ver description
ha:connection.ID     Logical object: connection between different groups
 li:conn     list of objects participating in the connection (at least 2)
  OIDPATH oidpath   drawing object making the connection )

ha:text.ID

type:name value ver description
ha:text.ID     Drawing object: straight line
 text string   text string (or dyntext template)
 x1 coord   lower left x coord of text box
 y1 coord   lower left y coord of text box
 x2 coord   upper right corner of untrasformed box; present only if text size is bbox-specified
 y2 coord   upper right corner of untrasformed box; present only if text size is bbox-specified
 rot angle   rotaition around x1;y1
 mirx bool   mirror origin/bbox left/right
 miry bool   mirror origin/bbox up/down
 halign halign   horizontal alignment
 dyntext bool   if text string is a dyntext template
 stroke pen   pen to use
 lock bool   object is locked
 floater bool   "group lock" doesn't apply

ha:pen.NAME

type:name value ver description
ha:pen.NAME     Logical object: a named pen used for drawing; names are unique within a group
 shape shape   pen tip shape)
 size coord   diameter or side length
 color color   ink color
 font_height coord   height of text font for non-bbox-defined text
 font_family string   family hint for the font selector
 font_style string   style hint for the font selector
 dash hex4   dash pattern
 dash_period coord   dash pattern length

Types

type description
angle A decimal number without unit, representing an angle in degree. Can be positive or negative.
coord A decimal integer.
double Unitless numeric value in decimal format. Depending on context it is sometimes signed.
integer Unitless integer value in decimal format. Depending on context it is sometimes signed.
hex4 4 digits of hexadecimal numbers (0-9, a-f, A-F)
bool Single digit boolean value: 0 means false, 1 means true.
pen Name of a pen defined in a parent group.
halign One of: left, center, right, word_justify, justify.
shape One of: round, square.
color #rrggbb
minuid An unique ID as generated by libminuid (24 ASCII characters).
none No value.
string Free form text data
oidpath A slash separated list of integer object IDs (oids).

Comments

ver column: Format version range the subtree may appear in.