From e8d39a3ca327c3cea1d8fa7f809b10ab854bf7bd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 6 Jul 2006 19:02:22 +0000 Subject: updated raw import/export nice error messages, optimized with LC's removed meshtools depencancy, use Mesh instead of NMesh --- release/scripts/raw_export.py | 75 +++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 38 deletions(-) (limited to 'release/scripts/raw_export.py') diff --git a/release/scripts/raw_export.py b/release/scripts/raw_export.py index b8469adc5f4..02eb5ad3f36 100644 --- a/release/scripts/raw_export.py +++ b/release/scripts/raw_export.py @@ -1,8 +1,8 @@ #!BPY """ -Name: 'Raw Triangle (.raw)...' -Blender: 232 +Name: 'Raw Faces (.raw)...' +Blender: 242 Group: 'Export' Tooltip: 'Export selected mesh to Raw Triangle Format (.raw)' """ @@ -53,49 +53,48 @@ Usage:
# # ***** END GPL LICENCE BLOCK ***** -import Blender, meshtools -import sys -#import time +import Blender +import BPyMesh # ================================= # === Write RAW Triangle Format === # ================================= def write(filename): - #start = time.clock() + start = Blender.sys.time() + if not filename.lower().endswith('.raw'): + filename += '.raw' + + scn= Blender.Scene.GetCurrent() + object= scn.getActiveObject() + if not object: + Blender.Draw.PupMenu('Error%t|Select 1 active object') + return + + file = open(filename, 'wb') + + mesh = BPyMesh.getMeshFromObject(object, None, True, False, scn) + if not mesh: + Blender.Draw.PupMenu('Error%t|Could not get mesh data from active object') + return + + mesh.transform(object.matrixWorld) + + file = open(filename, "wb") - - objects = Blender.Object.GetSelected() - objname = objects[0].name - meshname = objects[0].data.name - mesh = Blender.NMesh.GetRaw(meshname) - obj = Blender.Object.Get(objname) - - - std=sys.stdout - sys.stdout=file - for face in mesh.faces: - if len(face.v) == 3: # triangle - v1, v2, v3 = face.v - faceverts = tuple(v1.co) + tuple(v2.co) + tuple(v3.co) - print "% f % f % f % f % f % f % f % f % f" % faceverts - else: # quadrilateral - v1, v2, v3, v4 = face.v - faceverts1 = tuple(v1.co) + tuple(v2.co) + tuple(v3.co) - faceverts2 = tuple(v3.co) + tuple(v4.co) + tuple(v1.co) - print "% f % f % f % f % f % f % f % f % f" % faceverts1 - print "% f % f % f % f % f % f % f % f % f" % faceverts2 - sys.stdout=std + for f in mesh.faces: + for v in f.v: + file.write('%.6f %.6f %.6f ' % tuple(v.co)) + file.write('\n') + file.close() + + end = Blender.sys.time() + message = 'Successfully exported "%s" in %.4f seconds' % ( Blender.sys.basename(filename), end-start) + print message - Blender.Window.DrawProgressBar(1.0, '') # clear progressbar - file.close() - #end = time.clock() - #seconds = " in %.2f %s" % (end-start, "seconds") - message = "Successfully exported " + Blender.sys.basename(filename)# + seconds - meshtools.print_boxed(message) +def main(): + Blender.Window.FileSelector(write, 'RAW Export', Blender.sys.makename(ext='.raw')) -def fs_callback(filename): - if filename.find('.raw', -4) <= 0: filename += '.raw' - write(filename) -Blender.Window.FileSelector(fs_callback, "Export Raw") +if __name__=='__main__': + main() -- cgit v1.2.3