diff options
Diffstat (limited to 'stl.py')
-rw-r--r-- | stl.py | 25 |
1 files changed, 20 insertions, 5 deletions
@@ -1,15 +1,30 @@ import numpy as np +import struct def pull_vertices(filename): f = open(filename) - vertices = [] + vertex = [] for line in f: if not line.strip().startswith('vertex'): continue - vertices.append([float(s) for s in line.strip().split()[1:]]) + vertex.append([float(s) for s in line.strip().split()[1:]]) - return np.array(vertices) + f.close() + return np.array(vertex) -if __name__ == '__main__': - print pull_vertices('models/MiniFig.STL') +def pull_vertices_binary(filename): + f = open(filename) + + f.read(80) + triangles = struct.unpack('<I', f.read(4))[0] + + vertex = [] + for i in range(triangles): + f.read(12) + for j in range(3): + vertex.append(struct.unpack('<fff', f.read(12))) + f.read(2) + + f.close() + return np.array(vertex) |