From 267bb43fa7d4fc52a669169acb2e04b445f7d1b3 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Fri, 1 Nov 2019 16:59:39 -0400 Subject: [PATCH 01/11] pacman-ghost: add optional sacrificial support layer back Turns out it really is easier to print with this instead of using slicer supports, at least on my machine. --- pacman-ghost/pacman-ghost.scad | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pacman-ghost/pacman-ghost.scad b/pacman-ghost/pacman-ghost.scad index 8ad72e0..e314b97 100644 --- a/pacman-ghost/pacman-ghost.scad +++ b/pacman-ghost/pacman-ghost.scad @@ -33,6 +33,9 @@ $fa=4; // [20:Low Res, 10:Normal Res, 4:Hi Res] base_diameter = 30; base_height = 16.2; bulb_diameter = 9; +// Built in sacrificial support layer +tea_light_support = true; +tea_light_support_thickness = 0.3; /* [Hidden] */ $fs=0.1; @@ -83,9 +86,11 @@ module tea_light_base () { } // sacrificial support layer, subtracted since this will be // subtracted from the ghost body - translate ([0, 0, base_height+0.7]) #cylinder (d=base_diameter+2, h=0.3); + if (tea_light_support) { + translate ([0, 0, base_height+(1 - tea_light_support_thickness)]) + #cylinder (d=base_diameter+2, h=tea_light_support_thickness); + } } - } module pacguy () { -- 2.20.1 From 4c7c027a8931439c2c008de4da57c49288bdc69d Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 10 Mar 2021 21:34:32 -0500 Subject: [PATCH 02/11] etc: make shelving foot base optional Can be toggled to make a cap or a foot. --- etc/shelving-foot.scad | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/etc/shelving-foot.scad b/etc/shelving-foot.scad index 00c4484..3c433fa 100644 --- a/etc/shelving-foot.scad +++ b/etc/shelving-foot.scad @@ -23,6 +23,8 @@ base_depth = 4; slot_depth = 20; // Offset for leg slot into the base slot_offset = -1; +// Enable/disable base +base_enabled = true; $fs = 0.1; @@ -30,7 +32,11 @@ foot (); module base () { side = slot_length + slot_thickness/2; - offset (r = wall_thickness) polygon ([ [0, 0], [ side , 0], [0, side] ]); + if (base_enabled) { + offset (r = wall_thickness) polygon ([ [0, 0], [ side , 0], [0, side] ]); + } else { + walls (); + } } module walls () { @@ -39,7 +45,7 @@ module walls () { square ([slot_thickness, slot_length + slot_thickness/2]); square ([slot_length + slot_thickness/2, slot_thickness]); } - base (); + if (base_enabled) { base (); } } } -- 2.20.1 From 0f913e470b140938eb950a50aeaa3906c770d2eb Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Thu, 29 Apr 2021 21:31:53 -0400 Subject: [PATCH 03/11] etc: increase hole size for button cell holder 1.2mm was slightly too small to print clean holes with a 0.5mm nozzle, 1.5mm is still tight and prints much cleaner. --- etc/button-cell-holder.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/button-cell-holder.scad b/etc/button-cell-holder.scad index 3597aec..636d1dd 100644 --- a/etc/button-cell-holder.scad +++ b/etc/button-cell-holder.scad @@ -9,7 +9,7 @@ // Defaults have no tolerance, should be printed using flexible // filament for a snug fit -module holder (battery_d = 20, battery_h = 3.2, case_wall = 1.7, slot_undersize = 0.4, wire_d = 1.2, cover_pct = 0.4) { +module holder (battery_d = 20, battery_h = 3.2, case_wall = 1.7, slot_undersize = 0.4, wire_d = 1.5, cover_pct = 0.4) { battery_h = battery_h - slot_undersize; case_d = battery_d + case_wall*2; -- 2.20.1 From 95cd68c073c84aa3925acaf19375baef13936c58 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Tue, 5 Oct 2021 13:23:07 -0400 Subject: [PATCH 04/11] cleaver: simple flat meat cleaver Using open clip art svg as base. For a halloween decoration. --- cleaver/1492890647.svg | 128 +++++++++++++++++++++++++++++++++++++++++ cleaver/README | 1 + cleaver/cleaver.scad | 1 + 3 files changed, 130 insertions(+) create mode 100644 cleaver/1492890647.svg create mode 100644 cleaver/README create mode 100644 cleaver/cleaver.scad diff --git a/cleaver/1492890647.svg b/cleaver/1492890647.svg new file mode 100644 index 0000000..067463c --- /dev/null +++ b/cleaver/1492890647.svg @@ -0,0 +1,128 @@ + + + + + Cleaver + + + + + + image/svg+xml + + Cleaver + 2017-03-25 + + + Algot Runeman + + + + + Algot Runeman + + + + + runeman.org + + + cleaver.svg + + + + + + + + + + + + + + + + + + diff --git a/cleaver/README b/cleaver/README new file mode 100644 index 0000000..51a805c --- /dev/null +++ b/cleaver/README @@ -0,0 +1 @@ +Original cleaver SVG is from https://openclipart.org/detail/278407/meat-cleaver (public domain) \ No newline at end of file diff --git a/cleaver/cleaver.scad b/cleaver/cleaver.scad new file mode 100644 index 0000000..3775208 --- /dev/null +++ b/cleaver/cleaver.scad @@ -0,0 +1 @@ +rotate ([0, 0, 120]) linear_extrude (2.5) import ("1492890647.svg"); -- 2.20.1 From 10c9d1a5d7d7a51c27d0448a430bb1b71b0b7d58 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 3 Nov 2021 21:03:48 -0400 Subject: [PATCH 05/11] etc: improve laserjet 6 rear tray clip --- etc/laserjet6-rear-tray-clip.scad | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/etc/laserjet6-rear-tray-clip.scad b/etc/laserjet6-rear-tray-clip.scad index 315cdb8..f34e3b6 100644 --- a/etc/laserjet6-rear-tray-clip.scad +++ b/etc/laserjet6-rear-tray-clip.scad @@ -6,14 +6,15 @@ // length = 73 // max depth = 25 +// fixme: needs to be 72 I think clip_gap = 73.5; -clip_wall = 3; +clip_wall = 4; // was 3, beefed up a bit after first pair broke clip_depth = 20; clip_width = 5; hook = true; hook_depth = 6; -hook_wall = clip_wall; +hook_wall = 3; // limited by size of rear output tray slots $fs = 0.1; $fa = 0.1; -- 2.20.1 From 147982f59f5d33077c697a6aa5421bff1e412199 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 3 Nov 2021 21:04:04 -0400 Subject: [PATCH 06/11] etc: simple hook for hanging a power strip from my desk pegboard --- etc/hook.scad | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 etc/hook.scad diff --git a/etc/hook.scad b/etc/hook.scad new file mode 100644 index 0000000..e508e3d --- /dev/null +++ b/etc/hook.scad @@ -0,0 +1,39 @@ +// Super simple hook +// Intended for hanging a power strip from the top of a metal pegboard + +// vertical and horizontal pieces + +// actual measurements of board + power strip +/* v0_len = 47.5 - 10; */ +/* v1_len = 47.5; */ +/* v2_len = 42.5; */ + +/* h0_len = 26.75; */ +/* h1_len = 35.25; */ +/* h2_len = 35.25; */ + +v0_len = 47.5 - 10; +v1_len = 47.5; +v2_len = 42.5; + +h0_len = 26.75; +h1_len = 10; +h2_len = 35.25; + +thickness = 0.45 * 6; // four perimeters on prusa mini with 0.4mm nozzle +width = 15; // my power strip has a 20mm wide area where the hook could go +fillet = 0; // doesn't quite work, affects internal dimensions + +$fa = 1; +$fs = 0.5; +linear_extrude (width) { + offset (r = -fillet) offset (r = +fillet) union () { + square ([thickness, v0_len]); //v0 + translate ([0, v0_len]) square ([h0_len + thickness * 2, thickness]); //h0 + translate ([h0_len + thickness, v0_len - v1_len]) square ([thickness, v1_len]); // v1 + translate ([h0_len + thickness, v0_len - v1_len - thickness]) square ([h2_len + thickness * 2, thickness]); //h2 + translate ([h0_len + h2_len + thickness * 2, v0_len - v1_len]) square ([thickness, v2_len]); //v2 + translate ([h0_len + h2_len + thickness * 2 - h1_len, v0_len - v1_len + v2_len]) square ([h1_len + thickness, thickness]); //h1 + } +} + -- 2.20.1 From 09d3555a6bd4114b20a2029dfcbe09ad7e984f39 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Sun, 5 Dec 2021 21:02:33 -0500 Subject: [PATCH 07/11] mead-horn: first attempt at a mini mead horn for solstice gathering Due to covid yadda yadda not passing the regular horn around. See if individual printed horns will work instead. --- mead-horn/mead-horn.scad | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 mead-horn/mead-horn.scad diff --git a/mead-horn/mead-horn.scad b/mead-horn/mead-horn.scad new file mode 100644 index 0000000..9a26f8d --- /dev/null +++ b/mead-horn/mead-horn.scad @@ -0,0 +1,66 @@ +// 2021 + +// Single person mead horn, for winter solstice 2021 since sharing +// mead from the real horn is probably still unsafe. + +// https://openhome.cc/eGossip/OpenSCAD/lib3x-golden_spiral_extrude.html +use ; +use ; +use ; + +bottom_radius = 4; +top_radius = 30; +horn_length = 135; + +module helix_horn () { + helix_levels = 1/6; + + arc_measure = (360 * helix_levels) * (3.13 / 180) ; + arc_length = horn_length; + + helix_radius = (arc_length / arc_measure); + echo (helix_radius); + + + translate ([helix_radius, 0, 0]) scale ([1, 1/2, 1]) intersection () { + sphere (r = bottom_radius); + rotate ([90, 0, 0]) cylinder (h = bottom_radius, r = bottom_radius, center=false); + } + + shape_pts = shape_circle (radius = bottom_radius); + + helix_extrude(shape_pts, + radius = helix_radius, + scale = top_radius/bottom_radius, + levels = helix_levels, + level_dist = top_radius * 5, + vt_dir = "SPI_UP" + ); +} + +helix_horn ($fs = 0.3, $fa = 1); + + + +//linear_extrude (height = 120, scale = top_radius/bottom_radius, twist = 500) { +// circle (r = bottom_radius, $fn=5); +//} + + +/* + $fn = 64; +//shape_pts = concat( +// shape_circle(radius = 3), +// shape_circle(radius = 2.5) +//); +shape_pts = shape_circle(radius = 2); + +golden_spiral_extrude( + shape_pts, + from = 7, + to = 10, + point_distance = 1, + scale = 10, + triangles = "SOLID" +); +*/ -- 2.20.1 From 4c544e534e31c0b1b3b311204a8b3b90ff1eaa34 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Mon, 6 Dec 2021 20:00:47 -0500 Subject: [PATCH 08/11] mead-horn: add twist and x/y scaling --- mead-horn/mead-horn.scad | 54 +++++++++++----------------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/mead-horn/mead-horn.scad b/mead-horn/mead-horn.scad index 9a26f8d..f3a6e9d 100644 --- a/mead-horn/mead-horn.scad +++ b/mead-horn/mead-horn.scad @@ -3,64 +3,40 @@ // Single person mead horn, for winter solstice 2021 since sharing // mead from the real horn is probably still unsafe. -// https://openhome.cc/eGossip/OpenSCAD/lib3x-golden_spiral_extrude.html use ; -use ; use ; bottom_radius = 4; -top_radius = 30; +top_radius = 33; horn_length = 135; +horn_rise = 40; +horn_twist = 0; +horn_aspect = [ 0.92, 1.0 ]; module helix_horn () { helix_levels = 1/6; - arc_measure = (360 * helix_levels) * (3.13 / 180) ; + arc_measure = (360 * helix_levels) * (3.13 / 180); arc_length = horn_length; - helix_radius = (arc_length / arc_measure); - echo (helix_radius); - - translate ([helix_radius, 0, 0]) scale ([1, 1/2, 1]) intersection () { + // Round off end + // todo: dotscad rounded cone instead? + translate ([helix_radius, 0, 0]) scale ([horn_aspect[0], 1/2, horn_aspect[1]]) intersection () { sphere (r = bottom_radius); rotate ([90, 0, 0]) cylinder (h = bottom_radius, r = bottom_radius, center=false); } - - shape_pts = shape_circle (radius = bottom_radius); - + + shape_pts = [ for (pts = shape_circle (radius = bottom_radius)) [ pts[0] * horn_aspect[0], pts[1] * horn_aspect[1] ] ]; + helix_extrude(shape_pts, radius = helix_radius, scale = top_radius/bottom_radius, levels = helix_levels, - level_dist = top_radius * 5, - vt_dir = "SPI_UP" + level_dist = horn_rise / helix_levels, + vt_dir = "SPI_UP", + twist = horn_twist / helix_levels ); } -helix_horn ($fs = 0.3, $fa = 1); - - - -//linear_extrude (height = 120, scale = top_radius/bottom_radius, twist = 500) { -// circle (r = bottom_radius, $fn=5); -//} - - -/* - $fn = 64; -//shape_pts = concat( -// shape_circle(radius = 3), -// shape_circle(radius = 2.5) -//); -shape_pts = shape_circle(radius = 2); - -golden_spiral_extrude( - shape_pts, - from = 7, - to = 10, - point_distance = 1, - scale = 10, - triangles = "SOLID" -); -*/ +helix_horn ($fs = 0.1, $fa = 1); -- 2.20.1 From c34c197d0242671d7fc6ca8b2ebd1405b41e1f40 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 8 Dec 2021 20:49:51 -0500 Subject: [PATCH 09/11] mead-horn: swap default aspect ratio --- mead-horn/mead-horn.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mead-horn/mead-horn.scad b/mead-horn/mead-horn.scad index f3a6e9d..9c85987 100644 --- a/mead-horn/mead-horn.scad +++ b/mead-horn/mead-horn.scad @@ -11,7 +11,7 @@ top_radius = 33; horn_length = 135; horn_rise = 40; horn_twist = 0; -horn_aspect = [ 0.92, 1.0 ]; +horn_aspect = [ 1.0, 0.92 ]; module helix_horn () { helix_levels = 1/6; -- 2.20.1 From fe5b42f2b38b6ab0c5e1129dca395535662939b4 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 8 Dec 2021 21:00:17 -0500 Subject: [PATCH 10/11] mead-horn: license, README, customizer presets, fix aspect customization --- mead-horn/README | 32 ++++++++++++++++++++++++++++++++ mead-horn/mead-horn.json | 29 +++++++++++++++++++++++++++++ mead-horn/mead-horn.scad | 10 ++++++++-- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 mead-horn/README create mode 100644 mead-horn/mead-horn.json diff --git a/mead-horn/README b/mead-horn/README new file mode 100644 index 0000000..245ad51 --- /dev/null +++ b/mead-horn/README @@ -0,0 +1,32 @@ +** Customizing + +The built-in customizer in openscad can be used to easily tweak +settings. A few presets that I used are included. + +** Print orientation + +Use Cura or Slic3r "align to face" feature to lay the mouth of the +horn on the print bed. + +** Print Settings + +Intended to be printed hollow: + + - 0 bottom layers + - 0 top layers + - 0% infill + - 0.2mm or lower layer height + +Did not have great luck with vase mode @ 0.2mm layer height (overhang +near end of horn was too great and there were gaps), but might be +worth a shot at 0.1mm. + +*** PETG + +Using a prusa mini with a 0.4mm nozzle @ 0.2mm layer height, I needed +six perimeters to make the horn watertight. Also needed to make the +final 10-15mm of the horn solid. + +** Guidance on making model watertight + + - https://blog.prusaprinters.org/watertight-3d-printing-pt1-vases-cups-and-other-open-models_48949/ \ No newline at end of file diff --git a/mead-horn/mead-horn.json b/mead-horn/mead-horn.json new file mode 100644 index 0000000..7c8b868 --- /dev/null +++ b/mead-horn/mead-horn.json @@ -0,0 +1,29 @@ +{ + "parameterSets": { + "flatter mouth": { + "bottom_radius": "4", + "horn_aspect": "[1, 0.92]", + "horn_length": "135", + "horn_rise": "25", + "horn_twist": "0", + "top_radius": "30" + }, + "twisty": { + "bottom_radius": "4", + "horn_aspect": "[1, 0.92]", + "horn_length": "135", + "horn_rise": "30", + "horn_twist": "120", + "top_radius": "35" + }, + "round horn": { + "bottom_radius": "4", + "horn_aspect": "[1, 1]", + "horn_length": "135", + "horn_rise": "25", + "horn_twist": "0", + "top_radius": "30" + } + }, + "fileFormatVersion": "1" +} diff --git a/mead-horn/mead-horn.scad b/mead-horn/mead-horn.scad index 9c85987..b3aeaa4 100644 --- a/mead-horn/mead-horn.scad +++ b/mead-horn/mead-horn.scad @@ -1,4 +1,10 @@ -// 2021 +// Simple 3D Printable Drinking Horn +// Copyright (c) 2021 Clinton Ebadi + + +// Released under the https://wiki.creativecommons.org/wiki/CC0 +// To the extent possible under law, Clinton Ebadi has waived all +// copyright and related or neighboring rights to Simple 3D Printable Drinking Horn. // Single person mead horn, for winter solstice 2021 since sharing // mead from the real horn is probably still unsafe. @@ -11,7 +17,7 @@ top_radius = 33; horn_length = 135; horn_rise = 40; horn_twist = 0; -horn_aspect = [ 1.0, 0.92 ]; +horn_aspect = [ 1.0, 0.92 ]; // [0:0.01:100] module helix_horn () { helix_levels = 1/6; -- 2.20.1 From 82d187df00447327bb541462c37abaeb8593bde7 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Wed, 8 Dec 2021 21:22:08 -0500 Subject: [PATCH 11/11] mead-horn: note dependency on dotscad --- mead-horn/README | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mead-horn/README b/mead-horn/README index 245ad51..03f9fd2 100644 --- a/mead-horn/README +++ b/mead-horn/README @@ -1,3 +1,8 @@ +** Dependencies + +Requires https://justinsdk.github.io/dotSCAD/ installed in your +library folder (~/.local/share/OpenSCAD/libraries/dotscad) + ** Customizing The built-in customizer in openscad can be used to easily tweak -- 2.20.1