2

I am working on a prototype and I have a need for a motor shaft to Lego axle adapter for use with a stepper motor.

My overall project entails controlling a stepper motor using C# via USB connection to make very small rotations which will adjust the height of a specimen stage (constructed from Legos) for a stereo microscope.

I need adapters similar to 6mm D shaft to Lego axis adapter Free 3D print model but for 4 mm dia motor D shaft and 5 mm dia motor D shaft

The purpose of the adapter is to allow very small and slow rotations.

  • I do not want to own the model designs, ideally they can be given away for free (similar to the link above).

  • I need several of the adapter pieces; 3 of each (4 mm and 5 mm) printed and what would be a fair price for this?

  • I have no idea what type of material should be used to print these, I think Acrylonitrile Butadiene Styrene (ABS) would do.

Greenonline
  • 6,748
  • 8
  • 40
  • 68
Gary Kindel
  • 123
  • 4

1 Answers1

5

OpenSCAD would be well suited for creating something made up of relatively simple shapes, where different dimensions are needed for some parts of the shapes - like the diameters and offsets of your stepper motor shafts.

A solution in OpenSCAD could look something like this:

outer_diameter = 8.5;   //Outer diameter of the adapter
stepper_length = 12;    //Length of the stepper shaft
stepper_diameter = 4;   //Diameter of the stepper shaft
stepper_d_offset = 1.6; //Offset from the center of the shaft to the plane of the D

//4mm shaft: d = 4, offset = 1.6 //5mm shaft: d = 5, offset = 2 //6mm shaft: d = 6, offset = 2.5

thickness_mid = 2; //Thickness of the massive section between stepper and lego shafts

lego_length = 10; //Length of the lego shaft lego_diameter = 4.9; //Outer diameter of the lego shaft lego_internal_width = 1.9; //Width of the slots for the shaft lego_corner_radius = 0.5;

cutout_size = lego_diameter; cutout_translate = cutout_size / 2 + lego_internal_width / 2; $fn = 128; //Accuracy / resolution of circles eps = 0.01;

module fillet_square(width, radius) { translate([radius - width / 2, radius - width / 2, 0]) minkowski() { square(width - 2 * radius); circle(radius); } } color(0,0.5) union(){ linear_extrude(height = stepper_length + eps) { difference() { circle(d = outer_diameter);
difference() { circle(d = stepper_diameter); translate([0, stepper_d_offset + stepper_diameter / 2, 0]) { square(size = stepper_diameter, center = true); } } } } translate([0, 0, stepper_length]) {
linear_extrude(height = thickness_mid) { circle(d = outer_diameter); } } translate([0, 0, stepper_length + thickness_mid - eps]) {
linear_extrude(height = lego_length + eps) { difference() { circle(d = outer_diameter); difference() { circle(d = lego_diameter); translate([cutout_translate, cutout_translate, 0]) { fillet_square(cutout_size, lego_corner_radius); } translate([cutout_translate, -cutout_translate, 0]) { fillet_square(cutout_size, lego_corner_radius); } translate([-cutout_translate, cutout_translate, 0]) { fillet_square(cutout_size, lego_corner_radius); } translate([-cutout_translate, -cutout_translate, 0]) { fillet_square(cutout_size, lego_corner_radius); } } } } } }

enter image description here

You can then export your .stl file (or any other format) for 3D-printing from OpenSCAD.

towe
  • 1,662
  • 8
  • 12