Add clock and it's components, paths image
This commit is contained in:
parent
ce9fe3678d
commit
26b7ad6955
BIN
24hWallClock.png
Normal file
BIN
24hWallClock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
30
clock.scad
Normal file
30
clock.scad
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
use <part_sun.scad>;
|
||||||
|
use <part_moon.scad>;
|
||||||
|
use <part_clock_outline.scad>;
|
||||||
|
use <part_min_lines.scad>;
|
||||||
|
use <part_hour_hexagons.scad>;
|
||||||
|
|
||||||
|
D=16; // dial size in cm
|
||||||
|
$fn=180;
|
||||||
|
|
||||||
|
module face() {
|
||||||
|
difference(){
|
||||||
|
clock_circle(D);
|
||||||
|
union() {
|
||||||
|
translate([0,-D/3]) color("red") sun(D/18);
|
||||||
|
translate([0.5,D/3]) color("white") moon(D/7);
|
||||||
|
for(spot=[15:15:360]){
|
||||||
|
translate([sin(spot)*(D/6*5),cos(spot)*(D/6*5),0]) // position control with radius multiplier
|
||||||
|
color("black")
|
||||||
|
rotate([0,0,180]) // sets 12 on top by rotating the dial
|
||||||
|
text(str(spot/15), size = D/10, halign = "center", valign = "center", font = "Isonorm:style=Regular");
|
||||||
|
}
|
||||||
|
// Hour dots (dial, radius depth)
|
||||||
|
hour_hexagons(D,4);
|
||||||
|
// Minute lines
|
||||||
|
min_lines(D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
face();
|
8
part_clock_outline.scad
Normal file
8
part_clock_outline.scad
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
module clock_circle(D, bool) {
|
||||||
|
difference(){
|
||||||
|
color("burlywood")
|
||||||
|
circle(D);
|
||||||
|
if (bool) circle(d=0.7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//clock_circle(12, true);
|
20
part_hand_hour.scad
Normal file
20
part_hand_hour.scad
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
$fn=24;
|
||||||
|
width=1;
|
||||||
|
length=11;
|
||||||
|
hole=0.7;
|
||||||
|
module hand_h() {
|
||||||
|
rotate([0,0,240])
|
||||||
|
color("darkgray")
|
||||||
|
difference(){
|
||||||
|
union(){
|
||||||
|
translate([-width/2,0,0])
|
||||||
|
square([width,length]);
|
||||||
|
circle(d=width*1.2);
|
||||||
|
translate([-width/2,-length/6,0])
|
||||||
|
square([width,length/7]);
|
||||||
|
}
|
||||||
|
circle(d=hole);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hand_h();
|
21
part_hand_min.scad
Normal file
21
part_hand_min.scad
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
$fn=24;
|
||||||
|
width=0.8;
|
||||||
|
length=13;
|
||||||
|
hole=0.7;
|
||||||
|
|
||||||
|
module hand_min() {
|
||||||
|
rotate([0,0,130])
|
||||||
|
color("gray")
|
||||||
|
difference(){
|
||||||
|
union(){
|
||||||
|
translate([-width/2,0,0])
|
||||||
|
square([width,length]);
|
||||||
|
circle(d=1);
|
||||||
|
translate([-width/2,-length/6,0])
|
||||||
|
square([width,length/7]);
|
||||||
|
}
|
||||||
|
circle(d=hole);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hand_min();
|
11
part_hour_hexagons.scad
Normal file
11
part_hour_hexagons.scad
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
module hour_hexagons(D,spacing) {
|
||||||
|
for(dot=[0:15:360]){
|
||||||
|
$fn=6;
|
||||||
|
translate([sin(dot)*(D/6*spacing),cos(dot)*(D/6*spacing),0])
|
||||||
|
color("black")
|
||||||
|
rotate([0,0,30-dot])
|
||||||
|
circle(D/24);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hour_hexagons(16,4.5);
|
22
part_min_lines.scad
Normal file
22
part_min_lines.scad
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
module min_lines(D) {
|
||||||
|
divisor = 60;
|
||||||
|
len=D/20;
|
||||||
|
Dist=D-len;
|
||||||
|
for(dot=[0:6:360]){
|
||||||
|
translate([sin(dot)*Dist,cos(dot)*Dist,0])
|
||||||
|
color("black")
|
||||||
|
rotate([0,0,-dot]) // negative z rotates towards outer circle
|
||||||
|
if (dot % 90 == 0){
|
||||||
|
divisor = 30;
|
||||||
|
translate([0,-0.3,0])
|
||||||
|
square([D/divisor,D/divisor*3], center=false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
divisor = 60;
|
||||||
|
square([D/divisor,D/divisor*3], center=false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
min_lines(16);
|
15
part_moon.scad
Normal file
15
part_moon.scad
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
module moon(size){
|
||||||
|
difference(){
|
||||||
|
circle(d=size,$fn=360);
|
||||||
|
translate([size/3,0,0])
|
||||||
|
circle(d=size,$fn=360);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
color("blue") moon(5);
|
||||||
|
|
||||||
|
translate([-20,0,0])
|
||||||
|
color("red") moon(1);
|
||||||
|
|
||||||
|
translate([30,0,0])
|
||||||
|
color("yellow") moon(10);
|
20
part_sun.scad
Normal file
20
part_sun.scad
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
$fn=24;
|
||||||
|
//size=5;
|
||||||
|
module sun(size){
|
||||||
|
color("blue");
|
||||||
|
circle(size);
|
||||||
|
for(spot=[0:30:360]){
|
||||||
|
translate([sin(spot)*(size*1.5),cos(spot)*(size*1.5),0]) // position control with radius multiplier
|
||||||
|
rotate([0,0,-spot])
|
||||||
|
square([size/5, size/2],center=true);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
color("blue") sun(5);
|
||||||
|
|
||||||
|
translate([-20,0,0])
|
||||||
|
color("red") sun(1);
|
||||||
|
|
||||||
|
translate([30,0,0])
|
||||||
|
color("yello") sun(10);
|
Loading…
Reference in New Issue
Block a user