Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/slp_import.py')
-rw-r--r--release/scripts/slp_import.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/release/scripts/slp_import.py b/release/scripts/slp_import.py
new file mode 100644
index 00000000000..a066e333445
--- /dev/null
+++ b/release/scripts/slp_import.py
@@ -0,0 +1,76 @@
+#!BPY
+
+"""
+Name: 'SLP (Pro Engineer)...'
+Blender: 232
+Group: 'Import'
+Tooltip: 'Import SLP (Pro Engineer) File Format (*.raw)'
+"""
+
+# +---------------------------------------------------------+
+# | Copyright (c) 2004 Anthony D'Agostino |
+# | http://www.redrival.com/scorpius |
+# | scorpius@netzero.com |
+# | May 3, 2004 |
+# | Released under the Blender Artistic Licence (BAL) |
+# | Import Export Suite v0.5 |
+# +---------------------------------------------------------+
+# | Read and write SLP Triangle File Format (*.slp) |
+# +---------------------------------------------------------+
+
+import Blender, mod_meshtools
+#import time
+
+# ================================
+# === Read SLP Triangle Format ===
+# ================================
+def read(filename):
+ #start = time.clock()
+ file = open(filename, "rb")
+
+ raw = []
+ for line in file.readlines():
+ data = line.split()
+ if data[0] == "vertex":
+ vert = map(float, data[1:])
+ raw.append(vert)
+
+ tri = []
+ for i in range(0, len(raw), 3):
+ tri.append(raw[i] + raw[i+1] + raw[i+2])
+
+ #$import pprint; pprint.pprint(tri)
+
+ # Collect data from RAW format
+ faces = []
+ for line in tri:
+ f1, f2, f3, f4, f5, f6, f7, f8, f9 = line
+ faces.append([(f1, f2, f3), (f4, f5, f6), (f7, f8, f9)])
+
+ # Generate verts and faces lists, without duplicates
+ verts = []
+ coords = {}
+ index = 0
+ for i in range(len(faces)):
+ for j in range(len(faces[i])):
+ vertex = faces[i][j]
+ if not coords.has_key(vertex):
+ coords[vertex] = index
+ index += 1
+ verts.append(vertex)
+ faces[i][j] = coords[vertex]
+
+ objname = Blender.sys.splitext(Blender.sys.basename(filename))[0]
+
+ mod_meshtools.create_mesh(verts, faces, objname)
+ Blender.Window.DrawProgressBar(1.0, '') # clear progressbar
+ file.close()
+ #end = time.clock()
+ #seconds = " in %.2f %s" % (end-start, "seconds")
+ message = "Successfully imported " + Blender.sys.basename(filename)# + seconds
+ mod_meshtools.print_boxed(message)
+
+def fs_callback(filename):
+ read(filename)
+
+Blender.Window.FileSelector(fs_callback, "SLP Import")