forked from bartvdbraak/blender
101 lines
3.0 KiB
Python
101 lines
3.0 KiB
Python
#!BPY
|
|
|
|
"""
|
|
Name: 'Raw Faces (.raw)...'
|
|
Blender: 245
|
|
Group: 'Export'
|
|
Tooltip: 'Export selected mesh to Raw Format (.raw)'
|
|
"""
|
|
|
|
__author__ = "Anthony D'Agostino (Scorpius)"
|
|
__url__ = ("blender", "blenderartists.org",
|
|
"Author's homepage, http://www.redrival.com/scorpius")
|
|
__version__ = "Part of IOSuite 0.5"
|
|
|
|
__bpydoc__ = """\
|
|
This script exports meshes to Raw file format.
|
|
|
|
The raw triangle format is very simple; it has no verts or faces lists.
|
|
It's just a simple ascii text file with the vertices of each triangle or quad
|
|
listed on each line. There were some very old utilities (when the PovRay
|
|
forum was in existence on CompuServe) that preformed operations on these
|
|
files.
|
|
|
|
Usage:<br>
|
|
Select meshes to be exported and run this script from "File->Export" menu.
|
|
"""
|
|
|
|
# $Id$
|
|
#
|
|
# +---------------------------------------------------------+
|
|
# | Copyright (c) 2002 Anthony D'Agostino |
|
|
# | http://www.redrival.com/scorpius |
|
|
# | scorpius@netzero.com |
|
|
# | April 28, 2002 |
|
|
# | Read and write RAW Triangle File Format (*.raw) |
|
|
# +---------------------------------------------------------+
|
|
|
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version 2
|
|
# of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
#
|
|
# ***** END GPL LICENCE BLOCK *****
|
|
|
|
import Blender
|
|
import BPyMesh
|
|
|
|
# =================================
|
|
# === Write RAW Triangle Format ===
|
|
# =================================
|
|
def write(filename):
|
|
start = Blender.sys.time()
|
|
if not filename.lower().endswith('.raw'):
|
|
filename += '.raw'
|
|
|
|
scn= Blender.Scene.GetCurrent()
|
|
ob= scn.objects.active
|
|
if not ob:
|
|
Blender.Draw.PupMenu('Error%t|Select 1 active object')
|
|
return
|
|
|
|
file = open(filename, 'wb')
|
|
|
|
mesh = BPyMesh.getMeshFromObject(ob, None, True, False, scn)
|
|
if not mesh:
|
|
Blender.Draw.PupMenu('Error%t|Could not get mesh data from active object')
|
|
return
|
|
|
|
mesh.transform(ob.matrixWorld)
|
|
|
|
|
|
file = open(filename, "wb")
|
|
for f in mesh.faces:
|
|
for v in f:
|
|
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
|
|
|
|
|
|
def main():
|
|
Blender.Window.FileSelector(write, 'RAW Export', Blender.sys.makename(ext='.raw'))
|
|
|
|
|
|
if __name__=='__main__':
|
|
main()
|