43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
#!BPY
|
|
|
|
"""
|
|
Name: 'Joshs Physics Information (.phy) Exporter'
|
|
Blender: 244
|
|
Group: 'Export'
|
|
Tooltip: 'Joshs Physics Information (.phy) Exporter'
|
|
"""
|
|
import Blender
|
|
import bpy
|
|
|
|
def write(filename):
|
|
out = file(filename, "w")
|
|
sce = bpy.data.scenes.active
|
|
for ob in sce.objects:
|
|
if ob.type == 'Mesh':
|
|
if len(ob.data.faces) == 1:
|
|
# found a plane
|
|
e = ob.getEuler()
|
|
out.write("plane \"%s\" %f %f %f %f %f %f\n" %
|
|
((ob.name,) + ob.getLocation() + (e[0], e[1], e[2])))
|
|
elif len(ob.data.faces) == 6:
|
|
# found a cube
|
|
e = ob.getEuler()
|
|
size = ob.getSize()
|
|
out.write("cube \"%s\" %f %f %f %f %f %f %f %f %f\n" %
|
|
((ob.name,2*size[0],2*size[1],2*size[2]) +
|
|
ob.getLocation() +
|
|
(e[0], e[1], e[2])))
|
|
elif len(ob.data.faces) < 256:
|
|
# found a cylinder
|
|
e = ob.getEuler()
|
|
out.write("cylinder \"%s\" %f %f %f %f %f %f %f %f\n" %
|
|
((ob.name,) + (ob.getSize()[0], ob.getSize()[2]*2) +
|
|
ob.getLocation() +
|
|
(e[0], e[1], e[2])))
|
|
elif len(ob.data.faces) >= 256:
|
|
# found a sphere
|
|
out.write("sphere \"%s\" %f %f %f %f\n" %
|
|
((ob.name, ob.SizeX) + ob.getLocation()))
|
|
|
|
Blender.Window.FileSelector(write, "Export")
|