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

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

type: Literal['reference', 'value', 'user'] = 'user'
locked: bool = False
text: str = ''
at: Position
layer: LayerKnockout
hide: bool = False
effects: Effects
tstamp: UUID
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', 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”).

kicad_expr_tag_name: ClassVar[Literal['fp_text_box']] = '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”).

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

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'
tstamp: UUID
width: float | None = None
locked: bool = False
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: ~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”).

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
tstamp: UUID
locked: bool = False
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: ~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”).

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'
tstamp: UUID
width: float | None = None
locked: bool = False
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 = <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
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
kicad_expr_tag_name: ClassVar[Literal['fp_poly']] = 'fp_poly'
tstamp: UUID
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']
tstamp: UUID
stroke: Stroke | None = None
locked: bool = False
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, tstamp: ~uuid.UUID = <factory>)

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.

Variables:

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

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
tstamp: UUID
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)
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['offset']] = '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['scale']] = '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['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 = <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.

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.

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

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
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
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]