kiutils package
Board files (kiutils.board)
Class to manage KiCad boards
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
20.02.2022 - created
- Documentation taken from:
- class kiutils.board.Board(version: str = '', generator: str = '', general: ~kiutils.items.brditems.GeneralSettings = <factory>, paper: ~kiutils.items.common.PageSettings = <factory>, titleBlock: ~kiutils.items.common.TitleBlock | None = None, layers: ~typing.List[~kiutils.items.brditems.LayerToken] = <factory>, setup: ~kiutils.items.brditems.SetupData = <factory>, properties: ~typing.Dict[str, str] = <factory>, nets: ~typing.List[~kiutils.items.common.Net] = <factory>, footprints: ~typing.List[~kiutils.footprint.Footprint] = <factory>, graphicItems: ~typing.List = <factory>, traceItems: ~typing.List = <factory>, zones: ~typing.List[~kiutils.items.zones.Zone] = <factory>, dimensions: ~typing.List[~kiutils.items.dimensions.Dimension] = <factory>, targets: ~typing.List[~kiutils.items.brditems.Target] = <factory>, groups: ~typing.List[~kiutils.items.common.Group] = <factory>, filePath: str | None = None)
Bases:
objectThe
boardtoken defines a KiCad layout according to the board file format used in.kicad_pcbfiles.- Documentation:
- version: str = ''
The
versiontoken defines the board version using the YYYYMMDD date format
- generator: str = ''
The
generatortoken defines the program used to write the file
- general: GeneralSettings
The
generaltoken defines general information about the board
- paper: PageSettings
The
papertoken defines informations about the page itself
- titleBlock: TitleBlock | None = None
The
titleBlocktoken defines author, date, revision, company and comments of the board
- layers: List[LayerToken]
The
layerstoken defines all of the layers used by the board
- properties: Dict[str, str]
The
propertiestoken holds a list of key-value properties of the board as a dictionary
- graphicItems: List
The
graphicItemstoken defines a list of graphical items used in the layout. Possible tokens are found inkiutils.items.gritemsThe
Imagetoken is supported since KiCad v7 and must be added into this list when used.
- traceItems: List
The
traceItemstoken defines a list of segments, arcs and vias used in the layout
- filePath: str | None = None
The
filePathtoken defines the path-like string to the board file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_sexpr(exp: list) Board
Convert the given S-Expresstion into a Board object
- Args:
exp (list): Part of parsed S-Expression
(kicad_pcb ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not kicad_pcb
- Returns:
Board: Object of the class initialized with the given S-Expression
- classmethod from_file(filepath: str, encoding: str | None = None) Board
Load a board directly from a KiCad board file (.kicad_pcb) and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
Footprint: Object of the Schematic class initialized with the given KiCad schematic
- classmethod create_new() Board
Creates a new empty board with its attributes set as KiCad would create it
- Returns:
Board: Empty board
- to_file(filepath=None, encoding: str | None = None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- encoding (str, optional): Encoding of the output file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent=0, newline=True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
Design Rules (kiutils.dru)
Classes for custom design rules (.kicad_dru) and its contents
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
26.06.2022 - created
- Documentation taken from:
??? Syntax help in Pcbnew
- class kiutils.dru.Constraint(type: str = 'clearance', min: str | None = None, opt: str | None = None, max: str | None = None, elements: ~typing.List[str] = <factory>)
Bases:
objectThe
Constrainttoken defines a design rule’s constraint- type: str = 'clearance'
The
typetoken defines the type of constraint. Defaults toclearance. Allowed types: -annular_width- Width of an annular ring -clearance- Clearance between two items -courtyard_clearance- Clearance between two courtyards -diff_pair_gap- Gap between differential pairs -diff_pair_uncoupled- ??? -disallow- ??? Do not allow this rule -edge_clearance- Clearance between the item and board edges -length- Length of the item -hole_clearance- Clearance between the item and holes -hole_size- Size of the holes associated with this item -silk_clearance- Clearance to silk screen -skew- Difference in length between the items associated with this constraint -track_width- Width of the tracks associated with this constraint -via_count- Number of vias -via_diameter- Diameter of vias associated with this constraint
- min: str | None = None
The
mintoken defines the minimum allowed in this constraint
- opt: str | None = None
The
opttoken defines the optimum allowed in this constraint
- max: str | None = None
The
maxtoken defines the maximum allowed in this constraint
- elements: List[str]
The
itemstoken defines a list of zero or more element types to include in this constraint. The following element types are available: -buried_via-micro_via-via-graphic-hole-pad-text-track-zone
- classmethod from_sexpr(exp: list) Constraint
Convert the given S-Expresstion into a Constraint object
- Args:
exp (list): Part of parsed S-Expression
(constraint ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the list’s first parameter is not the
(constraint ..)token
- Returns:
Constraint: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.dru.Rule(name: str = '', constraints: ~typing.List[~kiutils.dru.Constraint] = <factory>, condition: str = '', layer: str | None = None, severity: str | None = None)
Bases:
objectThe
Ruletoken defines a custom design rule- name: str = ''
The
nametoken defines the name of the custom design rule
- constraints: List[Constraint]
The
constraintstoken defines a list of constraints for this custom design rule
- condition: str = ''
The
conditiontoken defines the conditions that apply for this rule. Check KiCad syntax reference for more information. Example rule: - A.inDiffPair(‘*’) && !AB.isCoupledDiffPair()
- layer: str | None = None
The optional
layertoken defines the canonical layer the rule applys to
- severity: str | None = None
The optional
severitytoken defines the severity of the design rule. Valid values arewarning,error,exclusionorignore.Available since KiCad v7
- classmethod from_sexpr(exp: list) Rule
Convert the given S-Expresstion into a Rule object
- Args:
exp (list): Part of parsed S-Expression
(rule ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the list’s first parameter is not the
(rule ..)token
- Returns:
Rule: Object of the class initialized with the given S-Expression
- to_sexpr(indent: int = 0)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
- Returns:
str: S-Expression of this object
- class kiutils.dru.DesignRules(version: int = 1, rules: ~typing.List[~kiutils.dru.Rule] = <factory>, filePath: str | None = None)
Bases:
objectThe
DesignRulestoken defines a set of custom design rules (.kicad_dru files)- version: int = 1
The
versiontoken defines the version of the file for the KiCad parser. Defaults to 1.
- filePath: str | None = None
The
filePathtoken defines the path-like string to the schematic file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_sexpr(exp: list) DesignRules
Convert the given S-Expresstion into a DesignRules object
- Args:
exp (list): Part of parsed S-Expression
(version ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the list’s first parameter is not the
(version ..)token
- Returns:
DesignRules: Object of the class initialized with the given S-Expression
- classmethod from_file(filepath: str, encoding: str | None = None) DesignRules
Load a custom design rules set directly from a KiCad design rules file (.kicad_dru) and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
Footprint: Object of the DesignRules class initialized with the given KiCad file
- classmethod create_new() DesignRules
Creates a new empty design rules set as KiCad would create it
- Returns:
DesignRules: Empty design rules set
- to_file(filepath=None, encoding: str | None = None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- encoding (str, optional): Encoding of the output file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent=0, newline=False)
Generate the S-Expression representing this object
- Args:
indent (int, optional): Number of whitespaces used to indent the output. Defaults to 0. newline (bool, optional): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
Footprints (kiutils.footprint)
Classes to manage KiCad footprints
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
02.02.2022 - created
- Documentation taken from:
- class kiutils.footprint.Attributes(type: str | None = None, boardOnly: bool = False, excludeFromPosFiles: bool = False, excludeFromBom: bool = False, allowMissingCourtyard: bool = False)
Bases:
objectThe
attrtoken defines the list of attributes of a footprint.- Documentation:
https://dev-docs.kicad.org/en/file-formats/sexpr-intro/index.html#_footprint_attributes
- type: str | None = None
The optional
typetoken defines the type of footprint. Valid footprint types aresmdandthrough_hole. May be none when no attributes are set.
- boardOnly: bool = False
The optional
boardOnlytoken indicates that the footprint is only defined in the board and has no reference to any schematic symbol
- excludeFromPosFiles: bool = False
The optional
excludeFromPosFilestoken indicates that the footprint position information should not be included when creating position files
- excludeFromBom: bool = False
The optional
excludeFromBomtoken indicates that the footprint should be excluded when creating bill of materials (BOM) files
- allowMissingCourtyard: bool = False
The optional
allowMissingCourtyardtoken indicates if the footprint generates a “missing courtyard” DRC violation.Available since KiCad 7
- classmethod from_sexpr(exp: list) Attributes
Convert the given S-Expresstion into a Attributes object
- Args:
exp (list): Part of parsed S-Expression
(attr ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not attr
- Returns:
Attributes: Object of the class initialized with the given S-Expression
- to_sexpr(indent=0, newline=False) str
Generate the S-Expression representing this object. Will return an empty string, if the following attributes are selected: -
type: None -boardOnly: False -excludeFromBom: False -excludeFromPosFiles: False -allowMissingCourtyard: FalseKiCad won’t add the
(attr ..)token to a footprint when this combination is selected.- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
- class kiutils.footprint.Model(path: str = '', pos: ~kiutils.items.common.Coordinate = <factory>, scale: ~kiutils.items.common.Coordinate = <factory>, rotate: ~kiutils.items.common.Coordinate = <factory>, hide: bool = False, opacity: float | None = None)
Bases:
objectThe
modeltoken defines the 3D model associated with a footprint.- path: str = ''
The
pathattribute is the path and file name of the 3D model
- pos: Coordinate
The
postoken specifies the 3D position coordinates of the model relative to the footprint
- scale: Coordinate
The
scaletoken specifies the model scale factor for each 3D axis
- rotate: Coordinate
The
rotatetoken specifies the model rotation for each 3D axis relative to the footprint
- hide: bool = False
The hide token specifies if the 3d model is visible or not
- opacity: float | None = None
The optional opacity token specifies the opacity of the 3D model on a scale between 1.0 and 0.0.
- classmethod from_sexpr(exp: list) Model
Convert the given S-Expresstion into a Model object
- Args:
exp (list): Part of parsed S-Expression
(model ...)
- Raises:
Exception: When given parameter’s type is not a list or the list is not 5 long
Exception: When the first item of the list is not model
- Returns:
Model: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.footprint.DrillDefinition(oval: bool = False, diameter: float = 0.0, width: float | None = None, offset: Position | None = None)
Bases:
objectThe
drilltoken defines the drill attributes for a footprint pad.- Documentation:
https://dev-docs.kicad.org/en/file-formats/sexpr-intro/index.html#_pad_drill_definition
- oval: bool = False
The
ovaltoken defines if the drill is oval instead of round
- diameter: float = 0.0
The
diameterattribute defines the drill diameter
- width: float | None = None
The optional
widthattribute defines the width of the slot for oval drills
- offset: Position | None = None
The optional
offsettoken defines the drill offset coordinates from the center of the pad
- classmethod from_sexpr(exp: list) DrillDefinition
Convert the given S-Expresstion into a DrillDefinition object
- Args:
exp (list): Part of parsed S-Expression
(drill ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not drill
- Returns:
DrillDefinition: Object of the class initialized with the given S-Expression
- to_sexpr(indent: int = 0, newline: bool = False) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
- class kiutils.footprint.PadOptions(clearance: str = 'outline', anchor: str = 'rect')
Bases:
objectThe
optionstoken attributes define the settings used for custom pads. This token is only used when a custom pad is defined.- clearance: str = 'outline'
The
clearancetoken defines the type of clearance used for a custom pad. Valid clearance types areoutlineandconvexhull.
- anchor: str = 'rect'
The
anchortoken defines the anchor pad shape of a custom pad. Valid anchor pad shapes are rect and circle.
- classmethod from_sexpr(exp: list) PadOptions
Convert the given S-Expresstion into a PadOptions object
- Args:
exp (list): Part of parsed S-Expression
(options ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not options
- Returns:
PadOptions: Object of the class initialized with the given S-Expression
- to_sexpr(indent: int = 0, newline: bool = False) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
- class kiutils.footprint.Pad(number: str = 'x', type: str = 'smd', shape: str = 'rect', position: ~kiutils.items.common.Position = <factory>, locked: bool = False, size: ~kiutils.items.common.Position = <factory>, drill: ~kiutils.footprint.DrillDefinition | None = None, layers: ~typing.List[str] = <factory>, property: str | None = None, removeUnusedLayers: bool = False, keepEndLayers: bool = False, roundrectRatio: float | None = None, chamferRatio: float | None = None, chamfer: ~typing.List[str] = <factory>, net: ~kiutils.items.common.Net | None = None, tstamp: str | None = None, pinFunction: str | None = None, pinType: str | None = None, dieLength: float | None = None, solderMaskMargin: float | None = None, solderPasteMargin: float | None = None, solderPasteMarginRatio: float | None = None, clearance: float | None = None, zoneConnect: int | None = None, thermalWidth: float | None = None, thermalGap: float | None = None, customPadOptions: ~kiutils.footprint.PadOptions | None = None, customPadPrimitives: ~typing.List = <factory>)
Bases:
objectThe
padtoken defines a pad in a footprint definition.- number: str = 'x'
The
numberattribute is the pad number
- type: str = 'smd'
The pad
typecan be defined asthru_hole,smd,connect, ornp_thru_hole
- shape: str = 'rect'
The pad
shapecan be defined ascircle,rect,oval,trapezoid,roundrect, orcustom
- position: Position
The
positiondefines the X and Y coordinates and optional orientation angle of the pad
- locked: bool = False
The optional
lockedtoken defines if the footprint pad can be edited
- drill: DrillDefinition | None = None
The optional pad
drilltoken defines the pad drill requirements
- layers: List[str]
The
layerstoken defines the layer or layers the pad reside on
- property: str | None = None
The optional
propertytoken defines any special properties for the pad. Valid properties arepad_prop_bga,pad_prop_fiducial_glob,pad_prop_fiducial_loc,pad_prop_testpoint,pad_prop_heatsink,pad_prop_heatsink, andpad_prop_castellated
- removeUnusedLayers: bool = False
The optional
removeUnusedLayerstoken specifies that the copper should be removed from any layers the pad is not connected to
- keepEndLayers: bool = False
The optional
keepEndLayerstoken specifies that the top and bottom layers should be retained when removing the copper from unused layers
- roundrectRatio: float | None = None
The optional
roundrectRatiotoken defines the scaling factor of the pad to corner radius for rounded rectangular and chamfered corner rectangular pads. The scaling factor is a number between 0 and 1.
- chamferRatio: float | None = None
The optional
chamferRatiotoken defines the scaling factor of the pad to chamfer size. The scaling factor is a number between 0 and 1.
- chamfer: List[str]
The optional
chamfertoken defines a list of one or more rectangular pad corners that get chamfered. Valid chamfer corner attributes aretop_left,top_right,bottom_left, andbottom_right.
- net: Net | None = None
The optional
nettoken defines the integer number and name string of the net connection for the pad.
- tstamp: str | None = None
The optional
tstamptoken defines the unique identifier of the pad object
- pinFunction: str | None = None
The optional
pinFunctiontoken attribute defines the associated schematic symbol pin name
- pinType: str | None = None
The optional
pinTypetoken attribute defines the associated schematic pin electrical type
- dieLength: float | None = None
The optional
dieLengthtoken attribute defines the die length between the component pad and physical chip inside the component package
- solderMaskMargin: float | None = None
The optional
solderMaskMargintoken attribute defines the distance between the pad and the solder mask for the pad. If not set, the footprint solder_mask_margin is used.
- solderPasteMargin: float | None = None
The optional
solderPasteMargintoken attribute defines the distance the solder paste should be changed for the pad
- solderPasteMarginRatio: float | None = None
The optional
solderPasteMarginRatiotoken attribute defines the percentage to reduce the pad outline by to generate the solder paste size
- clearance: float | None = None
The optional
clearancetoken attribute defines the clearance from all copper to the pad. If not set, the footprint clearance is used.
- zoneConnect: int | None = None
The optional
zoneConnecttoken attribute defines type of zone connect for the pad. If not defined, the footprint zone_connection setting is used. Valid connection types are integers values from 0 to 3 which defines: - 0: Pad is not connect to zone - 1: Pad is connected to zone using thermal relief - 2: Pad is connected to zone using solid fill - 3: Only through hold pad is connected to zone using thermal relief
- thermalWidth: float | None = None
The optional
thermalWidthtoken attribute defines the thermal relief spoke width used for zone connection for the pad. This only affects a pad connected to a zone with a thermal relief. If not set, the footprint thermal_width setting is used.
- thermalGap: float | None = None
The optional
thermalGaptoken attribute defines the distance from the pad to the zone of the thermal relief connection for the pad. This only affects a pad connected to a zone with a thermal relief. If not set, the footprint thermal_gap setting is used.
- customPadOptions: PadOptions | None = None
The optional
customPadOptionstoken defines the options when a custom pad is defined
- customPadPrimitives: List
The optional
customPadPrimitivesdefines the drawing objects and options used to define a custom pad
- classmethod from_sexpr(exp: list) Pad
Convert the given S-Expresstion into a Pad object
- Args:
exp (list): Part of parsed S-Expression
(pad ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not pad
- Returns:
Pad: Object of the class initialized with the given S-Expression
- to_sexpr(indent: int = 2, newline: bool = True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.footprint.Footprint(libraryNickname: str | None = None, entryName: str | None = None, version: str | None = None, generator: str | None = None, locked: bool = False, placed: bool = False, layer: str = 'F.Cu', tedit: str = '64de79c2', tstamp: str | None = None, position: ~kiutils.items.common.Position | None = None, description: str | None = None, tags: str | None = None, properties: ~typing.Dict = <factory>, path: str | None = None, autoplaceCost90: int | None = None, autoplaceCost180: int | None = None, solderMaskMargin: float | None = None, solderPasteMargin: float | None = None, solderPasteRatio: float | None = None, clearance: float | None = None, zoneConnect: int | None = None, thermalWidth: float | None = None, thermalGap: float | None = None, attributes: ~kiutils.footprint.Attributes = <factory>, privateLayers: ~typing.List[str] = <factory>, graphicItems: ~typing.List = <factory>, pads: ~typing.List[~kiutils.footprint.Pad] = <factory>, zones: ~typing.List[~kiutils.items.zones.Zone] = <factory>, groups: ~typing.List[~kiutils.items.common.Group] = <factory>, models: ~typing.List[~kiutils.footprint.Model] = <factory>, filePath: str | None = None)
Bases:
objectThe
footprinttoken defines a footprint.- property libId: str
The
lib_idtoken defines the link to footprint library of the footprint. This only applies to footprints defined in the board file format, in a regular footprint file this id defines the footprint’s name. Inkiutils, the token is a combination of both thelibraryNicknameandentryNametoken. Setting thelib_idtoken will update those tokens accordingly.- Returns:
Symbol id in the following format:
<libraryNickname>:<entryName>or<entryName>, iflibraryNicknametoken is not set.
- libraryNickname: str | None = None
The optional
libraryNicknametoken defines which symbol library this symbol belongs to and is a part of theidtoken
- entryName: str = None
The
entryNametoken defines the actual name of the symbol and is a part of theidtoken
- version: str | None = None
The
versiontoken attribute defines the symbol library version using the YYYYMMDD date format
- generator: str | None = None
The
generatortoken attribute defines the program used to write the file
- locked: bool = False
The optional
lockedtoken defines a flag to indicate the footprint cannot be edited
- placed: bool = False
The optional
placedtoken defines a flag to indicate that the footprint has not been placed
- layer: str = 'F.Cu'
The
layertoken defines the canonical layer the footprint is placed
- tedit: str = '64de79c2'
The
tedittoken defines a the last time the footprint was edited
- tstamp: str | None = None
The
tstamptoken defines the unique identifier for the footprint. This only applies to footprints defined in the board file format.
- position: Position | None = None
The
positiontoken defines the X and Y coordinates and rotational angle of the footprint. This only applies to footprints defined in the board file format.
- description: str | None = None
The optional
descriptiontoken defines a string containing the description of the footprint
- tags: str | None = None
The optional
tagstoken defines a string of search tags for the footprint
- properties: Dict
The
propertiestoken defines dictionary of properties as key / value pairs where key being the name of the property and value being the description of the property
- path: str | None = None
The
pathtoken defines the hierarchical path of the schematic symbol linked to the footprint. This only applies to footprints defined in the board file format.
- autoplaceCost90: int | None = None
The optional
autoplaceCost90token defines the vertical cost of when using the automatic footprint placement tool. Valid values are integers 1 through 10. This only applies to footprints defined in the board file format.
- autoplaceCost180: int | None = None
The optional
autoplaceCost180token defines the horizontal cost of when using the automatic footprint placement tool. Valid values are integers 1 through 10. This only applies to footprints defined in the board file format.
- solderMaskMargin: float | None = None
The optional
solderMaskMargintoken defines the solder mask distance from all pads in the footprint. If not set, the board solder_mask_margin setting is used.
- solderPasteMargin: float | None = None
The optional
solderPasteMargintoken defines the solder paste distance from all pads in the footprint. If not set, the board solder_paste_margin setting is used.
- solderPasteRatio: float | None = None
The optional
solderPasteRatiotoken defines the percentage of the pad size used to define the solder paste for all pads in the footprint. If not set, the board solder_paste_ratio setting is used.
- clearance: float | None = None
The optional
clearancetoken defines the clearance to all board copper objects for all pads in the footprint. If not set, the board clearance setting is used.
- zoneConnect: int | None = None
The optional
zoneConnecttoken defines how all pads are connected to filled zone. If not defined, then the zone connect_pads setting is used. Valid connection types are integers values from 0 to 3 which defines:0: Pads are not connect to zone
1: Pads are connected to zone using thermal reliefs
2: Pads are connected to zone using solid fill
3: Only through hold pads are connected to zone using thermal reliefs
- thermalWidth: float | None = None
The optional
thermalWidthtoken defined the thermal relief spoke width used for zone connections for all pads in the footprint. This only affects pads connected to zones with thermal reliefs. If not set, the zone thermal_width setting is used.
- thermalGap: float | None = None
The optional
thermalGapis the distance from the pad to the zone of thermal relief connections for all pads in the footprint. If not set, the zone thermal_gap setting is used. If not set, the zone thermal_gap setting is used.
- attributes: Attributes
The optional
attributessection defines the attributes of the footprint
- privateLayers: List[str]
The optional
privateLayerstoken defines a list of private layers assigned to the footprint. Valid values are:User.[1-9],User.Drawings,User.Comments,User.Eco[1-2].Available since KiCad v7.
- graphicItems: List
The
graphicobjects section is a list of one or more graphical objects in the footprint. Possible items are defined inkiutils.items.fpitems. At minimum the reference designator and value text objects are defined. All other graphical objects are optional.The
Imagetoken is supported since KiCad v7 and must be added into this list when used.
- filePath: str | None = None
The
filePathtoken defines the path-like string to the library file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_sexpr(exp: list) Footprint
Convert the given S-Expresstion into a Footprint object
- Args:
exp (list): Part of parsed S-Expression
(footprint ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not footprint
- Returns:
Footprint: Object of the class initialized with the given S-Expression
- classmethod from_file(filepath: str, encoding: str | None = None) Footprint
Load a footprint directly from a KiCad footprint file (.kicad_mod) and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
Footprint: Object of the Footprint class initialized with the given KiCad footprint
- classmethod create_new(library_id: str, value: str, type: str = 'other', reference: str = 'REF**') Footprint
Creates a new empty footprint with its attributes set as KiCad would create it
- Args:
library_link (str): Denotes the name of the library as well as the footprint. Like Connector:Conn01x02)
value (str): The value text item (printed on the fabrication layer as
valueattribute)type (str): Type of footprint (
smd,through_holeorother). Defaults to ‘other’.reference (str): Reference of the footprint. Defaults to REF**.
- Raises:
Exception: When the given type is something other than listed above
- Returns:
Footprint: Empty footprint
- to_file(filepath=None, encoding: str | None = None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- encoding (str, optional): Encoding of the output file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent=0, newline=True, layerInFirstLine=False) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to True.
layerInFirstLine (bool): Prints the
layertoken in the first line. Defaults to False
- Returns:
str: S-Expression of this object
Library tables (kiutils.libraries)
Classes to manage KiCad footprint and symbol library tables
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
19.02.2022 - created
- class kiutils.libraries.Library(name: str = '', type: str = 'KiCad', uri: str = '', options: str = '', description: str = '', active: bool = True)
Bases:
objectThe
librarytoken defines either a symbol library or a footprint library in a library table file (fp_lib_tableorsym_lib_table)- name: str = ''
The
nametoken defines the name of the library as displayed in the project
- type: str = 'KiCad'
The
typetoken defines the type of the library, usuallyKiCad
- uri: str = ''
The
uritoken defines the path to the library files
- options: str = ''
The
optionstoken (..) TBD
- description: str = ''
The
descriptiontoken (..) TBD
- active: bool = True
The
activetoken sets if the library is loaded by KiCad
- classmethod from_sexpr(exp: list) Library
Convert the given S-Expresstion into a Library object
- Args:
exp (list): Part of parsed S-Expression
(lib ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not lib
- Returns:
Library: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.libraries.LibTable(type: str = 'sym_lib_table', libs: ~typing.List[~kiutils.libraries.Library] = <factory>, filePath: str | None = None)
Bases:
objectThe
libtabletoken defines thefp_lib_tableorsym_lib_tablefile of KiCad- type: str = 'sym_lib_table'
The
typetoken defines the type of the library table. Valid values arefp_lib_tableorsym_lib_table.
- filePath: str | None = None
The
filePathtoken defines the path-like string to the library file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_sexpr(exp: list) LibTable
Convert the given S-Expresstion into a LibTable object
- Args:
exp (list): Part of parsed S-Expression
(sym_lib_table ...)or(fp_lib_table ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not lib
- Returns:
LibTable: Object of the class initialized with the given S-Expression
- classmethod from_file(filepath: str, encoding: str | None = None) LibTable
Load a library table directly from a KiCad library table file and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
LibTable: Object of the LibTable class initialized with the given KiCad library table
- classmethod create_new(type: str = 'sym_lib_table') LibTable
Creates a new empty library table with its attributes set as KiCad would create it
- Args:
type (str):
fp_lib_tableorsym_lib_table. Defaults to the latter.
- Returns:
Library: Empty library table of given type
- to_file(filepath=None, encoding: str | None = None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- encoding (str, optional): Encoding of the output file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent=0, newline=True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
Schematics (kiutils.schematic)
Class to manage KiCad schematics
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
19.02.2022 - created
- Documentation taken from:
- class kiutils.schematic.Schematic(version: str = '20211014', generator: str = 'kiutils', uuid: str | None = None, paper: ~kiutils.items.common.PageSettings = <factory>, titleBlock: ~kiutils.items.common.TitleBlock | None = None, libSymbols: ~typing.List[~kiutils.symbol.Symbol] = <factory>, schematicSymbols: ~typing.List[~kiutils.items.schitems.SchematicSymbol] = <factory>, junctions: ~typing.List[~kiutils.items.schitems.Junction] = <factory>, noConnects: ~typing.List[~kiutils.items.schitems.NoConnect] = <factory>, busEntries: ~typing.List[~kiutils.items.schitems.BusEntry] = <factory>, busAliases: ~typing.List[~kiutils.items.schitems.BusAlias] = <factory>, graphicalItems: ~typing.List[~kiutils.items.schitems.Connection | ~kiutils.items.schitems.PolyLine] = <factory>, shapes: ~typing.List[~kiutils.items.schitems.Arc | ~kiutils.items.schitems.Circle | ~kiutils.items.schitems.Rectangle] = <factory>, images: ~typing.List[~kiutils.items.common.Image] = <factory>, texts: ~typing.List[~kiutils.items.schitems.Text] = <factory>, textBoxes: ~typing.List[~kiutils.items.schitems.TextBox] = <factory>, labels: ~typing.List[~kiutils.items.schitems.LocalLabel] = <factory>, globalLabels: ~typing.List[~kiutils.items.schitems.GlobalLabel] = <factory>, hierarchicalLabels: ~typing.List[~kiutils.items.schitems.HierarchicalLabel] = <factory>, netclassFlags: ~typing.List[~kiutils.items.schitems.NetclassFlag] = <factory>, sheets: ~typing.List[~kiutils.items.schitems.HierarchicalSheet] = <factory>, sheetInstances: ~typing.List[~kiutils.items.schitems.HierarchicalSheetInstance] = <factory>, symbolInstances: ~typing.List[~kiutils.items.schitems.SymbolInstance] = <factory>, filePath: str | None = None)
Bases:
objectThe
schematictoken represents a KiCad schematic as defined by the schematic file format- Documenatation:
- version: str = '20211014'
The
versiontoken attribute defines the schematic version using the YYYYMMDD date format
- generator: str = 'kiutils'
The
generatortoken attribute defines the program used to write the file
- uuid: str | None = None
The optional
uuiddefines the universally unique identifier. Defaults toNone.
- paper: PageSettings
The
papertoken defines the drawing page size and orientation
- titleBlock: TitleBlock | None = None
The
titleBlocktoken defines author, date, revision, company and comments of the schematic
- libSymbols: List[Symbol]
The
libSymbolstoken defines a list of symbols that are used in the schematic
- schematicSymbols: List[SchematicSymbol]
The
schematicSymbolstoken defines a list of instances of symbols used in the schematic
- noConnects: List[NoConnect]
The
noConnecttoken defines a list of no_connect markers used in the schematic
- graphicalItems: List[Connection | PolyLine]
The
graphicalItemstoken defines a list ofbus,wireorpolylineelements used in the schematic
- shapes: List[Arc | Circle | Rectangle]
The
shapestoken defines a list of graphical shapes (Arc,RectangleorCircle) used in the schematic.Available since KiCad v7
- labels: List[LocalLabel]
The
labelstoken defines a list of local labels used in the schematic
- globalLabels: List[GlobalLabel]
The
globalLabelstoken defines a list of global labels used in the schematic
- hierarchicalLabels: List[HierarchicalLabel]
The
herarchicalLabelstoken defines a list of hierarchical labels used in the schematic
- netclassFlags: List[NetclassFlag]
The
netclassFlagstoken defines a list of netclass flags used in the schematic.Available since KiCad v7
- sheets: List[HierarchicalSheet]
The
sheetstoken defines a list of hierarchical sheets used in the schematic
- sheetInstances: List[HierarchicalSheetInstance]
The
sheetInstancestoken defines a list of instances of hierarchical sheets used in the schematic
- symbolInstances: List[SymbolInstance]
The
symbolInstancestoken defines a list of instances of symbols fromlibSymbolstoken used in the schematic
- filePath: str | None = None
The
filePathtoken defines the path-like string to the schematic file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_sexpr(exp: list) Schematic
Convert the given S-Expresstion into a Schematic object
- Args:
exp (list): Part of parsed S-Expression
(kicad_sch ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not kicad_sch
- Returns:
Schematic: Object of the class initialized with the given S-Expression
- classmethod from_file(filepath: str, encoding: str | None = None) Schematic
Load a schematic directly from a KiCad schematic file (.kicad_sch) and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
Schematic: Object of the Schematic class initialized with the given KiCad schematic
- classmethod create_new() Schematic
Creates a new empty schematic page with its attributes set as KiCad would create it
- Returns:
Schematic: Empty schematic
- to_file(filepath=None, encoding: str | None = None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- encoding (str, optional): Encoding of the output file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent=0, newline=True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
Symbols and Symbol Libraries (kiutils.symbol)
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
14.02.2022 - created
- Documentation taken from:
https://dev-docs.kicad.org/en/file-formats/sexpr-intro/index.html#_symbols
- class kiutils.symbol.SymbolAlternativePin(pinName: 'str' = '', electricalType: 'str' = 'input', graphicalStyle: 'str' = 'line')
Bases:
object- pinName: str = ''
The
pinNametoken defines the name of the alternative pin function
- electricalType: str = 'input'
The
electricalTypedefines the pin electrical connection. See symbol documentation for valid pin electrical connection types and descriptions.
- graphicalStyle: str = 'line'
The
graphicalStyledefines the graphical style used to draw the pin. See symbol documentation for valid pin graphical styles and descriptions.
- classmethod from_sexpr(exp: list) SymbolAlternativePin
Convert the given S-Expresstion into a SymbolAlternativePin object
- Args:
exp (list): Part of parsed S-Expression
(alternate ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not alternate
- Returns:
SymbolAlternativePin: Object of the class initialized with the given S-Expression
- to_sexpr(indent: int = 8, newline: bool = True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 8.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.symbol.SymbolPin(electricalType: str = 'input', graphicalStyle: str = 'line', position: ~kiutils.items.common.Position = <factory>, length: float = 0.254, name: str = '', nameEffects: ~kiutils.items.common.Effects | None = None, number: str = '0', numberEffects: ~kiutils.items.common.Effects | None = None, hide: bool = False, alternatePins: ~typing.List[~kiutils.symbol.SymbolAlternativePin] = <factory>)
Bases:
objectThe
pintoken defines a pin in a symbol definition.- electricalType: str = 'input'
The
electricalTypedefines the pin electrical connection. See documentation below for valid pin electrical connection types and descriptions.
- graphicalStyle: str = 'line'
The
graphicalStyledefines the graphical style used to draw the pin. See documentation below for valid pin graphical styles and descriptions.
- position: Position
The
positiondefines the X and Y coordinates and rotation angle of the connection point of the pin relative to the symbol origin position
- length: float = 0.254
The
lengthtoken attribute defines the LENGTH of the pin
- name: str = ''
The
nametoken defines a string containing the name of the pin
- nameEffects: Effects | None = None
The optional
nameEffectstoken define how the pin’s name is displayed. This token is mandatory for KiCad v6 and was made optional since KiCad v7.
- number: str = '0'
The
numbertoken defines a string containing the NUMBER of the pin
- numberEffects: Effects | None = None
The optional
numberEffectstoken define how the pin’s number is displayed. This token is mandatory for KiCad v6 and was made optional since KiCad v7.
- hide: bool = False
The ‘hide’ token defines if the pin should be hidden
- alternatePins: List[SymbolAlternativePin]
The ‘alternate’ token defines one or more alternative definitions for the symbol pin
- classmethod from_sexpr(exp: list) SymbolPin
Convert the given S-Expresstion into a SymbolPin object
- Args:
exp (list): Part of parsed S-Expression
(pin ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not pin
- Returns:
SymbolPin: Object of the class initialized with the given S-Expression
- to_sexpr(indent: int = 4, newline: bool = True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 4.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.symbol.Symbol(libraryNickname: str | None = None, entryName: str | None = None, unitId: int | None = None, styleId: int | None = None, extends: str | None = None, hidePinNumbers: bool = False, pinNames: bool = False, pinNamesHide: bool = False, pinNamesOffset: float | None = None, inBom: bool | None = None, onBoard: bool | None = None, isPower: bool = False, properties: ~typing.List[~kiutils.items.common.Property] = <factory>, graphicItems: ~typing.List = <factory>, pins: ~typing.List[~kiutils.symbol.SymbolPin] = <factory>, units: ~typing.List[~kiutils.symbol.Symbol] = <factory>)
Bases:
objectThe
symboltoken defines a symbol or sub-unit of a parent symbol. There can be zero or moresymboltokens in a symbol library file.- property libId: str
The
lib_idtoken defines a unique “LIBRARY_ID” for each top level symbol in the library or a unique “UNIT_ID” for each unit embedded in a parent symbol. Library identifiers are only valid it top level symbols and unit identifiers are on valid as unit symbols inside a parent symbol.- The following conventions apply:
“LIBRARY_ID” (top-level symbol):
[<libraryNickname>:]<entryName>(the library nickname part is optional here)“UNIT_ID” (child symbol):
<entryName>_<unitId>_<styleId>
In
kiutils, thelib_idtoken is a combination oflibraryNickname,entryName,unitIdandstyleIdtokens. Setting thelib_idtoken will update all those tokens accordingly.- Returns:
If the
libraryNicknameis set:<libraryNickname>:<entryName>If the
libraryNicknameisNone:<entryName>or<entryName>_<unitId>_<styleId>, depending if these tokens are set.
- libraryNickname: str | None = None
The optional
libraryNicknametoken defines which symbol library this symbol belongs to and is a part of theidtoken
- entryName: str = None
The
entryNametoken defines the actual name of the symbol and is a part of theidtoken
- unitId: int | None = None
The
unitIdtoken identifies which unit the symbol represents and is a part of theidtoken
- styleId: int | None = None
The
styleIdtoken indicates which body style the unit represents and is a part of theidtoken
- extends: str | None = None
The optional
extendstoken attribute defines the “LIBRARY_ID” of another symbol inside the current library from which to derive a new symbol. Extended symbols currently can only have different symbol properties than their parent symbol.
- hidePinNumbers: bool = False
The
pin_numberstoken defines the visibility setting of the symbol pin numbers for the entire symbol. If set to False, the all of the pin numbers in the symbol are visible.
- pinNames: bool = False
The optional
pinNamestoken defines the attributes for all of the pin names of the symbol. If thepinNamestoken is not defined, all symbol pins are shown with the default offset.
- pinNamesHide: bool = False
The optional
pinNamesOffsettoken defines the pin name of all pins should be hidden
- pinNamesOffset: float | None = None
The optional
pinNamesOffsettoken defines the pin name offset for all pin names of the symbol. If not defined, the pin name offset is 0.508mm (0.020”)
- inBom: bool | None = None
The optional
inBomtoken, defines if a symbol is to be include in the bill of material output. If undefined, the token will not be generated in self.to_sexpr().
- onBoard: bool | None = None
The
onBoardtoken, defines if a symbol is to be exported from the schematic to the printed circuit board. If undefined, the token will not be generated in self.to_sexpr().
- isPower: bool = False
The
isPowertoken’s documentation was not done yet ..
- properties: List[Property]
The
propertiesis a list of properties that define the symbol. The following properties are mandatory when defining a parent symbol: “Reference”, “Value”, “Footprint”, and “Datasheet”. All other properties are optional. Unit symbols cannot have any properties.
- graphicItems: List
The
graphicItemssection is list of graphical arcs, circles, curves, lines, polygons, rectangles, text and text boxes that define the symbol drawing. Possible items are defined inkiutils.items.syitems. This section can be empty if the symbol has no graphical items.
- pins: List[SymbolPin]
The
pinssection is a list of pins that are used by the symbol. This section can be empty if the symbol does not have any pins.
- classmethod from_sexpr(exp: list) Symbol
Convert the given S-Expression into a Symbol object
- Args:
exp (list): Part of parsed S-Expression
(symbol ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not symbol
- Returns:
Symbol: Object of the class initialized with the given S-Expression
- classmethod create_new(id: str, reference: str, value: str, footprint: str = '', datasheet: str = '') Symbol
Creates a new empty symbol as KiCad would create it
- Args:
id (str): ID token of the symbol
reference (str): Reference designator
value (str): Value of the
valuepropertyfootprint (str): Value of the
footprintproperty. Defaults to “” (empty string).datasheet (str): Value of the
datasheetproperty. Defaults to “” (empty string).
- Returns:
Symbol: New symbol initialized with default values
- to_sexpr(indent: int = 2, newline: bool = True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.symbol.SymbolLib(version: str = '20211014', generator: str | None = None, symbols: ~typing.List[~kiutils.symbol.Symbol] = <factory>, filePath: str | None = None)
Bases:
objectA symbol library defines the common format of
.kicad_symfiles. A symbol library may contain zero or more symbols.- version: str = '20211014'
The
versiontoken attribute defines the symbol library version using the YYYYMMDD date format
- generator: str | None = None
The
generatortoken attribute defines the program used to write the file
- symbols: List[Symbol]
The
symbolstoken defines a list of zero or more symbols that are part of the symbol library
- filePath: str | None = None
The
filePathtoken defines the path-like string to the library file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_file(filepath: str, encoding: str | None = None) SymbolLib
Load a symbol library directly from a KiCad footprint file (.kicad_sym) and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
SymbolLib: Object of the SymbolLib class initialized with the given KiCad symbol library
- classmethod from_sexpr(exp: list) SymbolLib
Convert the given S-Expresstion into a SymbolLib object
- Args:
exp (list): Part of parsed S-Expression
(kicad_symbol_lib ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not kicad_symbol_lib
- Returns:
SymbolLib: Object of the class initialized with the given S-Expression
- to_file(filepath=None, encoding: str | None = None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- encoding (str, optional): Encoding of the output file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent: int = 0, newline: bool = True) str
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
Worksheets (kiutils.wks)
Classes for worksheets (.kicad_wks) and its contents
- Author:
Marvin Mager - @mvnmgrx - 2022
- License identifier:
GPL-3.0
- Major changes:
24.06.2022 - created
- Documentation taken from:
- class kiutils.wks.WksFontSize(width: float = 1.0, height: float = 1.0)
Bases:
objectThe
WksFontSizetoken defines the size of a font in a worksheet- width: float = 1.0
The
widthtoken defines the width of the font. Defaults to 1.
- height: float = 1.0
The
heighttoken defines the height of the font. Defaults to 1.
- classmethod from_sexpr(exp: list) WksFontSize
Convert the given S-Expresstion into a WksFontSize object
- Args:
exp (list): Part of parsed S-Expression
(size ...)
- Raises:
Exception: When given parameter’s type is not a list or its length is not equal to 3
Exception: When the first item of the list is not
size
- Returns:
WksFontSize: Object of the class initialized with the given S-Expression
- to_sexpr(indent=0, newline=False)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
- class kiutils.wks.WksFont(linewidth: float | None = None, size: WksFontSize | None = None, bold: bool = False, italic: bool = False)
Bases:
objectThe
WksFonttoken defines how a text is drawn- linewidth: float | None = None
The optional
linewidthtoken defines the width of the font’s lines
- size: WksFontSize | None = None
The optional
sizetoken defines the size of the font
- bold: bool = False
The
boldtoken defines if the font is drawn bold. Defaults to False.
- italic: bool = False
The
italictoken defines if the font is drawn italic. Defaults to False.
- classmethod from_sexpr(exp: list) WksFont
Convert the given S-Expresstion into a WksFont object
- Args:
exp (list): Part of parsed S-Expression
(font ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
font
- Returns:
WksFont: Object of the class initialized with the given S-Expression
- to_sexpr(indent=0, newline=False)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
- str: S-Expression of this object. Will return an empty string, if all members of this
class are set to
None.
- class kiutils.wks.WksPosition(X: float = 0.0, Y: float = 0.0, corner: str | None = None)
Bases:
objectThe
WksPositiontoken defines the positional coordinates and rotation of an worksheet object.- X: float = 0.0
The
Xattribute defines the horizontal position of the object. Defaults to 0.
- Y: float = 0.0
The
Yattribute defines the vertical position of the object. Defaults to 0.
- corner: str | None = None
The optional
cornertoken is used to define the initial corner for repeating
- classmethod from_sexpr(exp: list) WksPosition
Convert the given S-Expresstion into a WksPosition object
- Args:
exp (list): Part of parsed S-Expression
(xxx ...)
- Raises:
- Exception: When the given expression is not of type
listor the list is less than 3 items long
- Exception: When the given expression is not of type
- Returns:
WksPosition: Object of the class initialized with the given S-Expression
- to_sexpr() str
This object does not have a direct S-Expression representation.
- class kiutils.wks.Line(name: str = '', start: ~kiutils.wks.WksPosition = <factory>, end: ~kiutils.wks.WksPosition = <factory>, option: str | None = None, lineWidth: float | None = None, repeat: int | None = None, incrx: float | None = None, incry: float | None = None, comment: str | None = None)
Bases:
objectThe
Linetoken defines how a line is drawn in a work sheet- name: str = ''
The
nametoken defines the name of the line object
- start: WksPosition
The
starttoken defines the start position of the line
- end: WksPosition
The
endtoken defines the end position of the line
- option: str | None = None
The optional
optiontoken defines on which pages the line shall be shown. Possible values are: - None: Item will be shown on all pages - notonpage1: On all pages except page 1 - page1only: Only visible on page 1
- lineWidth: float | None = None
The optional
lineWidthtoken attribute defines the width of the rectangle lines
- repeat: int | None = None
The optional
repeattoken defines the count for repeated incremental lines
- incrx: float | None = None
The optional
incrxtoken defines the repeat distance on the X axis
- incry: float | None = None
The optional
incrytoken defines the repeat distance on the Y axis
- comment: str | None = None
The optional
commenttoken is a comment for the line object
- classmethod from_sexpr(exp: list) Line
Convert the given S-Expresstion into a Line object
- Args:
exp (list): Part of parsed S-Expression
(line ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
tbtext
- Returns:
Line: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.wks.Rect(name: str = '', start: ~kiutils.wks.WksPosition = <factory>, end: ~kiutils.wks.WksPosition = <factory>, option: str | None = None, lineWidth: float | None = None, repeat: int | None = None, incrx: float | None = None, incry: float | None = None, comment: str | None = None)
Bases:
objectThe
Recttoken defines how a rectangle is drawn in a work sheet- name: str = ''
The
nametoken defines the name of the rectangle object
- start: WksPosition
The
starttoken defines the start position of the rectangle
- end: WksPosition
The
endtoken defines the end position of the rectangle
- option: str | None = None
The optional
optiontoken defines on which pages the rectangle shall be shown. Possible values are: - None: Item will be shown on all pages - notonpage1: On all pages except page 1 - page1only: Only visible on page 1
- lineWidth: float | None = None
The optional
lineWidthtoken attribute defines the width of the rectangle lines
- repeat: int | None = None
The optional
repeattoken defines the count for repeated incremental rectangles
- incrx: float | None = None
The optional
incrxtoken defines the repeat distance on the X axis
- incry: float | None = None
The optional
incrytoken defines the repeat distance on the Y axis
- comment: str | None = None
The optional
commenttoken is a comment for the rectangle object
- classmethod from_sexpr(exp: list) Rect
Convert the given S-Expresstion into a Rect object
- Args:
exp (list): Part of parsed S-Expression
(rect ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
rect
- Returns:
Rect: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.wks.Polygon(name: str = '', position: ~kiutils.wks.WksPosition = <factory>, option: str | None = None, rotate: float | None = None, coordinates: ~typing.List[~kiutils.wks.WksPosition] = <factory>, repeat: int | None = None, incrx: float | None = None, incry: float | None = None, comment: str | None = None)
Bases:
objectThe
Polygontoken defines a graphical polygon in a worksheet- name: str = ''
The
nametoken defines the name of the polygon
- position: WksPosition
The
positiontoken defines the coordinates of the polygon
- option: str | None = None
The optional
optiontoken defines on which pages the polygon shall be shown. Possible values are: - None: Item will be shown on all pages - notonpage1: On all pages except page 1 - page1only: Only visible on page 1
- rotate: float | None = None
The optional
rotatetoken defines the rotation angle of the polygon object
- coordinates: List[WksPosition]
The
coordinatestoken defines a list of X/Y coordinates that forms the polygon
- repeat: int | None = None
The optional
repeattoken defines the count for repeated incremental polygons
- incrx: float | None = None
The optional
incrxtoken defines the repeat distance on the X axis
- incry: float | None = None
The optional
incrytoken defines the repeat distance on the Y axis
- comment: str | None = None
The optional
commenttoken is a comment for the polygon object
- classmethod from_sexpr(exp: list) Polygon
Convert the given S-Expresstion into a Polygon object
- Args:
exp (list): Part of parsed S-Expression
(polygon ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
polygon
- Returns:
Polygon: Object of the class initialized with the given S-Expression
- to_sexpr(indent=0, newline=False)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
- class kiutils.wks.Bitmap(name: str = '', position: ~kiutils.wks.WksPosition = <factory>, option: str | None = None, scale: float = 1.0, repeat: int | None = None, incrx: float | None = None, incry: float | None = None, comment: str | None = None, pngdata: ~typing.List[str] = <factory>)
Bases:
objectThe
Polygontoken defines on or more embedded images- name: str = ''
The
nametoken defines the name of the bitmap
- position: WksPosition
The
positiontoken defines the coordinates of the bitmap
- option: str | None = None
The optional
optiontoken defines on which pages the image shall be shown. Possible values are: - None: Item will be shown on all pages - notonpage1: On all pages except page 1 - page1only: Only visible on page 1
- scale: float = 1.0
The
scaletoken defines the scale of the bitmap object
- repeat: int | None = None
The optional
repeattoken defines the count for repeated incremental bitmaps
- incrx: float | None = None
The optional
incrxtoken defines the repeat distance on the X axis
- incry: float | None = None
The optional
incrytoken defines the repeat distance on the Y axis
- comment: str | None = None
The optional
commenttoken is a comment for the bitmap object
- pngdata: List[str]
The
pngdatatoken defines a list of strings representing up to 32 bytes per entry of the image being saved.Format: - “xx xx xx xx xx (..) xx “
The list must be 32byte aligned, leaving a space after the last byte as shown in the format example.
- classmethod from_sexpr(exp: list) Bitmap
Convert the given S-Expresstion into a Bitmap object
- Args:
exp (list): Part of parsed S-Expression
(bitmap ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
bitmap
- Returns:
Bitmap: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.wks.TbText(text: str = '', name: str = '', position: ~kiutils.wks.WksPosition = <factory>, option: str | None = None, rotate: float | None = None, font: ~kiutils.wks.WksFont = <factory>, justify: ~kiutils.items.common.Justify | None = None, maxlen: float | None = None, maxheight: float | None = None, repeat: int | None = None, incrx: float | None = None, incry: float | None = None, incrlabel: int | None = None, comment: str | None = None)
Bases:
objectThe
TbTexttoken define text used in the title block of a work sheet- text: str = ''
The
texttoken defines the text itself
- name: str = ''
The
nametoken defines the name of the text object
- position: WksPosition
The
positiontoken defines the position of the text
- option: str | None = None
The optional
optiontoken defines on which pages the text shall be shown. Possible values are: - None: Item will be shown on all pages - notonpage1: On all pages except page 1 - page1only: Only visible on page 1
- rotate: float | None = None
The optional
rotatetoken defines the rotation of the text in degrees
- maxlen: float | None = None
The optional
maxlentoken defines the maximum length of the text
- maxheight: float | None = None
The optional
maxheighttoken defines the maximum height of the text
- repeat: int | None = None
The optional
repeattoken defines the count for repeated incremental text
- incrx: float | None = None
The optional
incrxtoken defines the repeat distance on the X axis
- incry: float | None = None
The optional
incrytoken defines the repeat distance on the Y axis
- incrlabel: int | None = None
The optional
incrlabeltoken defines the amount of characters that are moved with every repeated incremental text
- comment: str | None = None
The optional
commenttoken is a comment for the text object
- classmethod from_sexpr(exp: list) TbText
Convert the given S-Expresstion into a TbText object
- Args:
exp (list): Part of parsed S-Expression
(tbtext ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
tbtext
- Returns:
TbText: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.wks.TextSize(width: float = 1.5, height: float = 1.5)
Bases:
objectThe
TextSizedefine the default width and height of text- width: float = 1.5
The
widthtoken defines the default width of a text element. Defaults to 1,5.
- height: float = 1.5
The
heighttoken defines the default height of a text element. Defaults to 1,5.
- classmethod from_sexpr(exp: list) TextSize
Convert the given S-Expresstion into a TextSize object
- Args:
exp (list): Part of parsed S-Expression
(textsize ...)
- Raises:
Exception: When given parameter’s type is not a list or when its not exactly 3 long
Exception: When the first item of the list is not
textsize
- Returns:
TextSize: Object of the class initialized with the given S-Expression
- to_sexpr(indent=0, newline=False)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to False.
- Returns:
str: S-Expression of this object
- class kiutils.wks.Setup(textSize: ~kiutils.wks.TextSize = <factory>, lineWidth: float = 0.15, textLineWidth: float = 0.15, leftMargin: float = 10.0, rightMargin: float = 10.0, topMargin: float = 10.0, bottomMargin: float = 10.0)
Bases:
objectThe
setuptoken defines the configuration information for the work sheet- lineWidth: float = 0.15
The
lineWidthtoken attribute defines the default width of lines. Defaults to 0,15.
- textLineWidth: float = 0.15
The
textLineWidthtoken attribute define the default width of the lines used to draw text. Defaults to 0,15.
- leftMargin: float = 10.0
The
leftMargintoken defines the distance from the left edge of the page
- rightMargin: float = 10.0
The
rightMargintoken defines the distance from the right edge of the page
- topMargin: float = 10.0
The
topMargintoken defines the distance from the top edge of the page
- bottomMargin: float = 10.0
The
bottomMargintoken defines the distance from the bottom edge of the page
- classmethod from_sexpr(exp: list) Setup
Convert the given S-Expresstion into a Setup object
- Args:
exp (list): Part of parsed S-Expression
(setup ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
setup
- Returns:
Setup: Object of the class initialized with the given S-Expression
- to_sexpr(indent=2, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 2.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object
- class kiutils.wks.WorkSheet(version: str = '20211014', generator: str = 'kiutils', setup: ~kiutils.wks.Setup = <factory>, drawingObjects: ~typing.List = <factory>, filePath: str | None = None)
Bases:
objectThe
WorkSheettoken defines a KiCad worksheet (.kicad_wks file)- version: str = '20211014'
The
versiontoken defines the work sheet version using the YYYYMMDD date format
- generator: str = 'kiutils'
The
generatortoken defines the program used to write the file
- drawingObjects: List
The
drawingObjectstoken can contain zero or more texts, lines, rectangles, polys or images
- filePath: str | None = None
The
filePathtoken defines the path-like string to the board file. Automatically set whenself.from_file()is used. Allows the use ofself.to_file()without parameters.
- classmethod from_sexpr(exp: list) WorkSheet
Convert the given S-Expresstion into a WorkSheet object
- Args:
exp (list): Part of parsed S-Expression
(kicad_wks ...)
- Raises:
Exception: When given parameter’s type is not a list
Exception: When the first item of the list is not
kicad_wks
- Returns:
WorkSheet: Object of the class initialized with the given S-Expression
- classmethod from_file(filepath: str, encoding: str | None = None) WorkSheet
Load a worksheet directly from a KiCad worksheet file (.kicad_wks) and sets the
self.filePathattribute to the given file path.- Args:
filepath (str): Path or path-like object that points to the file
- encoding (str, optional): Encoding of the input file. Defaults to None (platform
dependent encoding).
- Raises:
Exception: If the given path is not a file
- Returns:
WorkSheet: Object of the WorkSheet class initialized with the given KiCad worksheet
- classmethod create_new() WorkSheet
Creates a new empty worksheet as KiCad would create it
- Returns:
WorkSheet: A empty worksheet
- to_file(filepath=None)
Save the object to a file in S-Expression format
- Args:
- filepath (str, optional): Path-like string to the file. Defaults to None. If not set,
the attribute
self.filePathwill be used instead.
- Raises:
Exception: If no file path is given via the argument or via self.filePath
- to_sexpr(indent=0, newline=True)
Generate the S-Expression representing this object
- Args:
indent (int): Number of whitespaces used to indent the output. Defaults to 0.
newline (bool): Adds a newline to the end of the output. Defaults to True.
- Returns:
str: S-Expression of this object