]> www.fi.muni.cz Git - things.git/commitdiff
alternative joiner for madstab at the end of tube
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 4 May 2018 09:56:08 +0000 (11:56 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 4 May 2018 09:56:08 +0000 (11:56 +0200)
madstab-joiner-end.scad [new file with mode: 0644]

diff --git a/madstab-joiner-end.scad b/madstab-joiner-end.scad
new file mode 100644 (file)
index 0000000..d82285b
--- /dev/null
@@ -0,0 +1,66 @@
+eps = 0.01;
+infty = 200;
+
+wall = 1.5;
+thin_wall = 0.6;
+
+stab_tube_d = 3.0 + 0.5;
+stab_tube_d2 = stab_tube_d;
+stab_tube_l = 20;
+
+fuse_tube_d = 8.0;
+fuse_tube_l = 12;
+
+slot_w = 3;
+
+base_d = 15;
+base_h = 0.6;
+
+module body() {
+       // fuse tube
+       hull() {
+               translate([-fuse_tube_d/2-wall, -fuse_tube_l/2, 0])
+                       cube([fuse_tube_d + wall, fuse_tube_l, eps]);
+               translate([0, fuse_tube_l/2, fuse_tube_d/2+wall])
+               rotate([90, 0, 0])
+                       cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
+       }
+       // stab tube
+       hull() {
+               translate([-fuse_tube_d/2-wall, fuse_tube_l/2-eps, 0])
+                       cube([stab_tube_l, stab_tube_d2+2*eps, eps]);
+               translate([-fuse_tube_d/2-wall, fuse_tube_l/2+stab_tube_d2/2, stab_tube_d2/2+wall])
+               rotate([0, 90, 0])
+                       cylinder(r = stab_tube_d2/2+wall+eps, h = stab_tube_l);
+       }
+}
+
+difference() {
+       body();
+       // fuse tube hole
+       translate([0, fuse_tube_l/2+eps, fuse_tube_d/2+wall])
+       rotate([90, 0, 0])
+               cylinder(r = fuse_tube_d/2, h = fuse_tube_l + 2*eps);
+       // fuse tube slot
+       translate([-slot_w/2, -fuse_tube_l/2-eps, fuse_tube_d/2+wall])
+               cube([slot_w, fuse_tube_l + 2*eps, fuse_tube_d/2+wall+eps]);
+
+       // stab tube
+       translate([-fuse_tube_d/2-wall-eps, fuse_tube_l/2 + stab_tube_d2/2, stab_tube_d2/2 +wall])
+       rotate([0, 90, 0])
+               cylinder(r = stab_tube_d2/2, h = stab_tube_l + 2*eps);
+}
+
+// endpoint stopper
+
+translate([0, 2*fuse_tube_l, 0])
+difference() {
+       union() {
+               cylinder(r = stab_tube_d/2 + wall, h = wall);
+               translate([0, 0, wall-eps])
+                       cylinder(r1 = stab_tube_d/2 + wall, r2 = stab_tube_d/2+thin_wall, h = wall);
+       }
+       translate([0, 0, -eps])
+               cylinder(r = stab_tube_d/2, h = 2*wall + 2*eps);
+}
+