From 9f8fdb55ec1aadd93fdb783b58ef2bc18759b231 Mon Sep 17 00:00:00 2001 From: TQ Hirsch Date: Sun, 6 Mar 2022 17:08:07 +0100 Subject: [PATCH] Removed unneeded calls to render --- TODO.md | 6 ++ parts.scad | 173 ++++++++++++++++++++++++++++------------------------- 2 files changed, 96 insertions(+), 83 deletions(-) diff --git a/TODO.md b/TODO.md index 1cea65c..46a2320 100644 --- a/TODO.md +++ b/TODO.md @@ -4,5 +4,11 @@ * 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 +* Raise motor mount on front left motor + ## Electronics +Must contain: +* Two TMC2209 drivers +* Two 4-pin screw terminals for motors +* Arduino? \ No newline at end of file diff --git a/parts.scad b/parts.scad index 87e1b98..0ac5853 100644 --- a/parts.scad +++ b/parts.scad @@ -237,7 +237,7 @@ module idler_post(belt_height, toothed = true) { module flcorner() { bom_item(); - render() { + union() { rotate([ 0, 0, 0 ]) { corner_base(); rail_holder(false); @@ -270,7 +270,7 @@ module flcorner() { module frcorner() { bom_item(); - render() { + union() { rotate([ 0, 0, 90 ]) { corner_base(); rail_holder(true); @@ -304,7 +304,7 @@ module frcorner() { module blcorner() { bom_item(); - render() + union() rotate([ 0, 0, 270 ]) { corner_base(extension = rail_holder_width); rail_holder(true); @@ -320,7 +320,7 @@ module blcorner() { module brcorner() { bom_item(); - render() + union() rotate([ 0, 0, 180 ]) { corner_base(extension = rail_holder_width); rail_holder(false); @@ -339,7 +339,7 @@ module xsled_slider() { screw_tab_len = 20; screw_tab_thickness = 10; - render() + union() // translate([screw_tab_len, 0, 0]) difference() { union() { @@ -517,89 +517,96 @@ module xsled2() { echo("Ledge width: ", ledge_width - outside_ledge_width); // rail attachment points - for (xsign = [1, - 1], ysign = [1, - 1]) { - translate([sled_xsize / 2 * xsign, sled_ysize / 2 * ysign, 0]) - rotate([0, - 90 * xsign, 0]) { - difference() { - union() { - cylinder(d = tab_thickness, h = tab_len); - translate( - [- tab_thickness / 2, ysign > 0 ? - tab_thickness / 2 : 0, 0]) - cube([tab_thickness, tab_thickness / 2 + 1, tab_len]); - } - translate([0, 0, - 0.5]) { - cylinder(d = bushing_od, h = bushing_len + 0.5); - cylinder(d = rail_diam * 1.1, h = tab_len + 1); + render() { + for (xsign = [1, - 1], ysign = [1, - 1]) { + translate([sled_xsize / 2 * xsign, sled_ysize / 2 * ysign, 0]) + rotate([0, - 90 * xsign, 0]) { + difference() { + union() { + cylinder(d = tab_thickness, h = tab_len); + translate( + [- tab_thickness / 2, ysign > 0 ? - tab_thickness / 2 : 0, 0]) + cube([tab_thickness, tab_thickness / 2 + 1, tab_len]); + } + translate([0, 0, - 0.5]) { + cylinder(d = bushing_od, h = bushing_len + 0.5); + cylinder(d = rail_diam * 1.1, h = tab_len + 1); + } } } - if ($preview) { + } + + // glass holding frame + difference() { + union() { + translate([- sled_xsize / 2, - inner_ysize / 2, 0]) + rotate([0, 90, 0]) rotate([0, 0, 90]) linear_extrude(sled_xsize) + polygon(glass_holder_points); + + translate([sled_xsize / 2, inner_ysize / 2, 0]) + rotate([0, 90, 180]) rotate([0, 0, 90]) + linear_extrude(sled_xsize) polygon(glass_holder_points); + + translate([sled_xsize / 2, - inner_ysize / 2, 0]) + rotate([0, 90, 90]) rotate([0, 0, 90]) + linear_extrude(inner_ysize) polygon(glass_holder_points); + + translate([- sled_xsize / 2, inner_ysize / 2, 0]) + rotate([0, 90, - 90]) rotate([0, 0, 90]) + linear_extrude(inner_ysize) polygon(glass_holder_points); + } + + // grub screw points for glass levelling + for (x = [- 1, 1], + y = [- 1, 1]) { + translate([x * (sled_xsize / 2 - outside_ledge_width - inside_ledge_width / 2), + y * (inner_ysize / 2 - outside_ledge_width - inside_ledge_width / 2), + film_height]) + rotate([180, 0, 0]) { + cylinder(d = 4, h = 50); + cylinder(d = 5, h = 4 + glass_thickness); + } + } + + // finger notch + translate([ + - 10, - inner_ysize / 2, + + film_height - glass_thickness + 0.5 - finger_notch_smdepth + finger_notch_diam / 2 + ]) rotate([90, 0, 0]) + cylinder(d = finger_notch_diam, h = ledge_width * 3, center = true); + + } + + // belt attachment points + idler_spacing = sled_ysize / 6; + for (params = [ + [true, [- sled_xsize / 2, idler_spacing, belt_height1]], + [false, [- sled_xsize / 2, - idler_spacing, belt_height2]], + [true, [sled_xsize / 2, idler_spacing, belt_height2]], + [false, [sled_xsize / 2, - idler_spacing, belt_height1]] + ]) { + should_mirror = params[1][0] > 0 ? params[0] : !params[0]; + translate(params[1]) + rotate([0, 0, params[1][0] > 0 ? 90 : - 90]) { + if (should_mirror) { + mirror([1, 0, 0]) + gt2_clip(params[0]); + } else { + gt2_clip(params[0]); + } + } + } + } + + if ($preview) { + for (xsign = [1, - 1], ysign = [1, - 1]) { + translate([sled_xsize / 2 * xsign, sled_ysize / 2 * ysign, 0]) + rotate([0, - 90 * xsign, 0]) { bushing(); } - } - } - - // glass holding frame - difference() { - union() { - translate([- sled_xsize / 2, - inner_ysize / 2, 0]) - rotate([0, 90, 0]) rotate([0, 0, 90]) linear_extrude(sled_xsize) - polygon(glass_holder_points); - - translate([sled_xsize / 2, inner_ysize / 2, 0]) - rotate([0, 90, 180]) rotate([0, 0, 90]) - linear_extrude(sled_xsize) polygon(glass_holder_points); - - translate([sled_xsize / 2, - inner_ysize / 2, 0]) - rotate([0, 90, 90]) rotate([0, 0, 90]) - linear_extrude(inner_ysize) polygon(glass_holder_points); - - translate([- sled_xsize / 2, inner_ysize / 2, 0]) - rotate([0, 90, - 90]) rotate([0, 0, 90]) - linear_extrude(inner_ysize) polygon(glass_holder_points); } - - // grub screw points for glass levelling - for (x = [- 1, 1], - y = [- 1, 1]) { - translate([x * (sled_xsize / 2 - outside_ledge_width - inside_ledge_width / 2), - y * (inner_ysize / 2 - outside_ledge_width - inside_ledge_width / 2), - film_height]) - rotate([180, 0, 0]) { - cylinder(d = 4, h = 50); - cylinder(d = 5, h = 4 + glass_thickness); - } - } - - // finger notch - translate([ - - 10, - inner_ysize / 2, - - film_height - glass_thickness + 0.5 - finger_notch_smdepth + finger_notch_diam / 2 - ]) rotate([90, 0, 0]) - cylinder(d = finger_notch_diam, h = ledge_width * 3, center = true); - } - - // belt attachment points - idler_spacing = sled_ysize / 6; - for (params = [ - [true, [-sled_xsize/2, idler_spacing, belt_height1 ]], - [false, [-sled_xsize/2, -idler_spacing, belt_height2]], - [true, [sled_xsize/2, idler_spacing, belt_height2]], - [false, [sled_xsize/2, -idler_spacing, belt_height1]] - ]) { - should_mirror = params[1][0] > 0 ? params[0] : !params[0]; - translate(params[1]) - rotate([0,0,params[1][0] > 0 ? 90 : -90]) { - if (should_mirror ) { - mirror([1,0,0]) - gt2_clip(params[0]); - } else { - gt2_clip(params[0]); - } - } - } - color("#fff3") if ($preview) { // draw glass sheets translate( @@ -608,7 +615,7 @@ module xsled2() { [ sled_xsize - outside_ledge_width * 2, inner_ysize - outside_ledge_width * 2, - glass_thickness + glass_thickness ], center = true); *translate(