#!python3

import numpy
import stl
from stl import mesh
import sys


def parse_stl(stl_file):

    # Load the STL file
    mesh_data = mesh.Mesh.from_file(stl_file)

    # Extract vertices and faces
    vertices = mesh_data.vectors.reshape((-1, 3))
    faces = numpy.arange(len(vertices)).reshape((-1, 3))

    return vertices, faces

v,f = parse_stl("zoe4.stl")
numpy.set_printoptions(threshold=sys.maxsize)

print( "pointlist=")
print( numpy.array2string( v, precision=2, separator=','))
print(";")

print( "triangleslist=")
print( numpy.array2string( f, precision=2, separator=','))
print(";")

#print("polyhedron( points = pointlist, triangles = triangleslist);")

oscad="""
module hullhedron( koord_list, area_list){
  for( an_area=area_list) {
    hull(){
      for( a_coordinate_index=an_area) {
      translate(koord_list[a_coordinate_index]) cube(1);
      }
    }
  }
}

hullhedron( pointlist, triangleslist);
"""

print(oscad)
