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, dnp: 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.

  • dnp – The footprint is marked as “do not populate”.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“attr”).

Note

The dnp field was added in 20240108 (KiCad 8).

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
dnp: bool = False
kicad_expr_tag_name: ClassVar[Literal['attr']] = '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.

NoConnection = '0'

The zone has no connection.

ThermalRelief = '1'

The zone is used for thermal relief.

SolidFill = '2'

The zone is filled with solid copper.

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.common.LayerKnockout = <factory>, hide: bool = False, effects: ~edea.kicad.common.Effects = <factory>, tstamp: ~uuid.UUID | None = None, uuid: ~uuid.UUID | None = None, unlocked: bool | None = None, 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.

  • uuid – The unique identifier of the text object.

  • unlocked – Whether the text is unlocked or not.

  • render_cache – A RenderCache object .

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_text”).

Note

The unlocked field was added in 20240108 (KiCad 8).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

type: Literal['reference', 'value', 'user'] = 'user'
locked: bool = False
text: str = ''
at: Position
layer: LayerKnockout
hide: bool = False
effects: Effects
tstamp: UUID | None = None
uuid: UUID | None = None
unlocked: bool | None = None
render_cache: RenderCache | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_text']] = 'fp_text'
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', 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, border: bool | None = None, tstamp: ~uuid.UUID | None = None, uuid: ~uuid.UUID | None = None)

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”).

kicad_expr_tag_name: ClassVar[Literal['base_textbox', 'fp_text_box', 'gr_text_box']] = 'fp_text_box'
class edea.kicad.pcb.footprint.FootprintLine(start: tuple[float, float], end: tuple[float, float], 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', width: float | None = None, tstamp: UUID | None = None, uuid: UUID | None = None)

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.

  • uuid – The unique identifier of the line object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_line”).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

start: tuple[float, float]
end: tuple[float, float]
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'
width: float | None = None
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_line']] = 'fp_line'
class edea.kicad.pcb.footprint.FootprintRectangle(start: tuple[float, float], end: tuple[float, float], stroke: Stroke | None = None, fill: Literal['solid', 'none', 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', width: float | None = None, locked: bool = False, tstamp: UUID | None = None, uuid: UUID | None = None)

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.

  • width – The line width of the rectangle.

  • locked – Whether the rectangle cannot be edited.

  • tstamp – The unique identifierث of the rectangle object.

  • uuid – The unique identifier of the rectangle object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_rect”).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

start: tuple[float, float]
end: tuple[float, float]
stroke: Stroke | None = None
fill: Literal['solid', 'none', 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'
width: float | None = None
locked: bool = False
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_rect']] = 'fp_rect'
class edea.kicad.pcb.footprint.FootprintCircle(center: tuple[float, float], end: tuple[float, float], stroke: Stroke | None = None, fill: Literal['solid', 'none'] | 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', width: float | None = None, locked: bool = False, tstamp: UUID | None = None, uuid: UUID | None = None)

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.

  • locked – Whether the circle can be edited or not.

  • tstamp – The unique identifier of the circle object.

  • uuid – The unique identifier of the circle object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_circle”).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

center: tuple[float, float]
end: tuple[float, float]
stroke: Stroke | None = None
fill: Literal['solid', 'none'] | 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'
width: float | None = None
locked: bool = False
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_circle']] = 'fp_circle'
class edea.kicad.pcb.footprint.FootprintArc(start: tuple[float, float], mid: tuple[float, float], end: tuple[float, float], 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', width: float | None = None, locked: bool = False, tstamp: UUID | None = None, uuid: UUID | None = None)

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.

  • width – The line width of the arc.

  • locked – Whether the arc can be edited or not.

  • tstamp – The unique identifier of the arc object.

  • uuid – The unique identifier of the arc object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_arc”).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

start: tuple[float, float]
mid: tuple[float, float]
end: tuple[float, float]
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'
width: float | None = None
locked: bool = False
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_arc']] = 'fp_arc'
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 | None = None, uuid: ~uuid.UUID | None = None)

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.

  • uuid – The unique identifier of the polygon object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_poly”).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

pts: Pts
stroke: Stroke
width: float | None = None
fill: Literal['solid', 'none'] | 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'
locked: bool = False
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_poly']] = 'fp_poly'
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'], stroke: Stroke | None = None, locked: bool = False, tstamp: UUID | None = None, uuid: UUID | None = None)

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.

  • 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.

  • tstamp – The unique identifier of the curve object.

  • uuid – The unique identifier of the curve object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“fp_curve”).

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

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
locked: bool = False
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['fp_curve']] = 'fp_curve'
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”).

oval: Literal['oval'] = 'oval'
size: float = 0
kicad_expr_tag_name: ClassVar[Literal['drill']] = '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”).

