NEMA steppers

⚙️ Spec sheet →  —  visual schematic and metrics measured from a real rendered STL.

Pure-Python port of BOSL2’s nema_steppers.scad: models of NEMA-standard stepper motors and the masks that cut their mounting-hole pattern into a plate. nema_stepper_motor() builds a motor (body, plinth, shaft and blind screw holes) for a NEMA size; nema_mount_mask() is the bolt-pattern-plus-plinth cutout; nema_motor_info() returns the standard dimensions as a NemaSpec. .. autoclass:: bosl2.nema_steppers.NemaSpec

members:

class bosl2.nema_steppers.NemaSteppers[source]

Bases: object

NEMA stepper-motor models and mounting masks (BOSL2 nema_steppers.scad).

static nema_motor_info(size)[source]

The NemaSpec for a NEMA size (6, 8, 11, 14, 17, 23, 34 or 42) (BOSL2 nema_motor_info()).

Parameters:

size (int)

Return type:

NemaSpec

static nema_stepper_motor(size=17, height=24, shaft_len=20, fn=None, fa=None, fs=None)[source]

A model of a NEMA size stepper motor (BOSL2 nema_stepper_motor()).

The motor’s mounting face is at z = 0 with the body below it and the plinth and shaft_len shaft projecting up; the four mounting holes are drilled into the face.

Examples

A NEMA 17 motor:

from bosl2.nema_steppers import NemaSteppers
NemaSteppers.nema_stepper_motor(size=17).show()

⬇ Download STL mesh

Parameters:
  • size (int)

  • height (float)

  • shaft_len (float)

  • fn (int | None)

  • fa (float | None)

  • fs (float | None)

Return type:

Bosl2Solid

static nema_mount_mask(size, depth=5, length=5, atype='full', slop=0.0, fn=None, fa=None, fs=None)[source]

The mounting cutout for a NEMA size motor – difference it from a plate (BOSL2 nema_mount_mask()).

Cuts the four screw holes and (atype="full") the central plinth clearance. A slot length length > 0 elongates each hole so the motor can be positioned (e.g. to tension a belt).

Parameters:
  • size (int)

  • depth (float)

  • length (float)

  • atype (str)

  • slop (float)

  • fn (int | None)

  • fa (float | None)

  • fs (float | None)

Return type:

Bosl2Solid

Examples

These mirror the examples in BOSL2’s nema_steppers.scad, rendered live through PythonSCAD. Examples that rely on BOSL2’s attachment/anchor system, or on features not in this port, are omitted.

nema_stepper_motor

NEMA 8:

NemaSteppers.nema_stepper_motor(size=8, height=24, shaft_len=15).show()

⬇ Download STL mesh

NEMA 11:

NemaSteppers.nema_stepper_motor(size=11, height=24, shaft_len=20).show()

⬇ Download STL mesh

NEMA 17:

NemaSteppers.nema_stepper_motor(size=17, height=40, shaft_len=30).show()

⬇ Download STL mesh

NEMA 23:

NemaSteppers.nema_stepper_motor(size=23, height=50, shaft_len=40).show()

⬇ Download STL mesh

nema_mount_mask

Bolt-pattern mask for a NEMA 14:

NemaSteppers.nema_mount_mask(size=14, depth=5, length=5).show()

⬇ Download STL mesh

NEMA 17 with slotted holes:

NemaSteppers.nema_mount_mask(size=17, depth=5, length=5).show()

⬇ Download STL mesh

NEMA 17 with round holes (length=0):

NemaSteppers.nema_mount_mask(size=17, depth=5, length=0).show()

⬇ Download STL mesh