codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
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
Private
[
?
]
Run code
Submit