This module provides bindings for the ADMesh library. It lets you manipulate 3D models in binary or ASCII STL format and partially repair them if necessary.
There are wheels available for Linux and macOS X. All you need to do is:
pip install admeshIf you have a platform not supported by the above, you'll need to install the C ADMesh library.
This release is designed for ADMesh 0.98.x. Follow the instructions there. Then you can install this as usual with one of the following:
./setup.py install python3 setup.py install # for Python 3 pip install admesh # install directly from PyPIIn case your ADMesh library is located in non-standard location, you'll have to tell the compiler and linker where to look:
LDFLAGS='-L/path/to/library' CFLAGS='-I/path/to/header' ./setup.py installUse the Stl class provided.
import admesh # load an STL file stl = admesh.Stl('file.stl') # observe the available methods help(stl) # read the stats stl.stats # see how many facets are there len(stl) # walk the facets for facet in stl: # get the normal facet['normal'] # walk the vertices for vertex in facet['vertex']: # read the coordinates vertex['x'] vertex['y'] vertex['z'] # add another set of facets # every facet is a tuple (vertices, normal) or a dict stl.add_facets([ (((0, 0, 0), (0, 1, 0), (0, 0, 1)), (1, 0, 0)), {'vertex': [{'x': 0, 'y': 0, 'z': 0}, {'x': 1, 'y': 0, 'z': 0}, {'x': 0, 'y': 0, 'z': 1}], 'normal': {'x': 0, 'y': 1, 'z': 0}}, ])Note that all C ADMesh functions start with stl_ prefix and the Python methods of this module do not. Also note that not all C ADMesh functions are provided, because some would require more complicated approach and are not considered worthy. In case you are missing some functions, create new issue.