Skip to content

Commit

Permalink
Improved nets
Browse files Browse the repository at this point in the history
Better living hinges, with hints and STLs for TPU printing.
  • Loading branch information
whosawhatsis committed Apr 25, 2024
1 parent 8ec99c5 commit a4f08c1
Show file tree
Hide file tree
Showing 16 changed files with 14 additions and 16 deletions.
Binary file added Nets/STLs/cube net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/cube net.stl
Binary file not shown.
Binary file added Nets/STLs/dodecahedron net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/dodecahedron net.stl
Binary file not shown.
Binary file added Nets/STLs/icosahedron net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/icosahedron net.stl
Binary file not shown.
Binary file added Nets/STLs/octohedron net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/octohedron net.stl
Binary file not shown.
Binary file added Nets/STLs/pentagonal prism net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/pentagonal prism net.stl
Binary file not shown.
Binary file added Nets/STLs/square pyramid net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/square pyramid net.stl
Binary file not shown.
Binary file added Nets/STLs/tetrahedron net TPU.stl
Binary file not shown.
Binary file modified Nets/STLs/tetrahedron net.stl
Binary file not shown.
2 changes: 1 addition & 1 deletion Nets/platonic_net.scad
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ faces = 20; edge = 30; // icosahedron

//edge = 35; // edge length, used to determine the size.
linewidth = 0; // cut/fold line width for 2D export. Set to zero for 3D
baselayer = 0; // height of print below (outside) the hinges
baselayer = 1; // height of print below (outside) the hinges to limit back-bending. Use at least 1 unless printing with TPU.
printheight = 50; // total height to truncate the pyramidal sides
hinge = .6; // thickness of the hinges. Using a negative value will leave a gap
hingeratio = 2; // length/thickness ratio for hinges. Spreads the bend out to reduce fatigue
Expand Down
28 changes: 13 additions & 15 deletions Nets/pyramid_prism_net.scad
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@
// released under a Creative Commons CC-BY 4.0 International License
r = 20; //radius, mm
h = 30; //height
sides = 5;//number of faces on side of prism or pyramid (e.g. tetrahdron =3)
sides = 4;//number of faces on side of prism or pyramid (e.g. tetrahdron =3)
pyramid = true; //true gives a pyramid, false a prism
star = true; //true lays out net in star shape, false in linear
linewidth = 0; // cut/fold line width for 2D export. Set to zero for 3D
baselayer = 1; // height of print below (outside) the hinges
baselayer = 0; // height of print below (outside) the hinges to limit back-bending. Use at least 1 unless printing with TPU.
printheight = 500; // total height to truncate the pyramidal sides
hinge = .201; // thickness of the hinges. Using a negative value will leave a gap
hinge = .6; // thickness of the hinges. Using a negative value will leave a gap
hingeratio = 2; // length/thickness ratio for hinges. Spreads the bend out to reduce fatigue

$fs = .2;
$fa = 2;

echo(str("surface area = ", (pyramid ? 1 : 2) * sides * r * sin(180 / sides) * r * cos(180 / sides) + sides * (pyramid ? h / sin(atan(h / (r * cos(180 / sides)))) : h * 2) * r * sin(180 / sides), "mm^2"));

Expand Down Expand Up @@ -53,16 +57,10 @@ if(linewidth) difference() {
net(offset = linewidth / 2);
net(offset = -linewidth / 2);
} else {
net(offset = min(-.1, hinge));
if(hinge > 0) #linear_extrude(hinge) offset(-r * sin(180 / sides) / 3) net(offset = .001, extrude = 0);
}
%net(true);

/*for(i = [0:sides - 1]) rotate(i * 360 / sides) translate([r * cos(180 / sides), 0, 0]) rotate([0, slant_a - 180, 0]) translate([h / 2, 0, 0]) %offset(-.1) scale([h / 2, r * sin(180 / sides), 1]) {
if(pyramid) polygon([[-1, -1], [2 * slant_h / h - 1, 0], [-1, 1]]);
else square(2, center = true);
net(offset = (hinge < 0) ? hinge : min(-hinge * hingeratio, -.001));
if(hinge > 0) linear_extrude(hinge) offset(-hinge * hingeratio) {
offset(-r * sin(180 / sides) / 3) net(offset = .001, extrude = 0);
net(offset = -.001, extrude = 0);
}
}
if(!pyramid) %translate([0, 0, h]) rotate(180 / sides) circle(r = r, $fn = sides);
%rotate(180 / sides) cylinder(r = r, h = h, $fn = sides);*/
%net(true);

0 comments on commit a4f08c1

Please sign in to comment.