I’m trying to write a simple exporter to blender in python for my on format, however I’m having trouble just printing to a file. Here’s the code:
import bpy
class BXMLExporter(bpy.types.Operator):
bl_idname = "bxml_exporter"
bl_label = "BXML Exporter"
def execute(self, context):
file = open("//Users//Julian//Documents//Jobb//Programmering//Raytracing//Bulletracer//test.txt", "w")
#file = open("C:\\Users\\Julian\\Desktop\ est.txt", "w")
file.write("<scene>
")
#########################################################
################# SAVE MESHES ###########################
#########################################################
for obj in bpy.data.meshes:
file.write(" <Object name=\"" + str(obj.name) + "\" materialName=\"" + str(obj.materials[0].name) + "\">
")
vertData = obj.verts
for face in obj.faces:
file.write(" <Face>
")
vertices = face.verts
if len(vertices) == 4: #quad
file.write(" <Vertex>" + str(vertData[vertices[0]].co[0]) + ";" + str(vertData[vertices[0]].co[1]) + ";" + str(vertData[vertices[0]].co[2]) + "</Vertex>
")
file.write(" <Vertex>" + str(vertData[vertices[1]].co[0]) + ";" + str(vertData[vertices[1]].co[1]) + ";" + str(vertData[vertices[1]].co[2]) + "</Vertex>
")
file.write(" <Vertex>" + str(vertData[vertices[2]].co[0]) + ";" + str(vertData[vertices[2]].co[1]) + ";" + str(vertData[vertices[2]].co[2]) + "</Vertex>
")
file.write(" </Face>
")
file.write(" <Face>
")
file.write(" <Vertex>" + str(vertData[vertices[0]].co[0]) + ";" + str(vertData[vertices[0]].co[1]) + ";" + str(vertData[vertices[0]].co[2]) + "</Vertex>
")
file.write(" <Vertex>" + str(vertData[vertices[3]].co[0]) + ";" + str(vertData[vertices[3]].co[1]) + ";" + str(vertData[vertices[3]].co[2]) + "</Vertex>
")
file.write(" <Vertex>" + str(vertData[vertices[2]].co[0]) + ";" + str(vertData[vertices[2]].co[1]) + ";" + str(vertData[vertices[2]].co[2]) + "</Vertex>
")
file.write(" </Face>
")
else:
file.write(" <Vertex>" + str(vertData[vertices[0]].co[0]) + ";" + str(vertData[vertices[0]].co[1]) + ";" + str(vertData[vertices[0]].co[2]) + "</Vertex>
")
file.write(" <Vertex>" + str(vertData[vertices[1]].co[0]) + ";" + str(vertData[vertices[1]].co[1]) + ";" + str(vertData[vertices[1]].co[2]) + "</Vertex>
")
file.write(" <Vertex>" + str(vertData[vertices[2]].co[0]) + ";" + str(vertData[vertices[2]].co[1]) + ";" + str(vertData[vertices[2]].co[2]) + "</Vertex>
")
file.write(" </Face>
")
file.write(" </Object>
")
#self.report({'INFO'}, str(obj.name))
##########################################################
#################### SAVE LAMPS ##########################
##########################################################
file.write("abc")
for obj in bpy.data.objects:
if obj.Type == 'LAMP':
lamp = obj.data
file.write(" <Lamp name=\"" + str(lamp.name) + "\" intensity=\"" + str(lamp.energy) + "\" falloff=\"" + str(lamp.distance) + "\">
")
file.write(" <Color>" + str(lamp.color[0]) + ";" + str(lamp.color[1]) + ";" + str(lamp.color[2]) + "</Color>
")
file.write(" <Pos>" + str(obj.location[0]) + ";" + str(obj.location[1]) + ";" + str(obj.location[2]) + "</Pos>
")
file.write(" </Lamp>
")
file.write("</scene>
")
file.close()
self.report({'INFO'}, "Saved data to BXML-file..")
return {'FINISHED'}
bpy.types.register(BXMLExporter)
Everything to the “SAVE LAMPS”-sections works fine but the code after that doesn’t print anything at all to the file.
Thanks!