mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-14 10:44:48 +02:00
refactored
This commit is contained in:
@@ -24,29 +24,43 @@ module hexagons(radius, spacing, levels) {
|
|||||||
circle(r_hexagon, $fn = 6);
|
circle(r_hexagon, $fn = 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
function offset_xs(n) =
|
module line_hexagons(hex_datum) {
|
||||||
[for(i = [0:n - 1]) i * offset_step + center_offset];
|
tx = hex_datum[0][0];
|
||||||
|
ty = hex_datum[0][1];
|
||||||
module line_hexagons(n) {
|
n = hex_datum[1];
|
||||||
for(x = offset_xs(n)) {
|
|
||||||
translate([x, 0, 0])
|
offset_xs = [for(i = [0:n - 1]) i * offset_step + center_offset];
|
||||||
|
for(x = offset_xs) {
|
||||||
|
p = [x + tx, ty, 0];
|
||||||
|
translate(p)
|
||||||
hexagon();
|
hexagon();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
line_hexagons(beginning_n);
|
upper_hex_data = levels > 1 ? [
|
||||||
|
for(i = [1:beginning_n - levels])
|
||||||
if(levels > 1) {
|
let(
|
||||||
for(i = [1:beginning_n - levels]) {
|
x = offset_x * i,
|
||||||
x = offset_x * i;
|
y = offset_y * i,
|
||||||
y = offset_y * i;
|
n = beginning_n - i
|
||||||
n = beginning_n - i;
|
) [[x, y], n]
|
||||||
|
] : [];
|
||||||
|
|
||||||
translate([x, y, 0])
|
lower_hex_data = levels > 1 ? [
|
||||||
line_hexagons(n);
|
for(hex_datum = upper_hex_data)
|
||||||
|
[[hex_datum[0][0], -hex_datum[0][1]], hex_datum[1]]
|
||||||
|
] : [];
|
||||||
|
|
||||||
translate([x, -y, 0])
|
total_hex_data = concat(
|
||||||
line_hexagons(n);
|
[
|
||||||
}
|
[[0, 0], beginning_n] // first line
|
||||||
|
],
|
||||||
|
upper_hex_data,
|
||||||
|
lower_hex_data
|
||||||
|
);
|
||||||
|
|
||||||
|
for(hex_datum = total_hex_data) {
|
||||||
|
line_hexagons(hex_datum);
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user