mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-13 10:14:41 +02:00
refactor
This commit is contained in:
@@ -1,40 +1,39 @@
|
|||||||
include <hull_polyline3d.scad>;
|
include <hull_polyline3d.scad>;
|
||||||
|
|
||||||
width = 100;
|
side_leng = 100;
|
||||||
min_width = 5;
|
min_len = 5;
|
||||||
thickness = 2.5;
|
thickness = 2.5;
|
||||||
$fn = 4;
|
|
||||||
|
|
||||||
sierpinski_pyramid(width, min_width, thickness);
|
sierpinski_pyramid(side_leng, min_len, thickness, $fn = 4);
|
||||||
|
|
||||||
module sierpinski_pyramid(width, min_width, thickness) {
|
module sierpinski_pyramid(side_leng, min_len, thickness) {
|
||||||
pyramid_frame(width, thickness);
|
pyramid_frame(side_leng, thickness);
|
||||||
if(width > min_width){
|
if(side_leng > min_len){
|
||||||
half_w = width / 2;
|
half_len = side_leng / 2;
|
||||||
h = half_w * 0.707107;
|
h = half_len * 0.707107;
|
||||||
pt = [width / 4, width / 4, 0];
|
pt = [side_leng / 4, side_leng / 4, 0];
|
||||||
for(i=[0:3]) {
|
for(i=[0:3]) {
|
||||||
rotate([0, 0, i * 90])
|
rotate([0, 0, i * 90])
|
||||||
translate(pt)
|
translate(pt)
|
||||||
sierpinski_pyramid(half_w, min_width, thickness);
|
sierpinski_pyramid(half_len, min_len, thickness);
|
||||||
}
|
}
|
||||||
translate([0, 0, h])
|
translate([0, 0, h])
|
||||||
sierpinski_pyramid(half_w, min_width, thickness);
|
sierpinski_pyramid(half_len, min_len, thickness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module pyramid_frame(width, thickness) {
|
module pyramid_frame(side_leng, thickness) {
|
||||||
half_w = width / 2;
|
half_len = side_leng / 2;
|
||||||
h = half_w * 1.414214;
|
h = half_len * 1.414214;
|
||||||
|
|
||||||
tri_pts = [[0, 0, h], [half_w, half_w, 0], [half_w, -half_w, 0], [0, 0, h]];
|
tri_pts = [[0, 0, h], [half_len, half_len, 0], [half_len, -half_len, 0], [0, 0, h]];
|
||||||
line_pts = [[half_w, half_w, 0], [-half_w, half_w, 0]];
|
line_pts = [[half_len, half_len, 0], [-half_len, half_len, 0]];
|
||||||
|
|
||||||
hull_polyline3d(tri_pts, thickness = thickness);
|
hull_polyline3d(tri_pts, thickness);
|
||||||
mirror([1, 0, 0])
|
mirror([1, 0, 0])
|
||||||
hull_polyline3d(tri_pts, thickness = thickness);
|
hull_polyline3d(tri_pts, thickness);
|
||||||
|
|
||||||
hull_polyline3d(line_pts, thickness = thickness);
|
hull_polyline3d(line_pts, thickness);
|
||||||
mirror([0, 1, 0])
|
mirror([0, 1, 0])
|
||||||
hull_polyline3d(line_pts, thickness = thickness);
|
hull_polyline3d(line_pts, thickness);
|
||||||
}
|
}
|
Reference in New Issue
Block a user