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:
objectNEMA stepper-motor models and mounting masks (BOSL2 nema_steppers.scad).
- static nema_motor_info(size)[source]¶
The
NemaSpecfor 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 = 0with 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()
- Parameters:
size (int)
height (float)
shaft_len (float)
fn (int | None)
fa (float | None)
fs (float | None)
- Return type:
- 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:
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()
NEMA 11:
NemaSteppers.nema_stepper_motor(size=11, height=24, shaft_len=20).show()
NEMA 17:
NemaSteppers.nema_stepper_motor(size=17, height=40, shaft_len=30).show()
NEMA 23:
NemaSteppers.nema_stepper_motor(size=23, height=50, shaft_len=40).show()
nema_mount_mask
Bolt-pattern mask for a NEMA 14:
NemaSteppers.nema_mount_mask(size=14, depth=5, length=5).show()
NEMA 17 with slotted holes:
NemaSteppers.nema_mount_mask(size=17, depth=5, length=5).show()
NEMA 17 with round holes (length=0):
NemaSteppers.nema_mount_mask(size=17, depth=5, length=0).show()