
openscad-polyhedra
thingiverse
This is a comprehensive OpenSCAD library designed to be integrated into other projects. I utilized MeshMixer to generate supports for several polyhedra, printing them as wireframe shapes. The arrays and utility functions included here can be used to place modules coincident with the vertices, edges, and faces of Platonic and Archimedean solids. All polyhedra are centered at the origin and have an edge length of 1. Included polyhedra: - Tetrahedron - Octahedron - Hexahedron - Icosahedron - Dodecahedron - Cubeoctahedron - Truncated Tetrahedron - Snub Cube - Rhombicuboctahedron - Truncated Hexahedron - Truncated Octahedron - Icosidodecahedron - Snub Dodecahedron - Rhombicosidodecahedron - Truncated Cuboctahedron - Truncated Icosahedron - Truncated Dodecahedron - Truncated Icosidodecahedron Each shape includes an array of vertices, edges, adjacent vertices, and faces. Archimedean solids also include separate arrays of faces that are of the same polygon shape. Example: - Snub Dodecahedron Vertices - An array of 3-vectors - Snub Dodecahedron Edges - An array of 2-tuples containing indexes into the vertices array, one tuple for each edge. - Snub Dodecahedron Adjacent Vertices - An array of arrays, each containing indexes into the vertex array. For example, Snub Dodecahedron Adjacent Vertices [3] is an array containing the indexes of vertices that are connected to Snub Dodecahedron Vertices [3] by an edge - Snub Dodecahedron Triangle Faces and Snub Dodecahedron Pentagon Faces contain arrays with indices in the vertex array for each triangular and pentagonal face, respectively - Snub Dodecahedron Faces contains all faces Usage: ``` // Add polyhedra.scad to your project and include it include <polyhedra.scad>; // To arrange modules at vertices for (i = [0 : len(Snub Dodecahedron Vertices) - 1]) orient_vertex( Snub Dodecahedron Vertices[i], Snub Dodecahedron Vertices[Snub Dodecahedron Adjacent Vertices[i][0]] ) // Your vertical module centered at the origin here. For example: sphere(r = 0.2, $fn = 64); // To arrange modules along edges for (i = [0 : len(Snub Dodecahedron Edges) - 1]) orient_edge( Snub Dodecahedron Vertices[Snub Dodecahedron Edges[i][0]], Snub Dodecahedron Vertices[Snub Dodecahedron Edges[i][1]] ) // Your vertical module centered at the origin here. For example: cylinder(height = 1, r = 0.1, center = true, $fn = 32); // To arrange modules on faces for (i = [0 : len(Snub Dodecahedron Faces) - 1]) orient_face( map_verts(Snub Dodecahedron Vertices, Snub Dodecahedron Faces[i]) ) // Your module on the x-y plane here, centered at the origin. For example: rotate(180 / len(Snub Dodecahedron Faces[i]) - 90) cylinder(r = 0.3, h = 0.02, $fn = len(Snub Dodecahedron Faces[i])); // To construct a solid polyhedron( points = Snub Dodecahedron Vertices, faces = Snub Dodecahedron Faces ); Fork it on GitHub: https://github.com/benjamin-edward-morgan/openscad-polyhedra
With this file you will be able to print openscad-polyhedra with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on openscad-polyhedra.