Extended rear corners to make space for idler screws
This commit is contained in:
16
TODO.md
16
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
|
||||
|
||||
|
||||
49
parts.scad
49
parts.scad
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user