[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3495] contrib/py/scripts/addons/ io_export_dxf: DXF-exporter script: fixed for bmesh API

Remigiusz Fiedler migius at gmx.net
Mon Jun 18 01:46:02 CEST 2012


Revision: 3495
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3495
Author:   migius
Date:     2012-06-17 23:45:59 +0000 (Sun, 17 Jun 2012)
Log Message:
-----------
DXF-exporter script: fixed for bmesh API

Modified Paths:
--------------
    contrib/py/scripts/addons/io_export_dxf/__init__.py
    contrib/py/scripts/addons/io_export_dxf/primitive_exporters/mesh_exporter.py

Modified: contrib/py/scripts/addons/io_export_dxf/__init__.py
===================================================================
--- contrib/py/scripts/addons/io_export_dxf/__init__.py	2012-06-17 15:15:43 UTC (rev 3494)
+++ contrib/py/scripts/addons/io_export_dxf/__init__.py	2012-06-17 23:45:59 UTC (rev 3495)
@@ -18,12 +18,12 @@
 bl_info = {
     "name": "Export Autocad DXF Format (.dxf)",
     "author": "Remigiusz Fiedler (AKA migius), Vaclav Klecanda",
-    "version": (2, 1, 2),
-    "blender": (2, 6, 0),
+    "version": (2, 1, 3),
+    "blender": (2, 6, 3),
     "location": "File > Export > Autodesk (.dxf)",
     "description": "The script exports Blender geometry to DXF format r12 version.",
-    "warning": "Only subset of DXF specification is supported, work in progress.",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Import-Export/DXF_Exporter",
+    "warning": "Under construction! Visit Wiki for details.",
+    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/DXF_Exporter",
     "tracker_url": "https://projects.blender.org/tracker/index.php?func=detail&aid=28469",
     "category": "Import-Export"
 }
@@ -43,4 +43,4 @@
     bpy.types.INFO_MT_file_export.remove(menu_func)
 
 if __name__ == "__main__":
-    register()
+    register()
\ No newline at end of file

Modified: contrib/py/scripts/addons/io_export_dxf/primitive_exporters/mesh_exporter.py
===================================================================
--- contrib/py/scripts/addons/io_export_dxf/primitive_exporters/mesh_exporter.py	2012-06-17 15:15:43 UTC (rev 3494)
+++ contrib/py/scripts/addons/io_export_dxf/primitive_exporters/mesh_exporter.py	2012-06-17 23:45:59 UTC (rev 3495)
@@ -22,7 +22,7 @@
                     entities = self._writeInsert(drawing, ob, mx, me.name)
                 else:
                     # generate geom_output in ObjectCS
-                    allpoints = [v.co for v in me.verts]
+                    allpoints = [v.co for v in me.vertices]
                     identity_matrix = mathutils.Matrix().identity()
                     allpoints = self.projected_co(allpoints, identity_matrix)
                     #allpoints = toGlobalOrigin(allpoints)
@@ -64,16 +64,20 @@
         allpoints = self.toGlobalOrigin(allpoints)
         faces=[]
         edges=[]
-        if me.faces and self.PROJECTION and self.HIDDEN_LINES:
+        me.update(calc_tessface=True)
+        me_faces = me.tessfaces
+        #print('deb: allpoints=\n', allpoints) #---------
+        #print('deb: me_faces=\n', me_faces) #---------
+        if me_faces and self.PROJECTION and self.HIDDEN_LINES:
             #if DEBUG: print 'deb:exportMesh HIDDEN_LINES mode' #---------
-            faces, edges = self.hidden_status(me.faces, mx, mx_n)
-            faces = [[v.index for v in me.faces[f_nr].vertices] for f_nr in faces]
+            faces, edges = self.hidden_status(me_faces, mx, mx_n)
+            faces = [[v.index for v in me_faces[f_nr].vertices] for f_nr in faces]
         else:
             #if DEBUG: print 'deb:exportMesh STANDARD mode' #---------
             for e in me.edges: edges.append(e.key)
             #faces = [f.index for f in me.faces]
             ##faces = [[v.index for v in f.vertices] for f in me.faces]
-            faces = me.faces
+            faces = me_faces
             #faces = [[allpoints[v.index] for v in f.vertices] for f in me.faces]
         #print('deb: allpoints=\n', allpoints) #---------
         #print('deb: edges=\n', edges) #---------
@@ -108,7 +112,7 @@
                     args = copy.copy(kwargs)
                     args['points'] = points
                     entities.append(('Line', args))
-        elif c in {'POLYFACE','POLYLINE'}:
+        elif c in ('POLYFACE','POLYLINE'):
             if faces and allpoints:
                 #TODO: purge allpoints: left only vertices used by faces
 #                    if exportsettings['verbose']: 
@@ -146,6 +150,5 @@
                     args['points'] = points
 #                    print(args)
                     entities.append(('Face', args))
-    
 
         return entities



More information about the Bf-extensions-cvs mailing list