Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1617:dreieckologie_19.01.17

19.01.2017

Auch heute beschätigten wir uns weiter mit der stl-Formatierung. Mit Stefans Hilfe haben wir nun folgendes Ergebnis

# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from visual import *
import numpy as np
import stl
from stl import mesh
from matplotlib import pyplot
 
 
 
def box_in_dreiecke(x):
 
 
'''
    vertices = np.array([[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], #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], #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], #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]])#h
 
'''
 
 
    def erstelle_vertices(x):
        for n in x:
            while l < 8:
                vertices[n] = np.array([x[n][l]])
                l += 1
        return vertices[2]        
 
 
 
 
 
    # Listen von je drei Punkten, aus denen ein Dreieck gemacht werden soll
    faces = np.array([[4,6,7],
                      [5,4,6],
                      [5,6,2],
                      [5,2,6],
                      [3,0,7],
                      [0,7,4],
                      [0,1,2],
                      [0,2,3],
                      [2,3,6],
                      [3,6,7],
                      [0,1,4],
                      [1,4,5]])
 
 
 
 
    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[n[f[j],:]]
    cube.save('cube.stl')
 
 
'''
mybox1 = box(pos = (5,0,0), size = (5,5,0.5), color = color.blue, angle = pi/2, axis = (0,0,1))
mybox1.visible = false
 
box_in_dreiecke(mybox1)
'''
 
x = [[[0,0,0],
      [3,0,0],
      [3,0,-2],  
      [0,0,-2],
      [0,2,0],
      [3,2,0],
      [3,2,-2],
      [0,2,-2]],
     [[5,0,0],
      [5,0,-4],
      [3,0,-4],
      [3,0,0],
      [5,2,0],
      [5,2,-4],
      [3,2,-4],
      [3,2,0]]]
box_in_dreiecke(x)

Leider gibt es auch hier noch Fehlermeldungen. Wir haben hier versucht, er Funktion box_in_dreiecke lediglich die Eckpunkte der Boxen zu übergeben. Denn nun haben wir uns auch über die Schnittstelle unserer beiden Gruppen (Dreieckologie und Topologie) endgültig einigen können: Uns werden die Eckpunkte bereits übergeben, sodass ein Großteil der zuvor notwendigen Eckpunktidetifizierung wegfällt. In diesem Beispiel werden zwei Boxen zu triangulieren versucht. Das Ziel ist die Erstellung einer separaten stl-Datei namens „cube“ im gleichen Ordner wie das Programm.

ws1617/dreieckologie_19.01.17.txt · Zuletzt geändert: 2017/01/26 16:06 von SoenkeRoos96