From ebea55a35cfe869cf498841266ecdfa9d8345fb9 Mon Sep 17 00:00:00 2001 From: Maximilian Stiefel Date: Sat, 12 Jun 2021 10:34:13 +0200 Subject: [PATCH] Added two designs --- cable_tie_mount/cable_tie_mount_screws.scad | 43 ++++++++++++++++++++ urine_diverter/diverter.scad | 45 +++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 cable_tie_mount/cable_tie_mount_screws.scad create mode 100644 urine_diverter/diverter.scad diff --git a/cable_tie_mount/cable_tie_mount_screws.scad b/cable_tie_mount/cable_tie_mount_screws.scad new file mode 100644 index 0000000..c1f446c --- /dev/null +++ b/cable_tie_mount/cable_tie_mount_screws.scad @@ -0,0 +1,43 @@ +$fn=50; +l_lower = 20; +w_lower = 44; +h_lower = 3; +l_higher = 10; +h_higher = 1; +h = 7; +b_cable_tie = 7; +d_screw = 5; +d_screw_head = 9.5; +h_screw_head = 4; +color("RoyalBlue", 1.0) +difference () { + // Basic shape + union() + { + cube([l_lower, w_lower, h_lower], center=true); + hull(){ + cube([l_lower, l_lower, h_lower], center=true); + translate([0,0, h - h_higher/2]) + cube([l_higher, l_higher, h_higher], center=true); + } + } + // Cutouts for cable ties + for (rot = [0:1:1]) { + rotate([0, 0, rot*90]) + translate([0, 0, h_lower/2]) + difference() { + rotate([90, 0, 0]) + cylinder(r=b_cable_tie/2, h=l_lower*2, center=true); + translate([0, 0, -b_cable_tie/2]) + cube([b_cable_tie, 2*l_lower+0.01, b_cable_tie], center=true); + } + } + for (y = [-1:2:1]) { + translate([0, y * ((w_lower/2 - l_lower/2)/2 + l_lower/2), 0]) + union() { + translate([0, 0, -abs(h_screw_head - h_lower)/2 + 0.001]) + cylinder(r1 = d_screw/2, r2 = d_screw_head/2, h = h_screw_head, center=true); + cylinder(r = d_screw/2, h=l_lower*2, center=true); + } + } +} diff --git a/urine_diverter/diverter.scad b/urine_diverter/diverter.scad new file mode 100644 index 0000000..057b348 --- /dev/null +++ b/urine_diverter/diverter.scad @@ -0,0 +1,45 @@ +$fn=100; +thickness = 5; +x = 250; +y = 190; +z = 120; +rim_breadth = 30; +drain_d = 34; +scale_center_crosspiece = 0.15; + +difference () { +difference () { + union() { + // Base bowl + difference() { + cube([x, y, z], center=true); + translate([0, thickness/2+0.01, thickness/2+0.01]) + cube([x-2*thickness, y-thickness, z-thickness], center=true); + } + // Center crosspiece + translate([0, 0, -z/2 + thickness + scale_center_crosspiece*z/2]) + cube([2*thickness, y, scale_center_crosspiece*z], center=true); + // Rim back end + /*translate([0, -y/2 - rim_breadth/2, z/2-thickness/2]) + cube([x, rim_breadth, thickness], center=true);*/ + // Rim sides + /*for (v=[-1:2:1]) { + translate([v*(x + rim_breadth)/2, -rim_breadth/2, z/2-thickness/2]) + cube([rim_breadth, y + rim_breadth, thickness], center=true); + }*/ + // Front end dam + scale_dam = 0.4; + translate([0, y/2 - thickness/2, -z/2 + (scale_dam*z)/2]) + cube([x, thickness, scale_dam*z], center=true); + } + // Drain + union() { + scale_drain_gland = 1.4; + cylinder(r=drain_d/2, h=2*z ,center=true); + translate([0, 0, -z/2+(scale_center_crosspiece*z)/2+thickness]) + cylinder(r=scale_drain_gland*(drain_d/2), h=scale_center_crosspiece*z+thickness,center=true); + } +} +translate([-x/4 - rim_breadth/2, 0, 0]) +cube([x/2+rim_breadth+0.01, 2*y, 2*z], center=true); +}