#--------------------------
# raw2mesh jmsoler 2002
#--------------------------
import Blender
from Blender import NMesh
# nom du mesh, simple variable texte
objmesh='Plane.002'
# ouverture du fichier en mode lecture
rawfile=open("d:\\tmp\\file.raw","r")
# lecture en 1 seul bloc de toutes les lignes
tabraw=rawfile.readlines()
# fermeture du fichier
rawfile.close()
# On cree un pointeur en mémoire pour
# stocker l'objet mesh
mesh=NMesh.GetRaw()
# Pour l'instant, ce n'est qu'un espace
# provisoire qui n'est pas reconnu par
# blender. On pourrait parler de tampon
# memoire
# on prend successivement chaque ligne de texte enregistrée
# dans la variable tabraw
for ligne in tabraw:
# Cette ligne est nettoyee du petit problèmes
# que forme le caractère de saut de ligne
\n
ligne=ligne.replace('\n','')
# On transforme la ligne en un tableau de 3
# entrees, une pour chaque valeur x,y et z
# en coupant sur caractère espace vide
l=ligne.split(' ')
# On transforme chaque élément en nombre
à virgule
# flottante
x=float(l[0])
y=float(l[1])
z=float(l[2])
# On cree un pointeur sur une variable poru y ranger
# ces coordonnees
v=NMesh.Vert(x,y,z)
# On pourrait aussi ecrire :
# v=NMesh.Vert()
# v.append(x)
# v.append(y)
# v.append(z)
# On ajoute cette variable à la liste de sommet
du
# mesh que l'on est en train de creer
mesh.verts.append(v)
# On place une copie du contenu de l'objet mesh dans l'espace
# des données de blender
NMesh.PutRaw(mesh,objmesh)
# a ce moment-la, chaque sommet contient les coordonnées
# dans l'ordre ou' elles ont ete lues
#
# note : tester la valeur limite sur 65000 avait du sens en 2002
# mais aujourd'hui c'est inutile puisque les meshes peuvent
# contenir jusqu'a' 2 milliards de sommets
NMesh.PutRaw(mesh,objmesh) |