soic module#

class SOICBase(*, num_rows=None, num_leads=None)[source]#

Bases: ThermalPadGeneratorMixin, PackageBodyMixin, DualColumn

Small Outline Integrated Circuit (SOIC) Landpattern

This class generates a full SOIC landpattern. By default, it creates a soldermask-bounds-based silkscreen outline, a circular pad 1 marker, and a courtyard based on the bounds of all features buffered by an excess amount. It can also optionally generate a thermal pad.

Parameters:
  • num_rows (int | None)

  • num_leads (int | None)

narrow(package_length, *, span=None)[source]#

Set the package body to be standard narrow SOIC

>>> class MySOIC(Component):
...     # A narrow body SOIC, 10 mm long, with 14 leads
...     landpattern = SOIC(num_leads=14).narrow(10)
Parameters:
  • package_length (Toleranced | float) – length of the package body

  • span (Toleranced | float | None) – span of the leads. If not specified, the span is set to the width of the package body

Returns:

self for method chaining

wide(package_length, *, span=None)[source]#

Set the package body to be standard narrow SOIC.

Parameters:
  • package_length (Toleranced | float) – length of the package body

  • span (Toleranced | float | None) – span of the leads. If not specified, the span is set to the width of the package body

Returns:

self for method chaining

class SOICDecorated(*args, **kwargs)[source]#

Bases: SilkscreenOutline, Pad1Marker, ReferenceDesignatorMixin, ExcessCourtyard, SOICBase

class SOIC(*args, **kwargs)[source]#

Bases: LinearNumbering, SOICDecorated

Small Outline Integrated Circuit (SOIC) Landpattern

This class generates a full SOIC landpattern. By default, it creates a soldermask-bounds-based silkscreen outline, a circular pad 1 marker, and a courtyard based on the bounds of all features buffered by an excess amount. It can also optionally generate a thermal pad.

Note that this class will use LinearNumbering for the pad numbering. To use a different numbering scheme, create a subclass of SOICDecorated and inherit a different one.

>>> class MySOIC(Component):
...     # A narrow body SOIC, 10 mm long, with 14 leads
...     landpattern = SOIC(num_leads=14).narrow(10)
>>> MySOIC().landpattern.p[1]
SMDPad