#!BPY """ Released under the Blender Artistic Licence (BAL) Name: 'Arbaro (POV-Ray .inc)' Blender: 232 Group: 'Import' Tooltip: 'Import Arbaro mesh (.inc)' """ __author__ = "pat" __version__ = "1.0 - 09/12/04 -" __email__ = ('Author, pat:psycho3d*de') __url__ = ("Author's website, www.psycho3d.de") __bpydoc__ ="""\ This script was written to import Arbaro created trees, but can be used to import most POV-Ray mesh2 includefiles. """ from Blender import NMesh from Blender.Window import FileSelector ### main procedure def import_mesh2(filename): file = open(filename, "r") incfile = file.read() file.close() meshes = incfile.find("mesh2 {") + 7 while meshes != 6: # import verts vertspart = incfile.find("vertex_vectors {", meshes) + 16 partend = incfile.find("}", vertspart) vertlist = [] vstart = incfile.find("<", vertspart, partend) + 1 while vstart != 0: vend = incfile.find(">", vstart) v = incfile[vstart:vend].split(",") for j in range(3): v[j] = float(v[j]) vertlist.append(NMesh.Vert(v[0],v[2],v[1])) vstart = incfile.find("<", vend, partend) + 1 # import faces facepart = incfile.find("face_indices {", vertspart) + 14 partend = incfile.find("}", facepart) facelist = [] fstart = incfile.find("<", facepart, partend) + 1 while fstart != 0: fend = incfile.find(">", fstart) f = incfile[fstart:fend].split(",") for j in range(3): # make f a list of verts f[j] = vertlist[int(f[j])] facelist.append(NMesh.Face(f)) fstart = incfile.find("<", fend, partend) + 1 # create blender mesh me = NMesh.New() me.verts.extend(vertlist) me.faces.extend(facelist) NMesh.PutRaw(me) # look for another mesh meshes = incfile.find("mesh2 {", meshes) + 7 ### fileSelector callback def f(filename): import_mesh2(filename) ##### script start ##### FileSelector(f, "Select Arbaro .inc")