From 39c27c9c41c48e64b97d881e1d2121eb6832a795 Mon Sep 17 00:00:00 2001 From: TQ Hirsch Date: Sun, 6 Mar 2022 14:01:50 +0100 Subject: [PATCH] Extended rear corners to make space for idler screws --- TODO.md | 16 ++++++++-------- parts.scad | 49 ++++++++++++++++++++++++++++++------------------- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/TODO.md b/TODO.md index 078ec1b..1cea65c 100644 --- a/TODO.md +++ b/TODO.md @@ -1,8 +1,8 @@ -## Mechanical - -* Lengthen rear corner frame holders -* Add screw holes for feet in each corner -* Add place to mount electronics (likely just an extra part) - -## Electronics - +## Mechanical + +* Add screw holes for feet in each corner +* Add place to mount electronics (likely just an extra part) +* add slot for motor electronic connection +* Add screw holes for idler mounts in rear corner +## Electronics + diff --git a/parts.scad b/parts.scad index 1507fc0..e274212 100644 --- a/parts.scad +++ b/parts.scad @@ -5,15 +5,13 @@ include frame_size = 20; wall_thickness = 2; -corner_size = 30; +corner_size = 40; // length of mating surface between corner and frame // The length along each edge that the corner bracket takes. I.e., if // you construct a frame of four corner brackets and 4 tubes of length // $L-$corner_size, the distance between opposite tubes' centerlines // will be $L. corner_offset = frame_size / 2 + wall_thickness; rail_diam = 8; -// distance between centerline of rail and centerline of frame Y tube. -yrail_offset = (frame_size + corner_size) / 2; ysled_extralen = frame_size; // on each end @@ -24,10 +22,13 @@ belt_height2 = belt_height1 + belt_width + 2; // calculated ysled_rail_spacing = (sled_ysize); -motor_shaft_xoffset = (corner_size - wall_thickness) / 2 + 1; +motor_shaft_xoffset = 15; motor_mount_length_adjustment = 4; motor_mount_length = nema17_face + wall_thickness + motor_mount_length_adjustment; +// distance between centerline of rail and centerline of frame Y tube. +yrail_offset = motor_shaft_xoffset + pulley_sbend_offset; + // Generates bar of length $l, centered on origin extending in +Z module tslot(l) { bom_item(printable = false, label = str("tslot(", l, "mm)")); @@ -38,10 +39,10 @@ module tslot(l) { } // A corner, with tubes extending in +x and +y. -module corner_base() { +module corner_base(extension = wall_thickness) { odim = frame_size / 2 + wall_thickness; - ldim = frame_size / 2 + corner_size; - + ldim = frame_size / 2 + corner_size + (extension - wall_thickness); + actual_corner_offset = frame_size / 2 + extension; cap_points = [ [ -odim, -odim ], [ -odim, ldim ], [ odim, ldim ], [odim, odim], [ ldim, odim ], @@ -52,31 +53,41 @@ module corner_base() { polygon(points = cap_points); // two bars... - translate([ -frame_size / 2, corner_offset, -frame_size / 2 ]) + translate([ -frame_size / 2, actual_corner_offset, -frame_size / 2 ]) cube([ frame_size, ldim, frame_size ]); - translate([ corner_offset, -frame_size / 2, -frame_size / 2 ]) + translate([ actual_corner_offset, -frame_size / 2, -frame_size / 2 ]) cube([ ldim, frame_size, frame_size ]); - translate([ corner_offset, corner_offset, -frame_size / 2 ]) - cube([ ldim, ldim, frame_size ]); - // translate([-odim - 1, -odim - 1, 0]) - // cube(ldim*2); + + for (pos = [10, 30], + mirror_normal = [[0,1,0], [1,-1,0]]) { + mirror(mirror_normal) + translate([pos + actual_corner_offset, 0, -odim]) + union() { + cylinder(d = 8, h=2, center=true); + cylinder(d = 5, h = odim); + } + } } } +rail_holder_width = (yrail_offset - frame_size / 2 - wall_thickness) * 2; + module rail_holder(in_x) { odim = frame_size / 2 + wall_thickness; - ldim = frame_size / 2 + corner_size; + box_size = (yrail_offset - odim) * 2; + assert(box_size == rail_holder_width); + ldim = frame_size / 2 + box_size; tube_offset = (corner_size) / 2 + wall_thickness; tube_rotation = in_x ? 90 : 0; translated_rail_offset = yrail_offset - frame_size / 2 - wall_thickness; - translate([ frame_size / 2 + wall_thickness, frame_size / 2 + wall_thickness, -frame_size / 2 - wall_thickness ]) { + translate([ odim, odim, -odim ]) { difference() { cube([ - !in_x ? corner_size - wall_thickness : 10, - !in_x ? 10 : corner_size - wall_thickness, + !in_x ? box_size - wall_thickness : 10, + !in_x ? 10 : box_size - wall_thickness, wall_thickness * 2 + frame_size ]); translate( @@ -291,7 +302,7 @@ module blcorner() { bom_item(); render() rotate([ 0, 0, 270 ]) { - corner_base(); + corner_base(extension = rail_holder_width); rail_holder(true); } translate([motor_shaft_xoffset + pulley_sbend_offset, 0, 0]) @@ -307,7 +318,7 @@ module brcorner() { bom_item(); render() rotate([ 0, 0, 180 ]) { - corner_base(); + corner_base(extension = rail_holder_width); rail_holder(false); } translate([-(motor_shaft_xoffset + pulley_sbend_offset), 0, 0])