Footprint
- class edea.kicad.pcb.footprint.FootprintAttributes(type: Literal['smd', 'through_hole', None] = None, board_only: bool = False, exclude_from_pos_files: bool = False, exclude_from_bom: bool = False, allow_missing_courtyard: bool = False, allow_soldermask_bridges: bool = False)
Bases:
KicadPcbExpr
The footprint attributes for KiCad PCB expressions.
- Parameters:
type – The footprint type (SMD or through-hole).
board_only – The footprint is only defined in the board and has no reference to any schematic symbol.
exclude_from_pos_files – The footprint position information should not be included when creating position files.
exclude_from_bom – The footprint should be excluded when creating bill of materials (BOM) files.
allow_missing_courtyard – Whether to allow missing courtyard or not.
allow_soldermask_bridges – Whether to allow soldermask bridges or not.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“attr”).
- class edea.kicad.pcb.footprint.ZoneConnection(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
StrEnum
Used to select zone connection types for KiCad PCB expressions.
- class edea.kicad.pcb.footprint.FootprintText(type: ~typing.Literal['reference', 'value', 'user'] = 'user', locked: bool = False, text: str = '', at: ~edea.kicad.pcb.common.Position = <factory>, layer: ~edea.kicad.pcb.graphics.LayerKnockout = <factory>, hide: bool = False, effects: ~edea.kicad.common.Effects = <factory>, tstamp: ~uuid.UUID = <factory>, render_cache: ~edea.kicad.pcb.common.RenderCache | None = None)
Bases:
KicadPcbExpr
The text elements associated with footprints in KiCad PCB expressions.
- Parameters:
type – The text type (reference, value, or user-defined).
locked – Whether the text is locked or not.
text – The text content.
at – The X-Y coordinates of the text element.
layer – The canonical layer the text resides on.
hide – Whether to hide the text element or not.
effects – How the text is displayed.
tstamp – The unique identifier of the text object.
render_cache – A RenderCache object .
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_text”).
- at: Position
- layer: LayerKnockout
- effects: Effects
- render_cache: RenderCache | None = None
- class edea.kicad.pcb.footprint.FootprintTextBox(locked: bool = False, text: str = '', start: tuple[float, float] | None = None, end: tuple[float, float] | None = None, pts: ~edea.kicad.common.Pts | None = None, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', tstamp: ~uuid.UUID = <factory>, effects: ~edea.kicad.common.Effects = <factory>, render_cache: ~edea.kicad.pcb.common.RenderCache | None = None, angle: float | None = None, stroke: ~edea.kicad.common.Stroke | None = None, hide: bool = False)
Bases:
BaseTextBox
The text box associated with footprints in KiCad PCB expressions.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_text_box”).
- class edea.kicad.pcb.footprint.FootprintLine(start: tuple[float, float], end: tuple[float, float], stroke: ~edea.kicad.common.Stroke | None = None, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', width: float | None = None, tstamp: ~uuid.UUID = <factory>)
Bases:
KicadPcbExpr
A footprint line element in KiCad PCB expressions.
- Parameters:
start – The starting X-Y coordinates of the line.
end – The ending X-Y coordinates of the line.
stroke – A Stroke object defining line style.
layer – The canonical layer the line resides on.
width – The line width.
tstamp – The unique identifier of the line object.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_line”).
- stroke: Stroke | None = None
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu'
- class edea.kicad.pcb.footprint.FootprintRectangle(start: tuple[float, float], end: tuple[float, float], stroke: ~edea.kicad.common.Stroke | None = None, fill: ~typing.Literal['solid', 'none', None] = None, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', tstamp: ~uuid.UUID = <factory>, width: float | None = None, locked: bool = False)
Bases:
KicadPcbExpr
A footprint rectangle element in KiCad PCB expressions.
- Parameters:
start – The coordinates of the upper left corner of the rectangle.
end – The coordinates of the low right corner of the rectangle.
stroke – A Stroke object defining outline style.
fill – How the rectangle is filled.
layer – The canonical layer the rectangle resides on.
tstamp – The unique identifierث of the rectangle object.
width – The line width of the rectangle.
locked – Whether the rectangle cannot be edited.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_rect”).
- stroke: Stroke | None = None
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu'
- class edea.kicad.pcb.footprint.FootprintCircle(center: tuple[float, float], end: tuple[float, float], stroke: ~edea.kicad.common.Stroke | None = None, fill: ~typing.Literal['solid', 'none'] | None = None, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', width: float | None = None, tstamp: ~uuid.UUID = <factory>, locked: bool = False)
Bases:
KicadPcbExpr
A footprint circle element in KiCad PCB expressions.
- Parameters:
center – The X-Y coordinates of the center of the circle.
end – The coordinates of the end of the radius of the circle.
stroke – A Stroke object defining outline style.
fill – How the circle is filled.
layer – The canonical layer the circle resides on.
width – The line width of the circle.
tstamp – The unique identifier of the circle object.
locked – Whether the circle can be edited or not.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_circle”).
- stroke: Stroke | None = None
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu'
- class edea.kicad.pcb.footprint.FootprintArc(start: tuple[float, float], mid: tuple[float, float], end: tuple[float, float], stroke: ~edea.kicad.common.Stroke | None = None, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', tstamp: ~uuid.UUID = <factory>, width: float | None = None, locked: bool = False)
Bases:
KicadPcbExpr
A footprint arc element in KiCad PCB expressions.
- Parameters:
start – The X-Y coordinates of the start position of the arc radius.
mid – The X-Y coordinates of the midpoint along the arc.
end – The X-Y coordinates of the end position of the arc radius.
stroke – Reference to a Stroke object defining the line style of the arc’s edge.
layer – The canonical layer the arc resides on.
tstamp – The unique identifier of the arc object.
width – The line width of the arc.
locked – Whether the arc can be edited or not.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_arc”).
- stroke: Stroke | None = None
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu'
- class edea.kicad.pcb.footprint.FootprintPolygon(pts: ~edea.kicad.common.Pts, stroke: ~edea.kicad.common.Stroke = <factory>, width: float | None = None, fill: ~typing.Literal['solid', 'none'] | None = None, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', locked: bool = False, tstamp: ~uuid.UUID = <factory>)
Bases:
KicadPcbExpr
A footprint polygon element in KiCad PCB expressions.
- Parameters:
pts – A list of (X, Y) coordinates of the polygon outline.
stroke – Reference to a Stroke object defining the line style of the polygon’s edge.
width – The width of the polygon.
fill – How the polygon is filled.
layer – The canonical layer the polygon resides on.
locked – Whether the polygon can be edited or not.
tstamp – The unique identifier of the polygon object.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_poly”).
- pts: Pts
- stroke: Stroke
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu'
- class edea.kicad.pcb.footprint.FootprintCurve(pts: Pts, layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'], tstamp: UUID, stroke: Stroke | None = None, locked: bool = False)
Bases:
KicadPcbExpr
A footprint curve element in KiCad PCB expressions.
- Parameters:
pts – A list of the four X/Y coordinates of each point of the curve.
layer – The canonical layer the curve resides on.
tstamp – The unique identifier of the curve object.
stroke – Reference to a Stroke object defining the line style of the curve’s edge.
locked – Whether the curve is locked for editing or not.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_curve”).
- pts: Pts
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue']
- stroke: Stroke | None = None
- class edea.kicad.pcb.footprint.FootprintPadDrillOval1(oval: Literal['oval'] = 'oval', size: float = 0)
Bases:
KicadPcbExpr
An oval drill footprint pad in KiCad PCB expressions.
- Parameters:
oval – The drill is oval instead of round.
size – The size of the oval drill pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“drill”).
- class edea.kicad.pcb.footprint.FootprintPadDrillOval2(oval: Literal['oval'] = 'oval', size_x: float = 0, size_y: float = 0)
Bases:
KicadPcbExpr
An oval drill footprint pad in KiCad PCB expressions.
- Parameters:
oval – The drill is oval instead of round.
size_x – The size in X direction of the oval drill pad.
size_y – The size in Y direction of the oval drill pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“drill”).
- class edea.kicad.pcb.footprint.FootprintPadDrillOval3(oval: Literal['oval'] = 'oval', offset: tuple[float, float] = (0, 0))
Bases:
KicadPcbExpr
An oval drill footprint pad with offset in KiCad PCB expressions.
- Parameters:
oval – The drill is oval instead of round.
offset – The drill offset coordinates from the center of the pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“drill”).
- class edea.kicad.pcb.footprint.FootprintPadDrillOval4(oval: Literal['oval'] = 'oval', size: float = 0, offset: tuple[float, float] = (0, 0))
Bases:
KicadPcbExpr
An oval drill footprint pad with size and offset in KiCad PCB expressions.
- Parameters:
oval – The drill is oval instead of round.
size – The size of the oval drill pad.
offset – The drill offset coordinates from the center of the pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“drill”).
- class edea.kicad.pcb.footprint.FootprintPadDrillOval5(oval: Literal['oval'] = 'oval', size_x: float = 0, size_y: float = 0, offset: tuple[float, float] = (0, 0))
Bases:
KicadPcbExpr
An oval drill footprint pad with size, offset, and individual X/Y sizes in KiCad PCB expressions.
- Parameters:
oval – The drill is oval instead of round.
size_x – The size in X direction of the oval drill pad.
size_y – The size in Y direction of the oval drill pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“drill”).
- class edea.kicad.pcb.footprint.FootprintPadDrillRound(diameter: float | None = None, offset: tuple[float, float] = (0, 0))
Bases:
KicadPcbExpr
A round drill footprint pad in KiCad PCB expressions.
- Parameters:
diameter – The diameter of the round drill pad.
:param offset:The drill offset coordinates from the center of the pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“drill”).
- class edea.kicad.pcb.footprint.FootprintPadOptions(clearance: Literal['outline', 'convexhull'], anchor: Literal['rect', 'circle'])
Bases:
KicadPcbExpr
The options for footprint pads in KiCad PCB expressions.
- Parameters:
clearance – The type of clearance used for a custom pad.
anchor – The anchor pad shape of a custom pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“options”).
- class edea.kicad.pcb.footprint.FootprintPadPrimitives(gr_polys: list[~edea.kicad.pcb.graphics.GraphicalPolygon] = <factory>, gr_lines: list[~edea.kicad.pcb.graphics.GraphicalLine] = <factory>, gr_rects: list[~edea.kicad.pcb.graphics.GraphicalRectangle] = <factory>, gr_circles: list[~edea.kicad.pcb.graphics.GraphicalCircle] = <factory>, gr_arcs: list[~edea.kicad.pcb.graphics.GraphicalArc] = <factory>, gr_text_items: list[~edea.kicad.pcb.graphics.GraphicalText] = <factory>, beziers: list[~edea.kicad.pcb.graphics.GraphicalBezier] = <factory>, gr_bboxes: list[~edea.kicad.pcb.graphics.GraphicalBoundingBox] = <factory>, gr_text_boxes: list[~edea.kicad.pcb.graphics.GraphicalTextBox] = <factory>, width: float | None = None, fill: bool = False)
Bases:
KicadPcbExpr
The primitive graphical elements for footprint pads in KiCad PCB expressions.
- Parameters:
gr_polys – A list of graphical polygons for the pad.
gr_lines – A list of graphical lines for the pad.
gr_rects – A list of graphical rectangles for the pad.
gr_circles – A list of graphical circles for the pad.
gr_arcs – A list of graphical arcs for the pad.
gr_text_items – A list of graphical text elements for the pad.
beziers – A list of graphical bezier curves for the pad.
gr_bboxes – A list of graphical bounding boxes for the pad.
gr_text_boxes – A list of graphical text boxes for the pad.
width – The line width applied to graphical elements within the pad.
fill – Whether to fill closed graphical elements within the pad or not.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“primitives”).
- gr_polys: list[GraphicalPolygon]
- gr_lines: list[GraphicalLine]
- gr_rects: list[GraphicalRectangle]
- gr_circles: list[GraphicalCircle]
- gr_arcs: list[GraphicalArc]
- gr_text_items: list[GraphicalText]
- beziers: list[GraphicalBezier]
- gr_bboxes: list[GraphicalBoundingBox]
- gr_text_boxes: list[GraphicalTextBox]
- class edea.kicad.pcb.footprint.FootprintPadRectDelta(x: float, y: float)
Bases:
KicadPcbExpr
A rectangle pad delta in KiCad PCB expressions (undocumented).
- Parameters:
x – The delta value in X direction for the rectangle pad.
y – The delta value in Y direction for the rectangle pad.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“rect_delta”).
- class edea.kicad.pcb.footprint.FootprintPad(number: str, type: ~typing.Literal['thru_hole', 'smd', 'connect', 'np_thru_hole'], shape: ~typing.Literal['rect', 'circle', 'oval', 'trapezoid', 'roundrect', 'custom'], locked: bool = False, at: ~edea.kicad.pcb.common.Position = <factory>, size: tuple[float, float] = (0, 0), drill: ~edea.kicad.pcb.footprint.FootprintPadDrillOval1 | ~edea.kicad.pcb.footprint.FootprintPadDrillOval2 | ~edea.kicad.pcb.footprint.FootprintPadDrillOval3 | ~edea.kicad.pcb.footprint.FootprintPadDrillOval4 | ~edea.kicad.pcb.footprint.FootprintPadDrillOval5 | ~edea.kicad.pcb.footprint.FootprintPadDrillRound | None = None, property: list[str] = <factory>, layers: list[str] = <factory>, remove_unused_layers: bool = False, keep_end_layers: bool = False, zone_layer_connections: list[~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue']] = <factory>, roundrect_rratio: float | None = None, chamfer_ratio: float | None = None, chamfer: list[~typing.Literal['top_left', 'top_right', 'bottom_left', 'bottom_right']] = <factory>, net: ~edea.kicad.pcb.common.Net | None = None, pinfunction: str | None = None, pintype: str | None = None, solder_mask_margin: float | None = None, solder_paste_margin: float | None = None, solder_paste_margin_ratio: float | None = None, clearance: float | None = None, zone_connect: ~typing.Literal[0, 1, 2, None] = None, die_length: float | None = None, thermal_bridge_width: float = 0, thermal_bridge_angle: int = 0, thermal_width: float | None = None, thermal_gap: float | None = None, options: ~edea.kicad.pcb.footprint.FootprintPadOptions | None = None, primitives: ~edea.kicad.pcb.footprint.FootprintPadPrimitives = <factory>, rect_delta: ~edea.kicad.pcb.footprint.FootprintPadRectDelta | None = None, tstamp: ~uuid.UUID = <factory>)
Bases:
KicadPcbExpr
A footprint pad in KiCad PCB expressions.
- Parameters:
number – The pad number.
type – The pad type (thru_hole, smd, connect, or np_thru_hole).
shape – The pad shape (circle, rect, oval, trapezoid, roundrect, or custom).
locked – Whether the footprint pad can be edited or not.
at – The X-Y coordinates of the pad center.
size – The size of the pad.
drill – The pad drill requirements.
property – Any special properties for the pad.
layers – The layer or layers the pad reside on.
remove_unused_layers – It specifies that the copper should be removed from any layers the pad is not connected to.
keep_end_layers – It specifies that the top and bottom layers should be retained when removing the copper from unused layers.
zone_layer_connections – List of zone layers connected to the pad.
roundrect_rratio – The scaling factor of the pad to corner radius for rounded rectangular and chamfered corner rectangular pads.
chamfer_ratio – The scaling factor of the pad to chamfer size.
chamfer – A list of one or more rectangular pad corners that get chamfered.
net – The integer number and name string of the net connection for the pad.
pinfunction – The associated schematic symbol pin name.
pintype – The associated schematic pin electrical type.
solder_mask_margin – The distance between the pad and the solder mask for the pad.
solder_paste_margin – The distance the solder paste should be changed for the pad.
solder_paste_margin_ratio – The percentage to reduce the pad outline by to generate the solder paste size.
clearance – The clearance from all copper to the pad.
zone_connect – The type of zone connect for the pad.
die_length – The die length between the component pad and physical chip inside the component package.
thermal_bridge_width – The width of the thermal bridge for thermal pads.
thermal_bridge_angle – The angle of the thermal bridge for thermal pads.
thermal_width – The thermal relief spoke width used for zone connection for the pad.
thermal_gap – The distance from the pad to the zone of the thermal relief connection for the pad.
options – The options when a custom pad is defined.
primitives – The drawing objects and options used to define a custom pad.
rect_delta – (Undocumented field) The rectangle pad deltas.
tstamp – The unique identifier of the pad object.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“pad”).
- at: Position
- drill: FootprintPadDrillOval1 | FootprintPadDrillOval2 | FootprintPadDrillOval3 | FootprintPadDrillOval4 | FootprintPadDrillOval5 | FootprintPadDrillRound | None = None
- zone_layer_connections: list[Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue']]
- net: Net | None = None
- options: FootprintPadOptions | None = None
- primitives: FootprintPadPrimitives
- rect_delta: FootprintPadRectDelta | None = None
- class edea.kicad.pcb.footprint.FootprintModelCoord(xyz: tuple[float, float, float] = (0.0, 0.0, 0.0))
Bases:
KicadPcbExpr
Footprint model coordinate related elements in KiCad PCB expressions.
- Parameters:
xyz – A tuple of the model coordinates.
- class edea.kicad.pcb.footprint.FootprintModelOffset(xyz: tuple[float, float, float] = (0.0, 0.0, 0.0))
Bases:
FootprintModelCoord
A model offset in KiCad PCB expressions.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“offset”).
- class edea.kicad.pcb.footprint.FootprintModelScale(xyz: tuple[float, float, float] = (0.0, 0.0, 0.0))
Bases:
FootprintModelCoord
A model scale in KiCad PCB expressions.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“scale”).
- class edea.kicad.pcb.footprint.FootprintModelRotate(xyz: tuple[float, float, float] = (0.0, 0.0, 0.0))
Bases:
FootprintModelCoord
A model rotation in KiCad PCB expressions.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“rotate”).
- class edea.kicad.pcb.footprint.Footprint3dModel(file: str, hide: bool = False, opacity: float | None = None, offset: ~edea.kicad.pcb.footprint.FootprintModelOffset = <factory>, scale: ~edea.kicad.pcb.footprint.FootprintModelScale = <factory>, rotate: ~edea.kicad.pcb.footprint.FootprintModelRotate = <factory>)
Bases:
KicadPcbExpr
A 3D model element for footprints in KiCad PCB expressions.
- Parameters:
file – The path to the 3D model file.
hide – Whether to hide the 3D model in the viewer.
opacity – (Undocumented field) The opacity of the 3D model (0.0 to 1.0).
offset – (Undocumented field) The offset of the 3D model placement.
scale – The model scale factor for each 3D axis.
rotate – The model rotation for each 3D axis relative to the footprint.
- Variables:
kicad_expr_tag_name – The KiCad expression tag name for this element (“model”).
- offset: FootprintModelOffset
- scale: FootprintModelScale
- rotate: FootprintModelRotate
- class edea.kicad.pcb.footprint.Footprint(library_link: str, locked: bool = False, placed: bool = False, layer: ~typing.Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu', tedit: str | None = None, tstamp: ~uuid.UUID = <factory>, at: ~edea.kicad.pcb.common.Position = <factory>, descr: str | None = None, tags: str | None = None, properties: list[~edea.kicad.pcb.common.Property] = <factory>, path: str | None = None, autoplace_cost90: ~typing.Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | None = None, autoplace_cost180: ~typing.Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | None = None, solder_mask_margin: float | None = None, solder_paste_margin: float | None = None, solder_paste_ratio: float | None = None, clearance: float | None = None, zone_connect: ~edea.kicad.pcb.footprint.ZoneConnection | None = None, thermal_width: float | None = None, thermal_gap: float | None = None, attr: ~edea.kicad.pcb.footprint.FootprintAttributes | None = None, net_tie_pad_groups: list[str] = <factory>, fp_text_items: list[~edea.kicad.pcb.footprint.FootprintText] = <factory>, images: list[~edea.kicad.pcb.common.Image] = <factory>, fp_text_boxes: list[~edea.kicad.pcb.footprint.FootprintTextBox] = <factory>, fp_lines: list[~edea.kicad.pcb.footprint.FootprintLine] = <factory>, fp_rects: list[~edea.kicad.pcb.footprint.FootprintRectangle] = <factory>, fp_circles: list[~edea.kicad.pcb.footprint.FootprintCircle] = <factory>, fp_arcs: list[~edea.kicad.pcb.footprint.FootprintArc] = <factory>, fp_polys: list[~edea.kicad.pcb.footprint.FootprintPolygon] = <factory>, fp_curves: list[~edea.kicad.pcb.footprint.FootprintCurve] = <factory>, dimensions: list[~edea.kicad.pcb.graphics.GraphicalDimension] = <factory>, pads: list[~edea.kicad.pcb.footprint.FootprintPad] = <factory>, groups: list[~edea.kicad.pcb.common.Group] = <factory>, zones: list[~edea.kicad.pcb.common.Zone] = <factory>, models: list[~edea.kicad.pcb.footprint.Footprint3dModel] = <factory>)
Bases:
KicadPcbExpr
A footprint in KiCad PCB expressions.
- Parameters:
library_link – The library reference of the footprint.
locked – A flag to indicate the footprint cannot be edited.
placed – A flag to indicate that the footprint has not been placed.
layer – The canonical layer the footprint is placed.
tedit – The last time the footprint was edited.
tstamp – The unique identifier for the footprint.
at – The X-Y coordinates of the footprint placement.
descr – The description of the footprint.
tags – Search tags for the footprint.
properties – List of key-value property strings for the footprint.
path – The hierarchical path of the schematic symbol linked to the footprint.
autoplace_cost90 – The vertical cost of when using the automatic footprint placement tool.
autoplace_cost180 – The horizontal cost of when using the automatic footprint placement tool.
solder_mask_margin – The solder mask distance from all pads in the footprint.
solder_paste_margin – The solder paste distance from all pads in the footprint.
solder_paste_ratio – The percentage of the pad size used to define the solder paste for all pads in the footprint.
clearance – The clearance to all board copper objects for all pads in the footprint.
zone_connect – How all pads are connected to filled zone.
thermal_width – The thermal relief spoke width used for zone connections for all pads in the footprint.
thermal_gap – The distance from the pad to the zone of thermal relief connections for all pads in the footprint.
attr – The attributes of the footprint.
net_tie_pad_groups – An optional list of net-tie pad groups.
fp_text_items – A list of footprint text elements.
images – A list of image references for the footprint.
fp_text_boxes – A list of footprint text box elements.
fp_lines – A list of footprint line elements.
fp_rects – A list of footprint rectangle elements.
fp_circles – A list of footprint circle elements.
fp_arcs – A list of footprint arc elements.
fp_polys – A list of footprint polygon elements.
fp_curves – A list of footprint curve elements.
dimensions – A list of graphical dimension elements associated with the footprint.
pads – A list of footprint pad elements. Defines the electrical connections of the footprint.
groups – A list of groups associated with the footprint (for organization purposes).
zones – (Undocumented field) List of zones associated with the footprint.
models – A list of 3D models attached to the footprint.
- layer: Literal['F.Cu', 'In1.Cu', 'In2.Cu', 'In3.Cu', 'In4.Cu', 'In5.Cu', 'In6.Cu', 'In7.Cu', 'In8.Cu', 'In9.Cu', 'In10.Cu', 'In11.Cu', 'In12.Cu', 'In13.Cu', 'In14.Cu', 'In15.Cu', 'In16.Cu', 'In17.Cu', 'In18.Cu', 'In19.Cu', 'In20.Cu', 'In21.Cu', 'In22.Cu', 'In23.Cu', 'In24.Cu', 'In25.Cu', 'In26.Cu', 'In27.Cu', 'In28.Cu', 'In29.Cu', 'In30.Cu', 'B.Cu', 'B.Adhes', 'F.Adhes', 'B.Paste', 'F.Paste', 'B.SilkS', 'F.SilkS', 'B.Mask', 'F.Mask', 'Dwgs.User', 'Cmts.User', 'Eco1.User', 'Eco2.User', 'Edge.Cuts', 'F.CrtYd', 'B.CrtYd', 'F.Fab', 'B.Fab', 'User.1', 'User.2', 'User.3', 'User.4', 'User.5', 'User.6', 'User.7', 'User.8', 'User.9', 'Margin', 'Rescue'] = 'F.Cu'
- at: Position
- properties: list[Property]
- zone_connect: ZoneConnection | None = None
- attr: FootprintAttributes | None = None
- fp_text_items: list[FootprintText]
- images: list[Image]
- fp_text_boxes: list[FootprintTextBox]
- fp_lines: list[FootprintLine]
- fp_rects: list[FootprintRectangle]
- fp_circles: list[FootprintCircle]
- fp_arcs: list[FootprintArc]
- fp_polys: list[FootprintPolygon]
- fp_curves: list[FootprintCurve]
- dimensions: list[GraphicalDimension]
- pads: list[FootprintPad]
- groups: list[Group]
- zones: list[Zone]
- models: list[Footprint3dModel]