soic module#

class SOICBase(*args, **kwargs)[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.

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 wide SOIC (7.5mm body width).

Wide SOIC packages are typically used for larger ICs that need more internal die area or better thermal dissipation.

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

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

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