Recreate with OpenSCAD
This commit is contained in:
parent
b4d6312877
commit
0515c30253
|
@ -1 +0,0 @@
|
||||||
*.FCBak
|
|
Binary file not shown.
|
@ -0,0 +1,124 @@
|
||||||
|
overall_cylinder_diam = 41;
|
||||||
|
chamber_to_center = 6.96;
|
||||||
|
chamber_diam = 11.45;
|
||||||
|
|
||||||
|
bottom_height = 3;
|
||||||
|
|
||||||
|
top_height = 20;
|
||||||
|
|
||||||
|
opening_sep = 0.1;
|
||||||
|
|
||||||
|
border = 1;
|
||||||
|
|
||||||
|
funnel_size = 1;
|
||||||
|
|
||||||
|
module _end_of_customizer() {}
|
||||||
|
|
||||||
|
$fn = $preview?30:80;
|
||||||
|
|
||||||
|
module overall_cylinder() {
|
||||||
|
translate([0, 0, -20])
|
||||||
|
difference() {
|
||||||
|
cylinder(d = overall_cylinder_diam, h = 20);
|
||||||
|
|
||||||
|
for(i = [0:5]) {
|
||||||
|
rotate([0, 0, i/6*360])
|
||||||
|
translate([chamber_to_center + chamber_diam/2, 0, -1])
|
||||||
|
cylinder(d = chamber_diam, h = 22);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*if($preview)
|
||||||
|
color("#777")
|
||||||
|
overall_cylinder();
|
||||||
|
|
||||||
|
module bottom() {
|
||||||
|
for(i = [0:5]) {
|
||||||
|
rotate([0, 0, i / 6 * 360])
|
||||||
|
bottom_part();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
center_to_bottom_opening_center = chamber_to_center + chamber_diam / 2;
|
||||||
|
bottom_opening_diam = center_to_bottom_opening_center * sin(360 / 12) - opening_sep;
|
||||||
|
|
||||||
|
module bottom_part() {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
rotate([0, 0, 360/12])
|
||||||
|
linear_extrude(bottom_height)
|
||||||
|
polygon([
|
||||||
|
[0, 0],
|
||||||
|
[overall_cylinder_diam / 2 * cos(360 / 12), overall_cylinder_diam / 2 * sin(360 / 12)],
|
||||||
|
[overall_cylinder_diam / 2 * cos(360 / 12), -overall_cylinder_diam / 2 * sin(360 / 12)],
|
||||||
|
]);
|
||||||
|
|
||||||
|
translate([center_to_bottom_opening_center, 0, -funnel_size])
|
||||||
|
cylinder(
|
||||||
|
d1 = bottom_opening_diam,
|
||||||
|
d2 = bottom_opening_diam + funnel_size,
|
||||||
|
h = funnel_size
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([center_to_bottom_opening_center, 0, -1 - funnel_size])
|
||||||
|
cylinder(d = bottom_opening_diam, h = bottom_height + 2 + funnel_size);
|
||||||
|
|
||||||
|
rotate([0, 0, 360/6])
|
||||||
|
translate([center_to_bottom_opening_center, 0, -1 - funnel_size])
|
||||||
|
cylinder(d = bottom_opening_diam, h = bottom_height + 2 + funnel_size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
color("#dd08")
|
||||||
|
*bottom();
|
||||||
|
|
||||||
|
module top() {
|
||||||
|
for(i = [0:5]) {
|
||||||
|
rotate([0, 0, i / 6 * 360])
|
||||||
|
top_part();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module top_part() {
|
||||||
|
difference() {
|
||||||
|
linear_extrude(top_height)
|
||||||
|
polygon([
|
||||||
|
[0, 0],
|
||||||
|
[overall_cylinder_diam / 2 * cos(360 / 12), overall_cylinder_diam / 2 * sin(360 / 12)],
|
||||||
|
[overall_cylinder_diam / 2 * cos(360 / 12), -overall_cylinder_diam / 2 * sin(360 / 12)],
|
||||||
|
]);
|
||||||
|
|
||||||
|
top_part_hollow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module top_part_hollow() {
|
||||||
|
adjusted_radius = overall_cylinder_diam / 2 - border;
|
||||||
|
|
||||||
|
hull() {
|
||||||
|
translate([center_to_bottom_opening_center, 0, 0])
|
||||||
|
cylinder(d = bottom_opening_diam, h = 0.1);
|
||||||
|
|
||||||
|
translate([0, 0, top_height - 0.1 - border])
|
||||||
|
linear_extrude(0.1)
|
||||||
|
polygon([
|
||||||
|
[border, 0],
|
||||||
|
[adjusted_radius * cos(360 / 12), adjusted_radius * sin(360 / 12) - border / 2],
|
||||||
|
[adjusted_radius * cos(360 / 12), -adjusted_radius * sin(360 / 12) + border / 2],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
color("#4d48")
|
||||||
|
translate([0, 0, bottom_height])
|
||||||
|
top();
|
||||||
|
|
||||||
|
*if($preview)
|
||||||
|
color("#f008")
|
||||||
|
for(i = [0:5]) {
|
||||||
|
rotate([0, 0, i/6*360 + 360 / 12])
|
||||||
|
translate([center_to_bottom_opening_center, 0, 01])
|
||||||
|
cylinder(d = bottom_opening_diam, h = bottom_height + 2);
|
||||||
|
}
|
Loading…
Reference in New Issue