mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-16 11:44:50 +02:00
add voronoi_holder
This commit is contained in:
42
examples/voronoi/voronoi_holder.scad
Normal file
42
examples/voronoi/voronoi_holder.scad
Normal file
@@ -0,0 +1,42 @@
|
||||
use <bend_extrude.scad>;
|
||||
use <arc.scad>;
|
||||
use <voronoi/vrn2_cells_space.scad>;
|
||||
|
||||
size = [200, 72];
|
||||
grid_w = 8; // grid_w must divide size equally.
|
||||
thickness = 2;
|
||||
spacing = 1.5;
|
||||
frags = 24;
|
||||
|
||||
module voronoi_holder() {
|
||||
half_spacing = spacing / 2;
|
||||
cells = vrn2_cells_space(
|
||||
size = size,
|
||||
grid_w = grid_w
|
||||
);
|
||||
|
||||
r = size[0] / (2 * PI) - thickness * 1.5;
|
||||
|
||||
difference() {
|
||||
bend_extrude(size = size, thickness = thickness * 3, angle = 360, frags = frags)
|
||||
render()
|
||||
difference() {
|
||||
square(size);
|
||||
render()
|
||||
for(cell = cells) {
|
||||
offset(-half_spacing)
|
||||
polygon(cell[1]);
|
||||
}
|
||||
}
|
||||
linear_extrude(size[1] - thickness)
|
||||
arc(radius = r, angle = 360, width = thickness, $fn = frags);
|
||||
}
|
||||
|
||||
linear_extrude(thickness)
|
||||
circle(r + thickness * 1.75, $fn = frags);
|
||||
|
||||
linear_extrude(thickness * 2)
|
||||
circle(r - 0.25 * thickness, $fn = frags);
|
||||
}
|
||||
|
||||
voronoi_holder();
|
Reference in New Issue
Block a user