Exemple #1
0
def fs_callback(filename):
	global EXPORT_DIR, OBJS, CONFIRM_OVERWRITE, VERBOSE

	if not filename.endswith('.ac'): filename = '%s.ac' % filename

	if bsys.exists(filename) and CONFIRM_OVERWRITE:
		if Blender.Draw.PupMenu('OVERWRITE?%t|File exists') != 1:
			return

	Blender.Window.WaitCursor(1)
	starttime = bsys.time()

	export_dir = bsys.dirname(filename)
	if export_dir != EXPORT_DIR:
		EXPORT_DIR = export_dir
		update_RegistryInfo()

	try:
		file = open(filename, 'w')
	except IOError, (errno, strerror):
		error = "IOError #%s: %s" % (errno, strerror)
		REPORT_DATA['errors'].append("Saving failed - %s." % error)
		error_msg = "Couldn't save file!%%t|%s" % error
		Blender.Draw.PupMenu(error_msg)
		return
def fs_callback(filename):
	global EXPORT_DIR, OBJS, CONFIRM_OVERWRITE, VERBOSE

	if not filename.endswith('.ac'): filename = '%s.ac' % filename

	if bsys.exists(filename) and CONFIRM_OVERWRITE:
		if Blender.Draw.PupMenu('OVERWRITE?%t|File exists') != 1:
			return

	Blender.Window.WaitCursor(1)
	starttime = bsys.time()

	export_dir = bsys.dirname(filename)
	if export_dir != EXPORT_DIR:
		EXPORT_DIR = export_dir
		update_RegistryInfo()

	try:
		file = open(filename, 'w')
	except IOError, (errno, strerror):
		error = "IOError #%s: %s" % (errno, strerror)
		REPORT_DATA['errors'].append("Saving failed - %s." % error)
		error_msg = "Couldn't save file!%%t|%s" % error
		Blender.Draw.PupMenu(error_msg)
		return
Exemple #3
0
	def __init__(self, filename):

		global errmsg

		self.scene = Scene.GetCurrent()

		self.i = 0
		errmsg = ''
		self.importdir = bsys.dirname(filename)
		try:
			file = open(filename, 'r')
		except IOError, (errno, strerror):
			errmsg = "IOError #%s: %s" % (errno, strerror)
			Blender.Draw.PupMenu('ERROR: %s' % errmsg)
			inform(errmsg)
			return None
Exemple #4
0
	def __init__(self, filename):

		global errmsg

		self.scene = Scene.GetCurrent()

		self.i = 0
		errmsg = ''
		self.importdir = bsys.dirname(filename)
		try:
			file = open(filename, 'r')
		except IOError, (errno, strerror):
			errmsg = "IOError #%s: %s" % (errno, strerror)
			Blender.Draw.PupMenu('ERROR: %s' % errmsg)
			inform(errmsg)
			return None
Exemple #5
0
def export_xsi(filename):

  global OBJ, MAT, FD, EXPORT_DIR

  # safety check
  if filename.find('.xsi', -4) <= 0:
    print "XSI not found"
    filename += '.xsi'


  export_dir = bsys.dirname(filename)
  if export_dir != EXPORT_DIR:
    EXPORT_DIR = export_dir   

  # open our output  
  FD = open(filename, 'w')

  # get the selected objects, otherwise get them all
  #OBJ = Blender.Object.GetSelected()
  #if not OBJ:
  
  OBJ = list(Blender.Scene.GetCurrent().objects) #Blender.Object.Get()

  # we need some objects, if none specified stop
  if not OBJ:
    return

  # if any exist, grab the materials
  MAT = Blender.Material.Get()

  # output the header data
  do_header()

  # output the materials used by the selected objects.
  do_materiallibrary()

  # we punch out the models, that is, the meshes themselves
  do_models()


  # finally close our file
  FD.close()
Exemple #6
0
def fs_callback(filename):
    global IMPORT_DIR, EXPORT_DIR, import_dir, tipo
    tipo = ''

    if not filename.endswith('.fef'): filename = '%s.fef' % filename

    Blender.Window.WaitCursor(1)
    starttime = bsys.time()

    import_dir = bsys.dirname(filename)
    if import_dir != IMPORT_DIR:
        IMPORT_DIR = import_dir
        update_RegistryInfo()

    file = open(filename, "r")
    header = file.readline()
    if header != '//Face and Hair Exchange File (c)2010 by Skunk\n':
        print "Wrong file!"
        Blender.Draw.PupMenu('Wrong File!')
        file.close()
        return

    if not load_data(file):
        Blender.Draw.PupMenu('Error in input file!')
        file.close()
        return

    if not import2blender():
        Blender.Draw.PupMenu('Error in input file!')
        file.close()
        return

    file.close()

    endtime = bsys.time() - starttime
    print "Data imported in %.3f seconds." % endtime

    Blender.Window.WaitCursor(0)
    return
Exemple #7
0
def fs_dir_callback(pathname):
	global CFGKEY, INDEX

	pathname = bsys.dirname(pathname)
	datatypes = CFGKEY.sorteddata
	datatypes[str][INDEX][1] = pathname
