diff --git a/Hardware/Development/Y_axis/motor_stand.scad b/Hardware/Development/Y_axis/motor_stand.scad index da498a3..f8e309b 100644 --- a/Hardware/Development/Y_axis/motor_stand.scad +++ b/Hardware/Development/Y_axis/motor_stand.scad @@ -9,6 +9,7 @@ include include include include +include use <../libs/obiscad/bcube.scad> use <../libs/build_plate.scad> use <../Gears/rod_gear.scad> @@ -59,7 +60,7 @@ Cyclone_Nema17 = [ [NemaSideSize, 42.30*mm], [NemaDistanceBetweenMountingHoles, 31.0*mm], [NemaMountingHoleDiameter, 4*mm], - [NemaMountingHoleDepth, 4.5*mm], + [NemaMountingHoleDepth, 5.5*mm], //actual is 4.5mm, motor() module is generating 1mm short [NemaMountingHoleLip, -1*mm], [NemaMountingHoleCutoutRadius, 0*mm], [NemaEdgeRoundingRadius, 7*mm], @@ -105,25 +106,38 @@ module motorHolesY() { } module motor_stand_no_base(with_motor=true, with_extra_parts=false) { - // -- stepper, bearing, washer, nuts --- + // --- additional parts for assembly instruction --- if(with_motor && with_extra_parts) { translate([motor_width/2,motor_width/2,0]) { + // --- Nema 17 Stepper --- rotate([0,180,0]) translate([0,0,-1]) motor(Cyclone_Nema17, NemaLengthLong); - translate([0,0,12+5.5]) - { - rotate([180, 0, 0]) cyclone_motor_gear(); + // --- Motor Gear --- + translate([0,0,12+5.5]) { + rotate([180, 0, 30]) cyclone_motor_gear(); } + // --- M3 x 8mm grub screw to attach Gear to motor shaft --- + translate([-2.5,0,12-3]) rotate([0, -90, 0]) color(Steel) cylinder(r=1.5, h=8); } translate([motor_width/2,motor_width/2,wall_thickness/2]) { rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) { - bearing(model=608); - translate([0,0,7]) flat_nut(8); - translate([0,0,1.5-wall_thickness/2+5+2.5+7+3]) rotate([0,180,0]) cyclone_rod_gear(); - translate([0,0,1.5-wall_thickness/2+5+2.5+7+3+1.5++10]) rotate([0,180,0]) flat_nut(8); + // --- Bearing --- + bearing(model=608); + // --- M8 Nut --- + translate([0,0,7]) color(Steel) flat_nut(8); + // --- Rod Gear --- + translate([0,0,1.5-wall_thickness/2+5+2.5+7+3]) rotate([0,180,15]) cyclone_rod_gear(); + // --- M8 Nut --- + translate([0,0,1.5-wall_thickness/2+5+2.5+7+3+1.5++10]) rotate([0,180,0]) color(Steel) flat_nut(8); } } + // --- M3 x 6mm bolts for holding the motor --- + for(i=[-1,1]) for(j=[-1,1]) + translate([motor_width/2,motor_width/2,wall_thickness/2]) + translate([i*motor_screw_distance/2,j*motor_screw_distance/2,2.5-wall_thickness/2]) { + rotate([0,180,0]) color(Steel) boltHole(size=3, length=6); + } } difference() { @@ -149,7 +163,7 @@ difference() { } // End of difference translate([motor_width/2,motor_width/2,wall_thickness/2]) - rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) { + rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) color(Steel) { if(!with_motor && with_extra_parts) { bearing(model=608); translate([0,0,7]) washer(8); @@ -158,7 +172,7 @@ difference() { } } -module holder(h=35,noScrews=false,base_width_inc=0) { +module holder(h=35,noScrews=false,base_width_inc=0, with_extra_parts=false) { difference() { union() { translate([wall_height-bottom_thickness,0]) { @@ -179,14 +193,25 @@ module holder(h=35,noScrews=false,base_width_inc=0) { cylinder(r=base_screw_diameter/2,h=100,center=true,$fn=7); } } // End of difference + + // --- Self tapping screw 2.9 x 16mm --- + if(with_extra_parts) { + translate([wall_height,base_width/2+2.5,base_length/1.5]) color(Steel) + rotate([0,90,0]) { + translate([-5,0,-bottom_thickness-.2]) + csk_bolt(2.9, 16); + translate([5,0,-bottom_thickness-.2]) + csk_bolt(2.9, 16); + } + } } module motor_stand(with_motor=true, with_extra_parts=false) { union() { motor_stand_no_base(with_motor=with_motor, with_extra_parts=with_extra_parts); - translate([0,wall_width]) holder(noScrews=true); - translate([0,52.4-5/2]) holder(h=12,base_width_inc=1); - translate([0,-wall_extraWidth_left+base_width]) scale([1,-1,1]) holder(); + translate([0,wall_width]) holder(noScrews=true, with_extra_parts=false); + translate([0,52.4-5/2]) holder(h=12,base_width_inc=1, with_extra_parts=with_extra_parts); + translate([0,-wall_extraWidth_left+base_width]) scale([1,-1,1]) holder(with_extra_parts=with_extra_parts); } } @@ -195,11 +220,15 @@ module idle_stand(with_extra_parts=false) { union() { intersection() { // Remove the motor part motor_stand(with_motor=false, with_extra_parts=with_extra_parts); - translate([wall_height/2,wall_width/2+52.4-(wall_width+wall_extraWidth_right-52.4),wall_thickness/2]) - bcube([wall_height,wall_width,100],cr=4,cres=10); + union() { + translate([wall_height/2,wall_width/2+52.4-(wall_width+wall_extraWidth_right-52.4),wall_thickness/2]) + bcube([wall_height,wall_width,100],cr=4,cres=10); + translate([wall_height/2,wall_width/2+52.4-(wall_width+wall_extraWidth_right-52.4),wall_thickness/2]) + bcube([wall_height*2,wall_width/6,100],cr=4,cres=10); //keep self tapping screw + } } - translate([0,wall_width+5-2*(wall_width+wall_extraWidth_right-52.4)]) holder(noScrews=true); - translate([0,52.4+5/2]) scale([1,-1,1]) holder(h=15,base_width_inc=1); + translate([0,wall_width+5-2*(wall_width+wall_extraWidth_right-52.4)]) holder(noScrews=true, with_extra_parts=with_extra_parts); + translate([0,52.4+5/2]) scale([1,-1,1]) holder(h=15,base_width_inc=1, with_extra_parts=with_extra_parts); } if(!with_motor && with_extra_parts) { translate([0,motor_width-19.8/2,wall_thickness])