oval: Literal['oval'] = 'oval'
size_x: float = 0
size_y: float = 0
kicad_expr_tag_name: ClassVar[Literal['drill']] = '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”).

oval: Literal['oval'] = 'oval'
offset: tuple[float, float] = (0, 0)
kicad_expr_tag_name: ClassVar[Literal['drill']] = '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”).

oval: Literal['oval'] = 'oval'
size: float = 0
offset: tuple[float, float] = (0, 0)
kicad_expr_tag_name: ClassVar[Literal['drill']] = '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”).

oval: Literal['oval'] = 'oval'
size_x: float = 0
size_y: float = 0
offset: tuple[float, float] = (0, 0)
kicad_expr_tag_name: ClassVar[Literal['drill']] = '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”).

diameter: float | None = None
offset: tuple[float, float] = (0, 0)
kicad_expr_tag_name: ClassVar[Literal['drill']] = '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”).

clearance: Literal['outline', 'convexhull']
anchor: Literal['rect', 'circle']
kicad_expr_tag_name: ClassVar[Literal['options']] = '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]
width: float | None = None
fill: bool = False
kicad_expr_tag_name: ClassVar[Literal['primitives']] = 'primitives'
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”).

x: float
y: float
kicad_expr_tag_name: ClassVar[Literal['rect_delta']] = '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, teardrops: ~edea.kicad.pcb.common.TearDrops | None = None, tstamp: ~uuid.UUID | None = None, uuid: ~uuid.UUID | None = None)

Bases: KicadPcbExpr

A footprint pad in KiCad PCB expressions.

KiCad pad

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.

  • uuid – The unique identifier of the pad object.

Variables:

kicad_expr_tag_name – The KiCad expression tag name for this element (“pad”).

Warning

The rect_delta field is undocumented in the KiCad file format documentation.

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

number: str
type: Literal['thru_hole', 'smd', 'connect', 'np_thru_hole']
shape: Literal['rect', 'circle', 'oval', 'trapezoid', 'roundrect', 'custom']
locked: bool = False
at: Position
size: tuple[float, float] = (0, 0)
drill: FootprintPadDrillOval1 | FootprintPadDrillOval2 | FootprintPadDrillOval3 | FootprintPadDrillOval4 | FootprintPadDrillOval5 | FootprintPadDrillRound | None = None
property: list[str]
layers: list[str]
remove_unused_layers: bool = False
keep_end_layers: bool = False
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']]
roundrect_rratio: float | None = None
chamfer_ratio: float | None = None
chamfer: list[Literal['top_left', 'top_right', 'bottom_left', 'bottom_right']]
net: 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: 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: FootprintPadOptions | None = None
primitives: FootprintPadPrimitives
rect_delta: FootprintPadRectDelta | None = None
teardrops: TearDrops | None = None
tstamp: UUID | None = None
uuid: UUID | None = None
kicad_expr_tag_name: ClassVar[Literal['pad']] = 'pad'
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.

xyz: tuple[float, float, float] = (0.0, 0.0, 0.0)
kicad_expr_tag_name: ClassVar[Literal['xyz', 'offset', 'scale', 'rotate']] = 'xyz'
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”).

kicad_expr_tag_name: ClassVar[Literal['xyz', 'offset', 'scale', 'rotate']] = '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”).

kicad_expr_tag_name: ClassVar[Literal['xyz', 'offset', 'scale', 'rotate']] = '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”).

kicad_expr_tag_name: ClassVar[Literal['xyz', 'offset', 'scale', 'rotate']] = '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.

KiCad 3d model

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”).

file: str
hide: bool = False
opacity: float | None = None
offset: FootprintModelOffset
scale: FootprintModelScale
rotate: FootprintModelRotate
kicad_expr_tag_name: ClassVar[Literal['model']] = 'model'
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 | None = None, uuid: ~uuid.UUID | None = None, 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, sheetname: str | None = None, sheetfile: str | 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.

KiCad footprint

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.

  • uuid – 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.

  • sheetname – The name of the sheet the footprint is associated with.

  • sheetfile – The file path of the sheet the footprint is associated with.

  • 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.

Note

The tstamp field got renamed to uuid in 20240108 (KiCad 8).

Note

The fields sheetname and sheetfile were added in 20240108 (KiCad 8).

locked: bool = False
placed: bool = False
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'
tedit: str | None = None
tstamp: UUID | None = None
uuid: UUID | None = None
at: Position
descr: str | None = None
tags: str | None = None
properties: list[Property]
path: str | None = None
autoplace_cost90: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | None = None
autoplace_cost180: 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: ZoneConnection | None = None
thermal_width: float | None = None
thermal_gap: float | None = None
sheetname: str | None = None
sheetfile: str | None = None
attr: FootprintAttributes | None = None
net_tie_pad_groups: list[str]
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]
kicad_expr_tag_name: ClassVar[Literal['footprint']] = 'footprint'