Exemple #8
0
def fs_callback(filename):
    global EXPORT_DIR

    if not filename.endswith('.fef'): filename = '%s.fef' % filename

    if bsys.exists(filename):
        if Blender.Draw.PupMenu('OVERWRITE?%t|File exists') != 1:
            return

    editmode = Blender.Window.EditMode()  # are we in edit mode?  If so ...
    if editmode:
        Blender.Window.EditMode(0)  # leave edit mode before getting the mesh

    starttime = bsys.time()

    export_dir = bsys.dirname(filename)
    if export_dir != EXPORT_DIR:
        EXPORT_DIR = export_dir
        update_RegistryInfo()

    objs_count = 0
    for o in objs:
        objs_count += 1
        #Order parts to assing textures starting from LEFT_EYE
        grp_mat = ["F00", "F01", "F02", "F03", "F04", "F05", "F06"]

        #Ordered Parts to meet order in faces
        grp_names = ["F00", "F01", "F02", "F03", "F04", "F05", "F06"]
        name = "F00 %x0|F01 %x1|F02 %x2|F03 %x3|F04 %x4|F05 %x5|F06 %x6"
        new_names = ["F00", "F01", "F02", "F03", "F04", "F05", "F06"]

    #asign array names
    tmp_name = ''
    #check for correct names
    for o in objs:
        if o.getType() == "Empty":
            if o.getName() not in (grp_names):
                tmp_name = "Part Name %s is wrong, Please Select the one that matches. " % o.getName(
                )
                tmp_name += "%t|"
                tmp_name += name
                result = Blender.Draw.PupMenu(tmp_name, 10)
                if result != -1:
                    o.setName(new_names[result])
                else:
                    return
    del new_names
    del name
    del tmp_name

    Blender.Window.WaitCursor(1)
    for o in objs:
        g = grp()
        g.name = o.getName()
        if load_objs(o, g) == -1:
            return
        groups.append(g)

    if len(mat_list) > 51:
        Blender.Draw.PupMenu(
            'ERROR:%t| Cant use more than 51 Textures,|%l|Please, fix it before export. '
        )
        return

    groups_ordered_mat = []
    for order in range(len(grp_mat)):
        for gr in groups:
            if gr.name == grp_mat[order]:
                groups_ordered_mat.append(gr)
                break

    tipo = tp.getName()
    tipo = tipo.split('-')[1]
    if tipo[0] == "F":
        tex_id = 0x2752
    else:
        tex_id = 0x2753

    for gr in groups_ordered_mat:
        gr.obj_list.sort(key=lambda obj: obj.name)
        for o in gr.obj_list:
            for m in mat_list:
                if o.tex == m.texture:
                    if m.newname == '':
                        m.newname = "%04x" % tex_id
                        tex_id += 1
                    o.tex = m.newname
                    break

    mat_list.sort(key=lambda obj: obj.newname)

    groups_ordered = []
    for order in range(len(grp_names)):
        for gr in groups_ordered_mat:
            if gr.name == grp_names[order]:
                groups_ordered.append(gr)
                break

    del groups_ordered_mat

    file = open(filename, "w")
    file.write("//Face and Hair Exchange File (c)2010 by Skunk\n\n")

    tipo = tp.getName()
    tipo = tipo.split('-')[1]

    file.write("Type = \"%s\"\n\n" % tipo.replace("\n", ""))

    file.write("Materials = %d\n\n" % len(mat_list))
    for m in mat_list:
        file.write("%s \"%s\"\n" % (m.newname, m.texture))

    o_count = 0
    for gr_o in groups_ordered:
        if gr_o.obj_count > 0:
            o_count += 1
    file.write("\nMeshes = %d\n\n" % o_count)
    for gr_o in groups_ordered:
        save_file(file, gr_o)

    file.close()

    endtime = bsys.time() - starttime
    print "Data exported in %.3f seconds." % endtime

    Blender.Window.WaitCursor(0)
    return
#
# This script renders scene from all cameras and stores
# result to <path-of-blend-file>/render
#
# Copyright (C) 2009 Sergey I. Sharybin <*****@*****.**>
#
# This script is covered by GNU General Public License v2 and higher
#

import Blender, os
from Blender import sys, Scene
from Blender.Scene import Render
from stat import *

path = sys.dirname(Blender.Get("filename")) + sys.dirsep + "render"

# Check existment of destination directory
if not sys.exists(path):
  os.mkdir(path)

mode = os.stat(path)[ST_MODE]

if S_ISDIR(mode):
  scene = Scene.GetCurrent()
  context = scene.getRenderingContext()

  savedDisplayMode = context.displayMode
  context.displayMode = 2

  context.setRenderPath(path)
Exemple #10
0
def fs_dir_callback(pathname):
    global CFGKEY, INDEX

    pathname = bsys.dirname(pathname)
    datatypes = CFGKEY.sorteddata
    datatypes[str][INDEX][1] = pathname