2024-03-07 02:46:40 +00:00
|
|
|
include <Round-Anything/polyround.scad>
|
|
|
|
|
2024-03-07 02:58:29 +00:00
|
|
|
$fn = $preview ? 30 : 60;
|
|
|
|
|
2024-03-07 02:46:40 +00:00
|
|
|
module jar() {
|
|
|
|
cylinder(100, 40, 40);
|
|
|
|
}
|
|
|
|
|
|
|
|
module cup() {
|
|
|
|
cylinder(155, 31, 42);
|
|
|
|
}
|
|
|
|
|
|
|
|
module arm() {
|
|
|
|
translate([-40, -200, -200])
|
|
|
|
cube([80, 400, 200]);
|
|
|
|
}
|
|
|
|
|
2024-03-07 02:58:29 +00:00
|
|
|
module base() {
|
2024-03-07 02:46:40 +00:00
|
|
|
translate([0, 0, -6])
|
|
|
|
linear_extrude(15) {
|
|
|
|
polygon(polyRound([
|
2024-03-07 02:58:29 +00:00
|
|
|
[-55, -40, 10],
|
|
|
|
[ 55, -40, 10],
|
|
|
|
[ 55, 40, 10],
|
|
|
|
[-55, 40, 10],
|
2024-03-07 02:46:40 +00:00
|
|
|
]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-03-07 02:58:29 +00:00
|
|
|
module grip(length) {
|
|
|
|
translate([40, 0, 0])
|
|
|
|
rotate([-90, 0, 0])
|
|
|
|
linear_extrude(15, center=true)
|
|
|
|
polygon(polyRound([
|
|
|
|
[ 0, 0, 0],
|
|
|
|
[10, 0, 0],
|
|
|
|
[10, length, 10],
|
|
|
|
[ 0, length, 0],
|
|
|
|
]));
|
|
|
|
}
|
|
|
|
|
2024-03-07 02:46:40 +00:00
|
|
|
translate([0, 0, 6]) {
|
|
|
|
difference() {
|
2024-03-07 02:58:29 +00:00
|
|
|
base();
|
2024-03-07 02:46:40 +00:00
|
|
|
cylinder(100, 35, 35);
|
|
|
|
}
|
2024-03-07 02:58:29 +00:00
|
|
|
|
|
|
|
grip(30);
|
|
|
|
|
|
|
|
rotate([0, 0, 180])
|
|
|
|
grip(60);
|
|
|
|
|
|
|
|
if($preview)
|
|
|
|
color("#999999") {
|
|
|
|
arm();
|
|
|
|
}
|
2024-03-07 02:46:40 +00:00
|
|
|
|
2024-03-07 02:58:29 +00:00
|
|
|
if($preview)
|
2024-03-07 02:46:40 +00:00
|
|
|
color("#7777ff") {
|
|
|
|
*jar();
|
|
|
|
cup();
|
|
|
|
}
|
|
|
|
}
|