diff --git a/tfields/mesh_3d.py b/tfields/mesh_3d.py index 4aad9571197f65ea770136a13bde7867516a034a..a37cd51a5e336445a068a62312223d6494206db6 100644 --- a/tfields/mesh_3d.py +++ b/tfields/mesh_3d.py @@ -374,13 +374,7 @@ class Mesh3D(tfields.TensorMaps): """ Saves the mesh in stl format """ - import stl - - shape = stl.Mesh(np.zeros(self.faces.shape[0], dtype=stl.Mesh.dtype)) - for i, f in enumerate(self.faces): - for j in range(3): - shape.vectors[i][j] = self[f[j], :] - shape.save(path, **kwargs) + self.triangles()._save_stl(path, **kwargs) @classmethod def _load_stl(cls, path): diff --git a/tfields/triangles_3d.py b/tfields/triangles_3d.py index f1f28d1f66ee8eb3aad074dcc13d0a050e75162e..1b7e7f64a6b93b8b5958a405350c37bd909c6e4b 100644 --- a/tfields/triangles_3d.py +++ b/tfields/triangles_3d.py @@ -123,7 +123,11 @@ class Triangles3D(tfields.TensorFields): """ Save the object to a stl file """ - self.mesh().save_stl(path, **kwargs) + import stl + + shape = stl.Mesh(np.zeros(self.ntriangles(), dtype=stl.Mesh.dtype)) + shape.vectors = self.bulk.reshape((self.ntriangles(), 3, 3)) + shape.save(path, **kwargs) @classmethod def _load_stl(cls, path):