1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-11 01:04:07 +02:00
This commit is contained in:
Justin Lin
2020-03-16 07:35:48 +08:00
parent 9a4db69887
commit 885e5f0ce8

View File

@@ -7,17 +7,13 @@ module senbon_torii(rows, columns, start, width, height) {
// first torii // first torii
fst = line[0]; fst = line[0];
snd = line[1]; snd = line[1];
fa = atan2(snd[0] - fst[0], snd[1] - fst[1]);
color("LightSalmon") translate(fst)
translate(line[0]) rotate([90, 0, atan2(snd[0] - fst[0], snd[1] - fst[1])])
rotate([90, 0, fa])
linear_extrude(.1, center = true)
translate([0, .175]) translate([0, .175])
children(0); children(0);
// middle torris module middle_torii(i) {
for(i = [0:leng - 2]) {
p1 = line[i]; p1 = line[i];
p2 = line[i + 1]; p2 = line[i + 1];
md = (p1 + p2) / 2; md = (p1 + p2) / 2;
@@ -25,25 +21,12 @@ module senbon_torii(rows, columns, start, width, height) {
a1 = atan2(p2[0] - p1[0], p2[1] - p1[1]); a1 = atan2(p2[0] - p1[0], p2[1] - p1[1]);
color("LightSalmon")
translate([md[0], md[1], h]) translate([md[0], md[1], h])
rotate([90, 0, a1]) rotate([90, 0, a1])
linear_extrude(.1, center = true) translate([0, .1])
translate([0, .1])
children(0); children(0);
color("LightSalmon") // road
if(i > 0) {
p0 = line[i - 1];
a2 = atan2(p1[0] - p0[0], p1[1] - p0[1]);
translate([p1[0], p1[1], h - width * 0.233333])
rotate([90, 0, a1 + (a1 - a2) / 2])
linear_extrude(.1, center = true)
translate([0, .2])
children(0);
}
color("OliveDrab")
hull() { hull() {
translate(p1) translate(p1)
linear_extrude(h) linear_extrude(h)
@@ -52,7 +35,29 @@ module senbon_torii(rows, columns, start, width, height) {
translate(p2) translate(p2)
linear_extrude((i + 1) * height + 0.1) linear_extrude((i + 1) * height + 0.1)
square(width, center = true); square(width, center = true);
} }
}
// second torii
middle_torii(0)
children(0);
// middle torris
for(i = [1:leng - 2]) {
middle_torii(i)
children(0);
p0 = line[i - 1];
p1 = line[i];
p2 = line[i + 1];
h = i * height + 0.1;
a1 = atan2(p2[0] - p1[0], p2[1] - p1[1]);
a2 = atan2(p1[0] - p0[0], p1[1] - p0[1]);
translate([p1[0], p1[1], h - width * 0.233333])
rotate([90, 0, a1 + (a1 - a2) / 2])
translate([0, .2])
children(0);
} }
// top // top
@@ -60,26 +65,21 @@ module senbon_torii(rows, columns, start, width, height) {
pre_lst = line[leng - 2]; pre_lst = line[leng - 2];
la = atan2(lst[0] - pre_lst[0], lst[1] - pre_lst[1]); la = atan2(lst[0] - pre_lst[0], lst[1] - pre_lst[1]);
color("Gold")
translate([lst[0], lst[1], (leng - 1) * height]) translate([lst[0], lst[1], (leng - 1) * height])
rotate([90, 0, la]) rotate([90, 0, la])
linear_extrude(.3, center = true)
translate([0, .175]) translate([0, .175])
children(1); children(1);
} }
module torii_symbol() { module torii_symbol() {
difference() { linear_extrude(.1, center = true)
translate([-0.025, 0.025]) translate([-0.025, 0.025])
text("⛩", font = "Segoe UI Emoji", size = 0.5 * 0.7, halign = "center"); text("⛩", font = "Segoe UI Emoji", size = 0.5 * 0.7, halign = "center");
*translate([0, .285])
square([.275, .1], center = true);
}
} }
module top_symbol() { module top_symbol() {
translate([-0.005, .05]) translate([-0.005, .05])
linear_extrude(.3, center = true)
scale([0.9, 1.5]) scale([0.9, 1.5])
text("🏔", font = "Segoe UI Emoji", size = 0.45 * 0.7, halign = "center"); text("🏔", font = "Segoe UI Emoji", size = 0.45 * 0.7, halign = "center");
} }