etc: scads of random scad
authorClinton Ebadi <clinton@unknownlamer.org>
Thu, 4 Apr 2019 02:47:47 +0000 (22:47 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Thu, 4 Apr 2019 02:47:47 +0000 (22:47 -0400)
Mostly just wanted to get these out of the untracked files
list.

calibration/ninjaflex-ooze.scad [new file with mode: 0644]
etc/belt-clip.scad [new file with mode: 0644]
etc/cork.scad [new file with mode: 0644]
etc/mosquito-honeypot.scad [new file with mode: 0644]
etc/printdry-foot.scad [new file with mode: 0644]
etc/stopper-stopper.scad [new file with mode: 0644]
etc/tap-handle.scad [new file with mode: 0644]

diff --git a/calibration/ninjaflex-ooze.scad b/calibration/ninjaflex-ooze.scad
new file mode 100644 (file)
index 0000000..ad001f4
--- /dev/null
@@ -0,0 +1,38 @@
+// quick hack to test ooze with ninjaflex
+
+// lots of small towerslike in the make magazine tests are doomed with
+// ninjaflex, so just use four larger towers
+
+tower_base_d  = 10;
+tower_top_d   = 2;
+
+tower_height  = 20;
+tower_spacing = 15;
+
+base_height  = 0.8;
+base_extra_d = 0;
+
+$fn = 4;
+
+
+module tower () {
+     cylinder (d1=tower_base_d, d2=tower_top_d, h=tower_height);
+}
+
+module towers () {
+     spacing = tower_spacing + tower_base_d;
+     
+     for (x = [0, spacing], y = [0, spacing]) {
+         translate ([x, y, 0]) tower ();
+     }
+
+     translate ([spacing/2, spacing/2, 0]) tower ();
+}
+
+difference () {
+     linear_extrude (height = base_height) offset (r = base_extra_d/2, chamfer=true) hull () projection () towers ();
+     translate ([0, 0, 0]) cylinder (d=tower_base_d/2, h=base_height/2);
+}
+translate ([0, 0, base_height]) towers ();
+
+
diff --git a/etc/belt-clip.scad b/etc/belt-clip.scad
new file mode 100644 (file)
index 0000000..d029e7c
--- /dev/null
@@ -0,0 +1,52 @@
+use <dotscad/rounded_square.scad> // https://github.com/JustinSDK/dotSCAD
+
+$fs = 0.1;
+$fa = 0.1;
+
+
+buckle_height = 60;
+buckle_width = 120;
+buckle_thickness = 3;
+
+slot_width = 3.5;
+slot_height = buckle_height - 15;
+slot_edge_offset = 5.5 + slot_width;
+
+dragon_d = 90;
+
+buckle_corner_r = 1.5;
+slot_corner_r = 0.5;
+
+module buckle_piece () {
+     difference () {
+         rounded_square ([buckle_width/2, buckle_height], buckle_corner_r);
+
+         translate ([buckle_width/2 - slot_edge_offset, (buckle_height - slot_height) / 2, 0]) {
+              square ([slot_width, slot_height]);
+              translate ([slot_width/2, slot_height, 0]) circle (d=slot_width);
+              translate ([slot_width/2, 0, 0]) circle (d=slot_width);
+         }
+     }
+}
+
+module buckle_base (buckle_thickness=buckle_thickness) {
+     linear_extrude (buckle_thickness) {
+         translate ([-buckle_width/4, 0, 0]) square ([buckle_width/2, buckle_height]);
+         buckle_piece ();
+         mirror ([1, 0, 0]) buckle_piece ();
+     }
+}
+
+
+module dragon (d=10) {
+/*     translate ([-d/2, -d/2, 0]) {
+         resize ([d, 0, 0], auto=true ) import ("./house-targaryen-game-of-thrones-2_fixed.stl");
+     }
+*/
+     cylinder (d=d, h=buckle_thickness);
+}
+
+
+
+translate ([0, -buckle_height/2, 0]) buckle_base ();
+//translate ([0, 0, 0]) dragon (d=dragon_d);
diff --git a/etc/cork.scad b/etc/cork.scad
new file mode 100644 (file)
index 0000000..0a02514
--- /dev/null
@@ -0,0 +1,57 @@
+// cork for my weep of willow potion bottle
+
+// designed to fit a small submersible led tea light into the cap and
+// illuminate the smoke rising from the smoker. LED sits in
+// led_cork(), and led_cap() is placed over it to diffuse. Printed @
+// 100% infill, slow, and with the largest possible layer heights.
+
+$fa = 1;
+$fs = 1;
+
+led_cork ();
+//led_cap ();
+
+/* actual cork dimensions
+bottom_d = 29.5;
+top_d = 35.25;
+height = 37.77;
+*/
+
+module cork (bottom_d, top_d, height) {
+     hull () {
+         cylinder (d=bottom_d, h=0.1);
+         translate ([0, 0, height]) cylinder (d=top_d, h=0.1);
+     }
+}
+
+
+// logically, should be arguments, but are shared between led_cork and
+// led_cap...
+
+bottom_inner_d = 30;
+top_inner_d    = 35.25;
+height         = 37.77;
+wall           = 1.0;
+
+module led_cork () {
+     difference () {
+         cork (bottom_inner_d + wall*2, top_inner_d + wall*2, height);
+         translate ([0, 0, wall*2]) cork (bottom_inner_d, top_inner_d, height);
+     }
+
+}
+
+// dome of the led, to be cut from cap
+module led_dome (height = 8.5, diameter = 8.8) {
+     cylinder (d=diameter, h=height/2);
+     translate ([0, 0, height/2]) sphere (d=diameter);
+     
+}
+
+module led_cap (cap_depth = 12, cap_tolerance = 0.5) {
+     difference () {
+         // doesn't have to be exact, just need to fit in
+         cork (bottom_inner_d, top_inner_d - cap_tolerance, cap_depth);
+         translate ([0, 0, -0.01]) led_dome ();
+     }
+}
diff --git a/etc/mosquito-honeypot.scad b/etc/mosquito-honeypot.scad
new file mode 100644 (file)
index 0000000..db3c4c5
--- /dev/null
@@ -0,0 +1,33 @@
+// Simple cover for a mosquito bacillus thuringiensis trap
+
+// UV radiation may slowly kill the bt... so use an opaque container
+// and cover it with a lid with a smaller hole in it. Might help
+// control evaporation as well, and it helps not having open
+// containers of water around (probably don't want wild animals
+// drinking a soup of decaying bug larvaue).
+
+// The trap itself is just water, orange blossom water (which contains
+// skatole... I think) as an attractant, and some bt granules or
+// dunks.
+
+$fa = 0.1;
+$fs = 0.5;
+
+module mosquito_honeypot_lid (lid_diameter = 50, lid_depth = 15, hole_width = 20, wall_thickness = 1, bottom_thickness = 2)
+{
+     total_h = lid_depth + bottom_thickness;
+     difference () { 
+              cylinder (d = lid_diameter + wall_thickness*2, h = total_h, center = true);
+         translate ([0, 0, bottom_thickness/2 + 1/2])
+              #cylinder (d = lid_diameter, h = lid_depth+1, center = true);
+
+         translate ([0, 0, -lid_depth/2])
+              cube ([hole_width, hole_width, bottom_thickness*4], center = true);
+     }
+}
+
+// wall thickness calculation halves value 
+//mosquito_honeypot_lid (lid_diameter=72.5, lid_depth=18, wall_thickness=4, bottom_thickness=2);
+
+
+mosquito_honeypot_lid (lid_diameter=71, lid_depth=25, wall_thickness=2, bottom_thickness=2, hole_width=25);
diff --git a/etc/printdry-foot.scad b/etc/printdry-foot.scad
new file mode 100644 (file)
index 0000000..4f71097
--- /dev/null
@@ -0,0 +1,29 @@
+// Foot for printdry filament dry to make it not rattle about
+// Copyright (c) 2017 Clinton Ebadi <clinton@unknownlamer.org>
+
+tolerance = 0.2;
+
+width = 2.7 + tolerance;
+length = 13.75 + tolerance;
+height = 7.5 - 1.0 - tolerance;
+
+wall = 2;
+foot = 7;
+
+$fa = 0.1;
+$fs = 0.1;
+
+module slot (length=length, width=width, height=height) {
+     linear_extrude (height) {
+         hull () {
+              translate ([-(length - width)/2, 0, 0]) circle (d=width);
+              translate ([(length - width)/2, 0, 0]) circle (d=width);
+         }
+     }
+}
+
+difference () {
+     translate ([0, 0, -foot]) slot (length+wall, width+wall, height+foot-0.01);
+     slot ();
+}
+
diff --git a/etc/stopper-stopper.scad b/etc/stopper-stopper.scad
new file mode 100644 (file)
index 0000000..348f090
--- /dev/null
@@ -0,0 +1,26 @@
+// Trival stopper for a drilled out homebrewing stopper
+
+// Quick hack so I could store water in homebrewing carboys during
+// hurricane florence
+
+stem_base_d = 6;
+stem_neck_d = 11;
+stem_head_d = 14;
+stem_handle_d = 20;
+
+base_h = 8;
+neck_h = 15;
+top_h = 3;
+
+$fa = 0.1;
+$fs = 0.1;
+
+hull () {
+     cylinder (d=stem_base_d);
+     translate ([0, 0, base_h]) cylinder (d=stem_neck_d);
+}
+hull () {
+     translate ([0, 0, base_h]) cylinder (d=stem_neck_d);
+     translate ([0, 0, base_h+neck_h]) cylinder (d=stem_head_d);
+}
+translate ([0, 0, base_h+neck_h]) cylinder (d=stem_handle_d, h=top_h);
diff --git a/etc/tap-handle.scad b/etc/tap-handle.scad
new file mode 100644 (file)
index 0000000..75a1a40
--- /dev/null
@@ -0,0 +1,8 @@
+use <threads.scad>
+
+// pretty sure this is wrong, it definitely doesn't fit a tap handle...
+
+difference () {
+     %cylinder (r=10, h = 40, $fn = 120);
+     translate ([0, 0, -0.5]) english_thread (diameter=3/8, threads_per_inch=16, length=9/8, internal = true);
+}