forked from bartvdbraak/blender
Lots of scripts are using Object.Get() where Scene.GetCurrent().getChildren() is what is needed.
When through and replaced the obvious ones but there are still a a few Id rather not touch without more about whats going on. Did quite a few changes to export-iv also.
This commit is contained in:
parent
acef774a61
commit
a33feaf49b
@ -296,7 +296,7 @@ class xExport:
|
|||||||
#***********************************************
|
#***********************************************
|
||||||
def analyzeScene(self):
|
def analyzeScene(self):
|
||||||
parent_list = []
|
parent_list = []
|
||||||
for obj in Object.Get():
|
for obj in Blender.Scene.GetCurrent().getChildren(): #Object.Get():
|
||||||
mesh = obj.getData()
|
mesh = obj.getData()
|
||||||
if type(mesh) == Types.ArmatureType or type(mesh) == Types.NMeshType or obj.getType() == "Empty":
|
if type(mesh) == Types.ArmatureType or type(mesh) == Types.NMeshType or obj.getType() == "Empty":
|
||||||
pare = obj.getParent()
|
pare = obj.getParent()
|
||||||
@ -307,14 +307,14 @@ class xExport:
|
|||||||
|
|
||||||
def getChildren(self,obj):
|
def getChildren(self,obj):
|
||||||
children_list = []
|
children_list = []
|
||||||
for object in Object.Get():
|
for object in Blender.Scene.GetCurrent().getChildren(): #Object.Get():
|
||||||
pare = object.parent
|
pare = object.parent
|
||||||
if pare == obj :
|
if pare == obj :
|
||||||
children_list.append(object)
|
children_list.append(object)
|
||||||
return children_list
|
return children_list
|
||||||
|
|
||||||
def getArmChildren(self,obj):
|
def getArmChildren(self,obj):
|
||||||
for object in Object.Get():
|
for object in Blender.Scene.GetCurrent().getChildren(): #Object.Get():
|
||||||
pare = object.parent
|
pare = object.parent
|
||||||
if pare == obj :
|
if pare == obj :
|
||||||
return object
|
return object
|
||||||
@ -404,7 +404,7 @@ class xExport:
|
|||||||
self.file.write("} // End of the Root Frame\n")
|
self.file.write("} // End of the Root Frame\n")
|
||||||
if anim :
|
if anim :
|
||||||
self.file.write("AnimationSet {\n")
|
self.file.write("AnimationSet {\n")
|
||||||
for obj in Object.Get():
|
for obj in Blender.Scene.GetCurrent().getChildren(): #Object.Get():
|
||||||
|
|
||||||
mesh = obj.getData()
|
mesh = obj.getData()
|
||||||
if type(mesh) == Types.NMeshType or obj.getType() == "Empty":
|
if type(mesh) == Types.NMeshType or obj.getType() == "Empty":
|
||||||
|
@ -439,7 +439,7 @@ def createCURVES(courbes):
|
|||||||
elif scale_==3:
|
elif scale_==3:
|
||||||
SCALE=r[3]-r[1]
|
SCALE=r[3]-r[1]
|
||||||
|
|
||||||
[o.select(0) for o in Object.Get()]
|
[o.select(0) for o in Scene.GetCurrent().getChildren()] #[o.select(0) for o in Object.Get()] - will not work
|
||||||
for I in courbes.ITEM:
|
for I in courbes.ITEM:
|
||||||
c = Curve.New()
|
c = Curve.New()
|
||||||
# ----------
|
# ----------
|
||||||
|
@ -280,7 +280,7 @@ def NEWMEcreation(obj):
|
|||||||
|
|
||||||
for ozero in OBJ:
|
for ozero in OBJ:
|
||||||
if ozero.getType()=='Mesh':
|
if ozero.getType()=='Mesh':
|
||||||
namelist.append(ozero.getData().name)
|
namelist.append(ozero.getData(name_only=1))
|
||||||
|
|
||||||
ozero=obj
|
ozero=obj
|
||||||
nomdelobjet=ozero.getName()
|
nomdelobjet=ozero.getName()
|
||||||
|
@ -103,13 +103,13 @@ def flipFace(v):
|
|||||||
|
|
||||||
# return object with given object name (with variable parts) and mesh name
|
# return object with given object name (with variable parts) and mesh name
|
||||||
def getObjectByName(obj_name, mesh_name):
|
def getObjectByName(obj_name, mesh_name):
|
||||||
objs = Blender.Object.Get()
|
objs = Blender.Scene.GetCurrent().getChildren() #Blender.Object.Get()
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
if obj.getType() == "Mesh":
|
if obj.getType() == "Mesh":
|
||||||
# if obj.getName()[0:len(obj_name)] == obj_name and obj.getData().name == mesh_name:
|
# if obj.getName()[0:len(obj_name)] == obj_name and obj.getData().name == mesh_name:
|
||||||
# use only mesh_name so bone name and weight (in the envelope name)
|
# use only mesh_name so bone name and weight (in the envelope name)
|
||||||
# can be changed by the user and mirrored by the script.
|
# can be changed by the user and mirrored by the script.
|
||||||
if obj.getData().name == mesh_name:
|
if obj.getData(name_only=1) == mesh_name:
|
||||||
return obj
|
return obj
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ SUFFIX_LEN = len(REF_SUFFIX);
|
|||||||
Blender.Window.EditMode(0)
|
Blender.Window.EditMode(0)
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
objs = Blender.Object.Get()
|
objs = Blender.Scene.GetCurrent().getChildren() #objs = Blender.Object.Get()
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
if obj.getType() != 'Mesh':
|
if obj.getType() != 'Mesh':
|
||||||
continue
|
continue
|
||||||
|
@ -40,8 +40,7 @@ Note:
|
|||||||
#
|
#
|
||||||
|
|
||||||
import Blender
|
import Blender
|
||||||
import os
|
math_pi= 3.1415926535897931
|
||||||
import math
|
|
||||||
|
|
||||||
def WriteHeader(file):
|
def WriteHeader(file):
|
||||||
file.write("#Inventor V2.1 ascii\n\n")
|
file.write("#Inventor V2.1 ascii\n\n")
|
||||||
@ -74,7 +73,7 @@ def WriteMatrix(file, object):
|
|||||||
file.write(" {\n")
|
file.write(" {\n")
|
||||||
file.write(" matrix\n")
|
file.write(" matrix\n")
|
||||||
for line in matrix:
|
for line in matrix:
|
||||||
file.write(" %s %s %s %s\n" % (line[0], line[1], line[2], line[3]))
|
file.write(" %.6f %.6f %.6f %.6f\n" % (line[0], line[1], line[2], line[3]))
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
|
|
||||||
def WriteColors(file, mesh):
|
def WriteColors(file, mesh):
|
||||||
@ -83,7 +82,7 @@ def WriteColors(file, mesh):
|
|||||||
file.write(" orderedRGBA\n")
|
file.write(" orderedRGBA\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for face in mesh.faces:
|
for face in mesh.faces:
|
||||||
for I in range(len(face.v)):
|
for I in xrange(len(face)):
|
||||||
file.write(" 0x%02x%02x%02x%02x,\n" % (face.col[I].r,
|
file.write(" 0x%02x%02x%02x%02x,\n" % (face.col[I].r,
|
||||||
face.col[I].g, face.col[I].b, face.col[I].a))
|
face.col[I].g, face.col[I].b, face.col[I].a))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
@ -97,36 +96,36 @@ def WriteMaterials(file, mesh):
|
|||||||
file.write(" ambientColor\n")
|
file.write(" ambientColor\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for mat in mesh.materials:
|
for mat in mesh.materials:
|
||||||
file.write(" %s %s %s,\n" % (mat.mirCol[0], mat.mirCol[1],
|
file.write(" %.6f %.6f %.6f,\n" % (mat.mirCol[0], mat.mirCol[1],
|
||||||
mat.mirCol[2]))
|
mat.mirCol[2]))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" diffuseColor\n")
|
file.write(" diffuseColor\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for mat in mesh.materials:
|
for mat in mesh.materials:
|
||||||
file.write(" %s %s %s,\n" % (mat.rgbCol[0], mat.rgbCol[1],
|
file.write(" %.6f %.6f %.6f,\n" % (mat.rgbCol[0], mat.rgbCol[1],
|
||||||
mat.rgbCol[2]))
|
mat.rgbCol[2]))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" specularColor\n")
|
file.write(" specularColor\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for mat in mesh.materials:
|
for mat in mesh.materials:
|
||||||
file.write(" %s %s %s,\n" % (mat.specCol[0] * mat.spec / 2.0,
|
file.write(" %.6f %.6f %.6f,\n" % (mat.specCol[0] * mat.spec / 2.0,
|
||||||
mat.specCol[1] * mat.spec / 2.0, mat.specCol[2] * mat.spec / 2.0))
|
mat.specCol[1] * mat.spec / 2.0, mat.specCol[2] * mat.spec / 2.0))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" emissiveColor\n")
|
file.write(" emissiveColor\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for mat in mesh.materials:
|
for mat in mesh.materials:
|
||||||
file.write(" %s %s %s,\n" % (mat.rgbCol[0] * mat.emit,
|
file.write(" %.6f %.6f %.6f,\n" % (mat.rgbCol[0] * mat.emit,
|
||||||
mat.rgbCol[1] * mat.emit, mat.rgbCol[0] * mat.emit))
|
mat.rgbCol[1] * mat.emit, mat.rgbCol[0] * mat.emit))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" shininess\n")
|
file.write(" shininess\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for mat in mesh.materials:
|
for mat in mesh.materials:
|
||||||
file.write(" %s,\n" % (mat.hard / 255.0))
|
file.write(" %.6f,\n" % (mat.hard / 255.0))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" transparency\n")
|
file.write(" transparency\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for mat in mesh.materials:
|
for mat in mesh.materials:
|
||||||
file.write(" %s,\n" % (1.0 - mat.alpha))
|
file.write(" %.6f,\n" % (1.0 - mat.alpha))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
file.write(" MaterialBinding\n")
|
file.write(" MaterialBinding\n")
|
||||||
@ -135,7 +134,7 @@ def WriteMaterials(file, mesh):
|
|||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
|
|
||||||
def WriteTexture(file, mesh):
|
def WriteTexture(file, mesh):
|
||||||
texture = mesh.faces[0].image
|
texture = mesh.faces[0].image # BAD Ju Ju
|
||||||
if texture:
|
if texture:
|
||||||
file.write(" Texture2\n")
|
file.write(" Texture2\n")
|
||||||
file.write(" {\n")
|
file.write(" {\n")
|
||||||
@ -157,7 +156,7 @@ def WriteTexture(file, mesh):
|
|||||||
elif mesh.hasFaceUV():
|
elif mesh.hasFaceUV():
|
||||||
for face in mesh.faces:
|
for face in mesh.faces:
|
||||||
for uv in face.uv:
|
for uv in face.uv:
|
||||||
file.write(" %s %s,\n" % (uv[0], uv[1]))
|
file.write(" %.6f %.6f,\n" % (uv[0], uv[1]))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
file.write(" TextureCoordinateBinding\n")
|
file.write(" TextureCoordinateBinding\n")
|
||||||
@ -171,7 +170,7 @@ def WriteVertices(file, mesh):
|
|||||||
file.write(" point\n")
|
file.write(" point\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for vert in mesh.verts:
|
for vert in mesh.verts:
|
||||||
file.write(" %s %s %s,\n" % (vert[0], vert[1], vert[2]))
|
file.write(" %.6f %.6f %.6f,\n" % (vert[0], vert[1], vert[2]))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
|
|
||||||
@ -194,7 +193,7 @@ def WriteNormals(file, mesh):
|
|||||||
|
|
||||||
# write normals
|
# write normals
|
||||||
for no in normals:
|
for no in normals:
|
||||||
file.write(" %s %s %s,\n" % (no[0], no[1], no[2]))
|
file.write(" %.6f %.6f %.6f,\n" % (no[0], no[1], no[2]))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
|
|
||||||
@ -216,19 +215,20 @@ def WriteFaces(file, mesh):
|
|||||||
file.write(" materialIndex\n")
|
file.write(" materialIndex\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for face in mesh.faces:
|
for face in mesh.faces:
|
||||||
file.write(" %s,\n" % (face.mat));
|
file.write(" %i,\n" % face.mat);
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
|
|
||||||
# write faces with coordinate indexes
|
# write faces with coordinate indexes
|
||||||
file.write(" coordIndex\n")
|
file.write(" coordIndex\n")
|
||||||
file.write(" [\n")
|
file.write(" [\n")
|
||||||
for face in mesh.faces:
|
for face in mesh.faces:
|
||||||
if len(face.v) == 3:
|
face_v= face.v
|
||||||
file.write(" %s, %s, %s, -1,\n" % (face.v[0].index,
|
if len(face_v) == 3:
|
||||||
face.v[1].index, face.v[2].index))
|
file.write(" %i, %i, %i, -1,\n" % (face_v[0].index,
|
||||||
elif len(face.v) == 4:
|
face_v[1].index, face_v[2].index))
|
||||||
file.write(" %s, %s, %s, %s, -1,\n"% (face.v[0].index,
|
elif len(face_v) == 4:
|
||||||
face.v[1].index, face.v[2].index, face.v[3].index))
|
file.write(" %i, %i, %i, %i, -1,\n" % (face_v[0].index,
|
||||||
|
face_v[1].index, face_v[2].index, face_v[3].index))
|
||||||
file.write(" ]\n")
|
file.write(" ]\n")
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
|
|
||||||
@ -258,7 +258,7 @@ def WriteLamp(file, object):
|
|||||||
#file.write(" location %s\n" % ())
|
#file.write(" location %s\n" % ())
|
||||||
#file.write(" direction %s\n" % ())
|
#file.write(" direction %s\n" % ())
|
||||||
file.write(" dropOffRate %s\n" % (lamp.spotBlend))
|
file.write(" dropOffRate %s\n" % (lamp.spotBlend))
|
||||||
file.write(" cutOffAngle %s\n" % (lamp.spotSize * math.pi / 180.0))
|
file.write(" cutOffAngle %s\n" % (lamp.spotSize * math_pi / 180.0))
|
||||||
file.write(" }\n")
|
file.write(" }\n")
|
||||||
|
|
||||||
# script main function
|
# script main function
|
||||||
@ -270,15 +270,16 @@ def ExportToIv(file_name):
|
|||||||
meshes = []
|
meshes = []
|
||||||
lamps = []
|
lamps = []
|
||||||
cameras = []
|
cameras = []
|
||||||
for object in Blender.Object.Get():
|
for object in scene.getChildren():
|
||||||
if object.getType() == "Mesh":
|
obtype= object.getType()
|
||||||
|
if obtype == "Mesh":
|
||||||
meshes.append(object);
|
meshes.append(object);
|
||||||
elif object.getType() == "Lamp":
|
#elif obtype == "Lamp":
|
||||||
lamps.append(object);
|
# lamps.append(object);
|
||||||
elif object.getType() == "Camera":
|
#elif obtype == "Camera":
|
||||||
cameras.append(object);
|
# cameras.append(object);
|
||||||
else:
|
#else:
|
||||||
print "Exporting %s objects isn't supported!" % object.getType()
|
# print "Exporting %s objects isn't supported!" % object.getType()
|
||||||
|
|
||||||
# write header, footer and groups of object types
|
# write header, footer and groups of object types
|
||||||
WriteHeader(file);
|
WriteHeader(file);
|
||||||
@ -293,8 +294,8 @@ def ExportToIv(file_name):
|
|||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
def FileSelectorCB(file_name):
|
def FileSelectorCB(file_name):
|
||||||
if(file_name.find('.iv', -3) <= 0):
|
if not file_name.lower().endswith('.iv'):
|
||||||
file_name += '.iv'
|
file_name += '.iv'
|
||||||
ExportToIv(file_name)
|
ExportToIv(file_name)
|
||||||
|
|
||||||
Blender.Window.FileSelector(FileSelectorCB, "Export IV")
|
Blender.Window.FileSelector(FileSelectorCB, "Export IV", Blender.sys.makename(ext='.iv'))
|
||||||
|
@ -1210,7 +1210,7 @@ def export_xsi(filename):
|
|||||||
#OBJ = Blender.Object.GetSelected()
|
#OBJ = Blender.Object.GetSelected()
|
||||||
#if not OBJ:
|
#if not OBJ:
|
||||||
|
|
||||||
OBJ = Blender.Object.Get()
|
OBJ = Blender.Scene.GetCurrent().getChildren() #Blender.Object.Get()
|
||||||
|
|
||||||
# we need some objects, if none specified stop
|
# we need some objects, if none specified stop
|
||||||
if not OBJ:
|
if not OBJ:
|
||||||
|
Loading…
Reference in New Issue
Block a user