====== 12.01.2017 ====== Heute, wie auch in der letzten Woche beschäftigten wir uns weiter mit der Optimierung der Triangulierung der Boxen. Statt wie anfänglich die Flächen in drei Dreiecke zu teilen, änderten wir den Code in der letzten Woche so, dass wir nun lediglich die Eckpunkte miteinander verbinden und somit zwei gleich große Dreiecke entstehen. Außerdem werden nun die Wände mit rechten Winkeln generiert und nicht wie zuvor mit abgeschnittenen Ecken. Heute haben wir im Besonderen mit dem stl-Format beschäftigt, das nötig ist, damit der 3d-Drucker unser Modell drucken kann. Wir versuchten unseren Code dahingehend anzupassen. Im Folgenden sind die geänderten Codestellen zu sehen. Der Code funktioniert noch nicht. import numpy as np import stl from stl import mesh mesh = stl.mesh.Mesh def box_in_dreiecke(mybox): e = mybox.pos.x + 1/2 * mybox.size.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z a = mybox.pos.x + 1/2 * mybox.size.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z b = mybox.pos.x + 1/2 * mybox.size.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z c = mybox.pos.x - 1/2 * mybox.size.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z h = mybox.pos.x - 1/2 * mybox.size.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z d = mybox.pos.x - 1/2 * mybox.size.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z f = mybox.pos.x + 1/2 * mybox.size.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z g = mybox.pos.x - 1/2 * mybox.size.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z # Listen von je drei Punkten, aus denen ein Dreieck gemacht werden soll punkte_draufsicht =[[e,g,h],[f,e,g]] punkte_Rechtecke =[[f,g,c],[f,c,b]] punkte_Rechtecke_innen =[[d,a,h],[a,h,e]] punkte_Boden = [[a,b,c],[a,c,d]] punkte_Seite1 = [[c,d,g],[d,g,h]] punkte_Seite2 = [[a,b,e],[b,e,f]] alledreiecke= [punkte_draufsicht, punkte_Rechtecke, punkte_Rechtecke_innen, punkte_Seite1, punkte_Seite2] zaehler = 12 np.zeros(zaehler, dtape = mesh.Mesh.dtype) q = 0 while q < len(alledreiecke): for Dreieck in alledreiecke[q]: mesh.vector[Dreieck] = np.array([[alledreiecke[q].x.x, alledreiecke[q].x.y, alledreiecke[q].x.z], [alledreiecke[q].y.x, alledreiecke[q].y.y, alledreiecke[q].y.z], [alledreiecke[q].z.x, alledreiecke[q].z.y, alledreiecke[q].z.z]]) q += 1