mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-04-16 12:03:32 +02:00
add melted_clock
This commit is contained in:
parent
1ba1ceddc7
commit
dace753dde
69
examples/melted_clock.scad
Normal file
69
examples/melted_clock.scad
Normal file
@ -0,0 +1,69 @@
|
||||
include <line2d.scad>;
|
||||
include <hollow_out.scad>;
|
||||
include <bend_extrude.scad>;
|
||||
|
||||
minute = 18;
|
||||
hour = 9;
|
||||
r = 30;
|
||||
thickness = 2;
|
||||
angle = 90;
|
||||
frags = 24;
|
||||
xscale = 0.75;
|
||||
|
||||
module clock(r, thickness, hour, minute) {
|
||||
hollow_out(thickness)
|
||||
circle(r);
|
||||
|
||||
circle(thickness);
|
||||
|
||||
rotate(-30 * hour - 0.5 * minute)
|
||||
line2d([0, 0], [0, r - thickness * 6], thickness, p1Style = "CAP_ROUND", p2Style = "CAP_ROUND", $fn = 4);
|
||||
|
||||
rotate(-6 * minute)
|
||||
line2d([0, 0], [0, r - thickness * 3], thickness * 0.75, p1Style = "CAP_ROUND", p2Style = "CAP_ROUND", $fn = 4);
|
||||
|
||||
for(i = [0: 11]) {
|
||||
rotate(i * 30) translate([0, r - thickness * 4, 0])
|
||||
square([thickness / 2, thickness * 2]);
|
||||
}
|
||||
}
|
||||
|
||||
module melt(r, thickness, angle, frags, xscale = 1) {
|
||||
double_r = r * 2;
|
||||
half_r = r * 0.5;
|
||||
rz = r * 180 / (angle * 3.14159);
|
||||
|
||||
mirror([0, 1, 0])
|
||||
scale([xscale, 1, 1])
|
||||
translate([0, r, rz])
|
||||
rotate([0, 90, -90])
|
||||
bend_extrude([r, double_r], thickness, angle, frags)
|
||||
translate([0, r, 0])
|
||||
children();
|
||||
|
||||
linear_extrude(thickness)
|
||||
intersection() {
|
||||
translate([-half_r, 0, 0])
|
||||
square([r, double_r], center = true);
|
||||
children();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module melted_clock() {
|
||||
|
||||
$fn = 48;
|
||||
sa = r * angle / (r + thickness);
|
||||
rotate([0, 180, 0])
|
||||
mirror([1, 0, 0]) {
|
||||
color("Gold")
|
||||
translate([0, 0, thickness])
|
||||
melt(r, thickness, angle, frags, xscale) circle(r);
|
||||
|
||||
color("Gainsboro") melt(r, thickness, sa, frags, xscale)
|
||||
clock(r - thickness * 2, thickness, hour, minute);
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
melted_clock();
|
Loading…
x
Reference in New Issue
Block a user