Extended rear corners to make space for idler screws

This commit is contained in:
2022-03-06 14:01:50 +01:00
parent 4ff8fa021b
commit 39c27c9c41
2 changed files with 38 additions and 27 deletions

View File

@@ -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)
* add slot for motor electronic connection
* Add screw holes for idler mounts in rear corner
## Electronics

View File

@@ -5,15 +5,13 @@ include <units.inc>
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])