Compare commits
No commits in common. "e0d618cd4d2935151f0a685dfebdf8de0a3fe584" and "cb9054f22dd4d8aa4071b14ad0c97f268155cf60" have entirely different histories.
e0d618cd4d
...
cb9054f22d
121
kabeljau.scad
121
kabeljau.scad
|
@ -1,121 +0,0 @@
|
||||||
/*
|
|
||||||
* Kabeljau - Wall mounted cable holder
|
|
||||||
*
|
|
||||||
* Copyright (C) 2023 Matthias Neeracher <microtherion@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
$fn = $preview ? 32 : 64;
|
|
||||||
|
|
||||||
// Number of slots
|
|
||||||
slots = 4; // [1:1:20]
|
|
||||||
|
|
||||||
/* [Other Parameters - Tune if Needed] */
|
|
||||||
// Thickness of Walls
|
|
||||||
thickness = 3.0; // [2.0:0.25:5.0]
|
|
||||||
|
|
||||||
// Spacing Between Slots
|
|
||||||
spacing = 15.0; // [10.0:1.0:20.0]
|
|
||||||
|
|
||||||
// Width of Slots
|
|
||||||
width = 4.8; // [3.0:0.1:8.0]
|
|
||||||
|
|
||||||
// Diameter of Slot Aperture
|
|
||||||
aperture = 6.5; // [0.0:0.1:12.0]
|
|
||||||
|
|
||||||
// Length of Slots
|
|
||||||
length = 10.0; // [5.0:1.0:30.0]
|
|
||||||
|
|
||||||
// Height of Slip Barrier
|
|
||||||
barrier = 10.0; // [0.0:1.0:20.0]
|
|
||||||
|
|
||||||
// Mounting height above barrier
|
|
||||||
mount_height = 20.0; // [10.0:1.0:50.0]
|
|
||||||
|
|
||||||
// Diameter of Mounting Pad
|
|
||||||
mount_pad = 10.0; // [5.0:.25:20.0]
|
|
||||||
|
|
||||||
// Bottom Width of Mounting Stalk
|
|
||||||
stalk_bottom = 8.0; // [5.0:.5:20.0]
|
|
||||||
|
|
||||||
// Top Width of Mounting Stalk
|
|
||||||
stalk_top = 2.0; // [1.0:.5:20.0]
|
|
||||||
|
|
||||||
// Diameter of Mounting Hole
|
|
||||||
mount_hole = 2.1; // [1.0:0.1:10.0]
|
|
||||||
|
|
||||||
module round_plate(x, y, z) {
|
|
||||||
r = thickness*0.5;
|
|
||||||
hull() {
|
|
||||||
// left back bottom
|
|
||||||
translate([r, r, r]) sphere(r);
|
|
||||||
|
|
||||||
// right back bottom
|
|
||||||
translate([x-r, r, r]) sphere(r);
|
|
||||||
|
|
||||||
// left back top
|
|
||||||
translate([r, y-r, r]) sphere(r);
|
|
||||||
|
|
||||||
// right back top
|
|
||||||
translate([x-r, y-r, r]) sphere(r);
|
|
||||||
|
|
||||||
// left front bottom
|
|
||||||
translate([r, r, z-r]) sphere(r);
|
|
||||||
|
|
||||||
// right front bottom
|
|
||||||
translate([x-r, r, z-r]) sphere(r);
|
|
||||||
|
|
||||||
// left front top
|
|
||||||
translate([r, y-r, z-r]) sphere(r);
|
|
||||||
|
|
||||||
// right front top
|
|
||||||
translate([x-r, y-r, z-r]) sphere(r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module round_l(x) {
|
|
||||||
round_plate(x, thickness, length+2*thickness);
|
|
||||||
translate([0, 0, length+thickness]) round_plate(x, barrier+thickness, thickness);
|
|
||||||
}
|
|
||||||
|
|
||||||
module stalk(offset) {
|
|
||||||
linear_extrude(height=thickness) {
|
|
||||||
polygon([[-0.5*stalk_bottom, 0], [0.5*stalk_bottom, 0], [0.5*stalk_top+offset, mount_height], [-0.5*stalk_top+offset, mount_height]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module eye(d1, d2, offset) {
|
|
||||||
difference() {
|
|
||||||
union() {
|
|
||||||
cylinder(d=d1, h=thickness);
|
|
||||||
translate([-offset, -mount_height, 0]) stalk(offset);
|
|
||||||
}
|
|
||||||
cylinder(d=d2, h=thickness);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module kabeljau() {
|
|
||||||
// Back plate
|
|
||||||
round_plate(slots*spacing, thickness+barrier, thickness);
|
|
||||||
|
|
||||||
// Mounting pads
|
|
||||||
translate([0.5*mount_pad, 0.5*thickness+barrier+mount_height]) eye(mount_pad, mount_hole, 0.5*mount_pad-spacing);
|
|
||||||
translate([slots*spacing-0.5*mount_pad, 0.5*thickness+barrier+mount_height]) eye(mount_pad, mount_hole, spacing-0.5*mount_pad);
|
|
||||||
|
|
||||||
difference() {
|
|
||||||
union() {
|
|
||||||
round_l(0.5*(spacing-width));
|
|
||||||
translate([(slots-1)*spacing+0.5*(spacing+width), 0, 0]) round_l(0.5*(spacing-width));
|
|
||||||
|
|
||||||
for (slot=[1:1:slots-1]) {
|
|
||||||
translate([(slot-1)*spacing+0.5*(spacing+width), 0, 0]) {
|
|
||||||
round_l(spacing-width);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (slot=[1:1:slots]) {
|
|
||||||
translate([(slot-0.5)*spacing, 0, thickness+0.5*length]) rotate(-90, [1, 0, 0]) cylinder(h=thickness, d=aperture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
kabeljau();
|
|
BIN
kabeljau.stl
BIN
kabeljau.stl
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
kabeljau_2.3mf
BIN
kabeljau_2.3mf
Binary file not shown.
BIN
kabeljau_2.stl
BIN
kabeljau_2.stl
Binary file not shown.
BIN
kabeljau_4.3mf
BIN
kabeljau_4.3mf
Binary file not shown.
Loading…
Reference in New Issue
Block a user