from stl import mesh import numpy as np # Créer un cube 3D vertices = np.array([[0,0,0], [0,0,1], [1,0,0], [1,0,1], [2,0,0], [2,0,2], [3,0,0], [3,0,2], [0,1,0], [0,1,1], [1,1,0], [1,1,1], [2,1,0], [2,1,2], [3,1,0], [3,1,2], [0,2,0], [0,2,1], [1,2,0], [1,2,1], [2,2,0], [2,2,2], [3,2,0], [3,2,2], [0,3,0], [0,3,1], [1,3,0], [1,3,1], [2,3,0], [2,3,2], [3,3,0], [3,3,2]]) vertices3 = np.array([[0,0,0], [0,0,1], [1,0,0], [1,0,1], [2,0,0], [2,0,2], [0,1,0], [0,1,1], [1,1,0], [1,1,1], [2,1,0], [2,1,2], [0,2,0], [0,2,1], [1,2,0], [1,2,1], [2,2,0], [2,2,2]]) vertices4 = np.array([[0,0,0], [0,0,1], [1,0,0], [1,0,1], [2,0,0], [2,0,2], [3,0,0], [3,0,2], [0,1,0], [0,1,1], [1,1,0], [1,1,1], [2,1,0], [2,1,2], [3,1,0], [3,1,2], [0,2,0], [0,2,1], [1,2,0], [1,2,1], [2,2,0], [2,2,2], [3,2,0], [3,2,2], [0,3,0], [0,3,1], [1,3,0], [1,3,1], [2,3,0], [2,3,2], [3,3,0], [3,3,2]]) """ vertices=vertices3 lenX = 3 lenY = 3 """ vertices=vertices4 lenX = 4 lenY = 4 nb=(lenX*2-2) faces1 = np.zeros((nb, 3), dtype=int) y=0 for i in range(0,lenX*2-2,2): faces1[y] = [i,i+1 ,i+2] faces1[y+1] = [i+1 ,i+3,i+2] y=y+2 nb=lenY*2-2 faces2 = np.zeros((nb, 3), dtype=int) y=0 for i in range(0,lenX*lenY+1,lenX*2): faces2[y] = [i,i+1,i+lenX*2] faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2] y=y+2 nb=(lenX*2-2) Start3 = (lenX*2*lenY)-lenX*2 faces3 = np.zeros((nb, 3), dtype=int) y=0 for i in range(Start3,lenX*2-2+Start3,2): faces3[y] = [i,i+1 ,i+2] faces3[y+1] = [i+1,i+3 ,i+2] y=y+2 nb = lenY*2-2 Start4 = lenX*2-2 faces4 = np.zeros((nb, 3), dtype=int) y=0 for i in range(Start4,lenX*lenY+1+Start4,lenX*2): faces4[y] = [i,i+1,i+lenX*2] faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2] y=y+2 nb = 2 faces5 = np.zeros((nb,3), dtype=int) faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2] faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2] nb=lenX*lenY*2 faces6 = np.zeros((nb,3), dtype=int) y=0 for j in range(0,lenY-1): for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2): faces6[y]=[i,i+2,lenX*2+i] faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i] y=y+2 faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0) # Créez le maillage STL cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype)) for i, f in enumerate(faces): for j in range(3): cube.vectors[i][j] = vertices[f[j], :] #Sauvegardez le cube au format STL cube.save('cube.stl')