From 26b7ad6955d8e5fd7d97a6d9c59435f752cfd5c8 Mon Sep 17 00:00:00 2001 From: Artur Kerge Date: Fri, 28 Jul 2023 18:49:13 +0300 Subject: [PATCH] Add clock and it's components, paths image --- 24hWallClock.png | Bin 0 -> 16438 bytes clock.scad | 30 ++++++++++++++++++++++++++++++ part_clock_outline.scad | 8 ++++++++ part_hand_hour.scad | 20 ++++++++++++++++++++ part_hand_min.scad | 21 +++++++++++++++++++++ part_hour_hexagons.scad | 11 +++++++++++ part_min_lines.scad | 22 ++++++++++++++++++++++ part_moon.scad | 15 +++++++++++++++ part_sun.scad | 20 ++++++++++++++++++++ 9 files changed, 147 insertions(+) create mode 100644 24hWallClock.png create mode 100644 clock.scad create mode 100644 part_clock_outline.scad create mode 100644 part_hand_hour.scad create mode 100644 part_hand_min.scad create mode 100644 part_hour_hexagons.scad create mode 100644 part_min_lines.scad create mode 100644 part_moon.scad create mode 100644 part_sun.scad diff --git a/24hWallClock.png b/24hWallClock.png new file mode 100644 index 0000000000000000000000000000000000000000..4f08a5cc399e82ccc9c16e00cb47ea9928a1bcf5 GIT binary patch literal 16438 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

( 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 literal 0 HcmV?d00001 diff --git a/clock.scad b/clock.scad new file mode 100644 index 0000000..1deef7a --- /dev/null +++ b/clock.scad @@ -0,0 +1,30 @@ +use ; +use ; +use ; +use ; +use ; + +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(); \ No newline at end of file diff --git a/part_clock_outline.scad b/part_clock_outline.scad new file mode 100644 index 0000000..526f2f5 --- /dev/null +++ b/part_clock_outline.scad @@ -0,0 +1,8 @@ +module clock_circle(D, bool) { + difference(){ + color("burlywood") + circle(D); + if (bool) circle(d=0.7); + } +} +//clock_circle(12, true); \ No newline at end of file diff --git a/part_hand_hour.scad b/part_hand_hour.scad new file mode 100644 index 0000000..3d695ce --- /dev/null +++ b/part_hand_hour.scad @@ -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(); \ No newline at end of file diff --git a/part_hand_min.scad b/part_hand_min.scad new file mode 100644 index 0000000..90b385f --- /dev/null +++ b/part_hand_min.scad @@ -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(); \ No newline at end of file diff --git a/part_hour_hexagons.scad b/part_hour_hexagons.scad new file mode 100644 index 0000000..6068e1c --- /dev/null +++ b/part_hour_hexagons.scad @@ -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); \ No newline at end of file diff --git a/part_min_lines.scad b/part_min_lines.scad new file mode 100644 index 0000000..ba84730 --- /dev/null +++ b/part_min_lines.scad @@ -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); \ No newline at end of file diff --git a/part_moon.scad b/part_moon.scad new file mode 100644 index 0000000..8e92ccd --- /dev/null +++ b/part_moon.scad @@ -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); \ No newline at end of file diff --git a/part_sun.scad b/part_sun.scad new file mode 100644 index 0000000..a164614 --- /dev/null +++ b/part_sun.scad @@ -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); \ No newline at end of file