diff --git a/TODO.md b/TODO.md index c982146..92c2ba0 100644 --- a/TODO.md +++ b/TODO.md @@ -2,7 +2,7 @@ * Add place to mount electronics (likely just an extra part) * add slot for motor electronic connection -* Raise motor mount on front left motor +* Raise motor mount on front left corner ## Electronics diff --git a/assembly.scad b/assembly.scad index a506b4c..dd9bccc 100644 --- a/assembly.scad +++ b/assembly.scad @@ -8,13 +8,13 @@ module frame() { tslot(xsize - 2 * corner_offset); translate([ 0, corner_offset, 0 ]) rotate([ -90, 0, 0 ]) - tslot(ysize - 2 * corner_offset); + tslot(ysize - 2 * corner_offset - rail_holder_width + wall_thickness); - translate([ corner_offset, ysize, 0 ]) rotate([ 0, 90, 0 ]) - tslot(xsize - 2 * corner_offset); + translate([ frame_size/2 + rail_holder_width, ysize, 0 ]) rotate([ 0, 90, 0 ]) + tslot(xsize - frame_size - rail_holder_width * 2); translate([ xsize, corner_offset, 0 ]) rotate([ -90, 0, 0 ]) - tslot(ysize - 2 * corner_offset); + tslot(ysize - 2 * corner_offset - rail_holder_width + wall_thickness); } module corners() { translate([ 0, 0 ]) flcorner(); @@ -76,9 +76,15 @@ union() { moving_parts(); } -*intersection() { - ysled_slider(spread=sled_ysize); - translate([0, -1000, -1000]) - cube([2000, 2000, 2000]); +*union() { + rails(); + frame(); + intersection() { + union() { + corners(); + } + translate([-1000, - 1000, -1000]) + cube([2000, 2000, 1000]); + } } *xsled2(); \ No newline at end of file diff --git a/parts.scad b/parts.scad index db88d72..33aab88 100644 --- a/parts.scad +++ b/parts.scad @@ -23,7 +23,7 @@ belt_height2 = belt_height1 + belt_width + 2; ysled_rail_spacing = (sled_ysize); motor_shaft_xoffset = 15; -motor_mount_length_adjustment = 4; +motor_mount_length_adjustment = 8; motor_mount_length = nema17_face + wall_thickness + motor_mount_length_adjustment; // distance between centerline of rail and centerline of frame Y tube. @@ -70,7 +70,7 @@ module corner_base(extension = wall_thickness) { } // Adjustable feet - cylinder(d=8, h=odim * 2 + 1, $fn = screw_num_sides); + cylinder(d=8, h=odim * 2 + 1, center=true, $fn = screw_num_sides); } } @@ -169,17 +169,19 @@ module nema17_housing() { hwidth = corner_size + frame_size + wall_thickness; hheight = nema17_face + wall_thickness * 2; hdepth = frame_size + wall_thickness * 2; + vertical_extension = frame_size + belt_height2; screw_dxy = 31 / 2; + slot_vector = [0, - motor_mount_length_adjustment, 0]; translate([ 0, -nema17_face / 2 - frame_size / 2 - wall_thickness, 0 ]) { - slotify([0, - motor_mount_length_adjustment, 0]) { - translate([ 0, 0, -2 ]) - cube([ nema17_face + 1, nema17_face + 1, hdepth ], center = true); + slotify(slot_vector) { + translate([ 0, 0, -belt_height2/2 - wall_thickness ]) + cube([ nema17_face + 1, nema17_face + 1, hdepth + belt_height2 ], center = true); cylinder(d = 23, frame_size); } for (x = [-1, 1], y = [-1,1]) { - slotify([0, - motor_mount_length_adjustment, 0]) + slotify(slot_vector) translate([ x * screw_dxy, y * screw_dxy, @@ -232,6 +234,7 @@ module idler_post(belt_height, toothed = true) { module flcorner() { bom_item(); + motor_height = belt_height2 - belt_height1; union() { rotate([ 0, 0, 0 ]) { corner_base(); @@ -245,10 +248,10 @@ module flcorner() { ]) cube([ frame_size + wall_thickness + corner_size, - motor_mount_length, - frame_size + wall_thickness * 2 + motor_mount_length + wall_thickness, + frame_size + wall_thickness * 2 + motor_height ]); - translate([ motor_shaft_xoffset, 0, 0 ]) nema17_housing(); + translate([ motor_shaft_xoffset, 0, motor_height ]) nema17_housing(); } // translate([motor_shaft_xoffset, 0, 0 ]) nema17_housing(); @@ -258,8 +261,11 @@ module flcorner() { motor_shaft_xoffset, -nema17_face / 2 - frame_size / 2 - wall_thickness, frame_size / 2 ]) { - nema17(); - translate([ 0, 0, -frame_size / 2 + belt_height2 ]) { active_pulley(); } + translate([0,0,motor_height]) + nema17(); + translate([ 0, 0, -frame_size / 2 + belt_height2 ]) + rotate([180,0,0]) + { active_pulley(); } } } @@ -312,13 +318,13 @@ module blcorner() { cylinder(d = 3, h = belt_height2, $fn=screw_num_sides); } } - translate([motor_shaft_xoffset + pulley_sbend_offset, 0, 0]) + translate([motor_shaft_xoffset + pulley_sbend_offset, 0, frame_size/2]) rotate([0,0,-90]) - idler_post(belt_height = belt_height1, toothed=true); + idler_post(belt_height = belt_height1 - frame_size/2, toothed=true); - translate([0, -(motor_shaft_xoffset + pulley_sbend_offset), 0]) + translate([0, -(motor_shaft_xoffset + pulley_sbend_offset), frame_size/2]) rotate([0,0,-90]) - idler_post(belt_height = belt_height2, toothed=true); + idler_post(belt_height = belt_height2 - frame_size/2, toothed=true); } module brcorner() { @@ -328,13 +334,13 @@ module brcorner() { corner_base(extension = rail_holder_width); rail_holder(false); } - translate([-(motor_shaft_xoffset + pulley_sbend_offset), 0, 0]) + translate([-(motor_shaft_xoffset + pulley_sbend_offset), 0, frame_size/2]) rotate([0,0,180]) - idler_post(belt_height = belt_height2, toothed=true); + idler_post(belt_height = belt_height2 - frame_size/2, toothed=true); - translate([0, -(motor_shaft_xoffset + pulley_sbend_offset), 0]) + translate([0, -(motor_shaft_xoffset + pulley_sbend_offset), frame_size/2]) rotate([0,0,180]) - idler_post(belt_height = belt_height1, toothed=true); + idler_post(belt_height = belt_height1 - frame_size/2, toothed=true); } module xsled_slider() {