[ create a new paste ] login | about

Link: http://codepad.org/rXWgSTID    [ raw code | fork ]

raoullevert - Python, pasted on Jul 28:
from def3D import point, vertex


class STLImport():
    def __init__(self, filename):
        self.listeVertex = []
        self.listePoint = []
        self.load(filename)
        
    def GetVertex(self):
        return self.listeVertex
    
    def load(self, filename):
        f = open(filename, 'rb')
        header = f.read(6)
        isASCII = ( header== 'solid ')
        if isASCII:
            name = f.readline()
            print "Nom du Solide : %s " % name
            self.parseASCII(f)
        else:
            print "Non ASCII file : aborting"
            return -1
    
    def parseASCII(self,f ):
        for line in f:
            line = line.lower().strip()
            commande = line.split(" ")
            Nb_Param = len(commande)
            try:
                {'facet'  : self.facet,
                'outer'   : self.outer,
                'vertex'  : self.vertex,
                'endloop' : self.endloop,
                'endfacet': self.endfacet}[commande[0]](commande,Nb_Param)
            except KeyError:
                # Commande inconnue ou erreur
                pass
            
    def facet(self,commande,Nb_Param):
        pass
        #on ignore les normales.
        
            
    def outer(self,commande,Nb_Param):
        if commande[1]=="loop":
        #On vide la liste de vecteurs
            self.listePoint = []
        
            
    def vertex(self,commande,Nb_Param):
        if (Nb_Param==4):
            x,y,z = float(commande[1]),float(commande[2]),float(commande[3])
            self.listePoint.append(point(x,y,z))
                     
    def endloop(self,commande,Nb_Param):
        if len(self.listePoint)==3:
            a,b,c = self.listePoint
            triangle = vertex(a,b,c)
            self.listeVertex.append(triangle)
    
            
    def endfacet(self,commande,Nb_Param):
        pass
        #fin de la face                    

#Small exemple :             
#stl = STLImport("data/test.stl")
#for vertex in stl.GetVertex():
#    print vertex.vecteurs


Create a new paste based on this one


Comments: