Polyhedron openscad
![polyhedron openscad polyhedron openscad](https://storage.googleapis.com/stlfinder/148/openscad-icosahedron-7Uy7IMNj_200.jpg)
Experience as a programmer tells me that this means that modularization is required, and I made very basic atomic functions to generate pieces of objects to be assembled to complete faces-arrays and implemented the different objects using these atomic functions. So I wrote my own data-generating functions for different objects, and soon found myself copying and modifying my own code. While calculating the positions of the points is comparably simple in most cases, finding the proper indexes for the faces parameter can be very annoying. So without any functions to generate the amounts of data that polyhedron() needs to make objects with more complexity than a pyramid or an irregular cuboid, polyhedron() is havoc. the triangles or (with OpenSCAD versions 2014.03 and later) polygons, that define the surface of an object are hardcoded manually and in many cases a lot of instances of the resulting shape are put together via union() to build one more complex object. Most designs or modules, that use polyhedron(), do this in a rather static manner. The module polyhedron ist the most powerful in OpenSCAD and thus the most difficult to use, too. If you don’t know about polyhedron(), look it up now. I thought it would be nice to have more influence on the shape of objects to be designed, and I found a way to accomplish this in the OpenSCAD module polyhedron(). There is, for instance, no way to tell a cube to have a narrower top or a cylinder to bend 90°. Most modules, that create basic objects, like cylinder() or cube(), just create them and any further modification can only be done by primitive operations like cutting away parts with intersection() or difference().