[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19278] trunk/blender/release/scripts/ import_dxf.py: update v1.12 - 2009.03.14 by migius
Remigiusz Fiedler
migius at 4d-vectors.de
Sat Mar 14 00:35:15 CET 2009
Revision: 19278
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19278
Author: migius
Date: 2009-03-14 00:35:15 +0100 (Sat, 14 Mar 2009)
Log Message:
-----------
update v1.12 - 2009.03.14 by migius
d3 removed all set()functions (problem with osx/python<2.4 reported by Blinkozo)
d3 code-cleaning
d2 temp patch for noname BLOCKS (*X,*U,*D)
Modified Paths:
--------------
trunk/blender/release/scripts/import_dxf.py
Modified: trunk/blender/release/scripts/import_dxf.py
===================================================================
--- trunk/blender/release/scripts/import_dxf.py 2009-03-13 19:27:00 UTC (rev 19277)
+++ trunk/blender/release/scripts/import_dxf.py 2009-03-13 23:35:15 UTC (rev 19278)
@@ -7,7 +7,7 @@
Tooltip: 'Import for DXF geometry data (Drawing eXchange Format).'
"""
__author__ = 'Kitsu(Ed Blake) & migius(Remigiusz Fiedler)'
-__version__ = '1.12 - 2008.11.16 by migius'
+__version__ = '1.12 - 2009.03.14 by migius'
__url__ = ["http://blenderartists.org/forum/showthread.php?t=84319",
"http://wiki.blender.org/index.php/Scripts/Manual/Import/DXF-3D"]
__email__ = ["migius(at)4d-vectors.de","Kitsune_e(at)yahoo.com"]
@@ -15,7 +15,7 @@
This script imports objects from DXF (2d/3d) into Blender.
This script imports 2d and 3d geometery from DXF files.
-Supported DXF format versions: from (r2.5) r12 up to 2008.
+Supported DXF format versions: from (r2.5) r12 up to r2008.
Enhanced features are:
- configurable object filtering and geometry manipulation,
- configurable material pre-processing,
@@ -32,7 +32,7 @@
CIRCLE,
ARC,
3DFACE,
-2d-POLYLINE (=plane, incl. arc, variable-width, curve, spline),
+2d-POLYLINE (=in plane, incl. arc, variable-width, curve, spline),
3d-POLYLINE (=non-plane),
3d-POLYMESH,
3d-POLYFACE,
@@ -57,7 +57,7 @@
"model space" is default,
"paper space" as option (= "layout views")
-Supported scene definition objescts produced with AVE_RENDER:
+Supported scene definition objects produced with AVE_RENDER:
scene: selection of lights assigned to the camera,
lights: DIRECT, OVERHEAD, SH_SPOT,
(wip v1.13 import of AVE_RENDER material definitions)
@@ -88,7 +88,7 @@
"""
History:
- v1.0 - 2007/2008 by migius
+ v1.0 - 2007/2008/2009 by migius
planned tasks:
-- (to see more, search for "--todo--" in script code)
-- command-line-mode/batch-mode
@@ -111,6 +111,11 @@
-- support ortho mode for VIEWs and VPORTs as cameras
+ v1.12 - 2009.03.14 by migius
+ d3 removed all set()functions (problem with osx/python<2.4 reported by Blinkozo)
+ d3 code-cleaning
+ v1.12 - 2009.01.14 by migius
+ d2 temp patch for noname BLOCKS (*X,*U,*D)
v1.12 - 2008.11.16 by migius
d1 remove try_finally: cause not supported in python <2.5
d1 add Bezier curves bevel radius support (default 1.0)
@@ -309,9 +314,17 @@
#from dxfReader import get_name, get_layer
from dxfReader import Object as dxfObject
from dxfColorMap import color_map
-
from math import *
+# osx-patch by Blinkozo
+#todo: avoid additional modules, prefer Blender-build-in test routines
+#import platform
+#if platform.python_version() < '2.4':
+# from sets import Set as set
+#from sys import version_info
+#ver = '%s.%s' % version_info[0:2]
+# end osx-patch
+
try:
import os
if os.name != 'mac':
@@ -950,7 +963,7 @@
if thic < settings.var['dist_min']: thic = settings.var['dist_min']
if points_as in [1,3,4,5]:
- if True: # points_as in [1,5]: # as 'empty'
+ if points_as in [1,5]: # as 'empty'
c = 'Empty'
elif points_as == 3: # as 'thin sphere'
res = settings.var['thin_res']
@@ -1276,66 +1289,6 @@
pline = Curve.New(obname) # create new curve data
#pline.setResolu(24) #--todo-----
- if False: #old self.spline: # NURBSplines-----OK-----
- #print 'deb:polyline2dCurve.draw self.spline!' #---------------
- weight1 = 0.5
- weight2 = 1.0
- if self.curvQuadrati:
- # Bezier-curve form simulated in NURBS-curve
- # generate middlepoints except start/end-segments ---
- #print 'deb:polyline2dCurve.draw extraQBspline!' #---------------
- temp_points = []
- point = d_points[0].loc
- point.append(weight1)
- temp_points.append(point)
- for i in xrange(1,len(d_points)-2):
- point1 = d_points[i].loc
- point2 = d_points[i+1].loc
- mpoint = list((Mathutils.Vector(point1) + Mathutils.Vector(point2)) * 0.5)
- mpoint.append(weight2)
- point1.append(weight1)
- temp_points.append(point1)
- temp_points.append(mpoint)
- point2.append(weight1)
- temp_points.append(point2)
- point = d_points[-1].loc
- point.append(weight1)
- temp_points.append(point)
- d_points = temp_points
- else:
- temp_points = []
- for d in d_points:
- d = d.loc
- d.append(weight1)
- temp_points.append(d)
- d_points = temp_points
-
- if not self.closed:
- # generate extended startpoint and endpoint------
- point1 = Mathutils.Vector(d_points[0][:3])
- point2 = Mathutils.Vector(d_points[1][:3])
- startpoint = list(point1 - point2 + point1)
- startpoint.append(weight1)
- point1 = Mathutils.Vector(d_points[-1][:3])
- point2 = Mathutils.Vector(d_points[-2][:3])
- endpoint = list(point1 - point2 + point1)
- endpoint.append(weight1)
- temp_points = []
- temp_points.append(startpoint)
- temp_points.extend(d_points)
- d_points = temp_points
- d_points.append(endpoint)
-
- point = d_points[0]
- curve = pline.appendNurb(point)
- curve.setType(4) #NURBS curve
- for point in d_points[1:]:
- curve.append(point)
- if self.closed:
- curve.flagU = 1 # Set curve cyclic=close
- else:
- curve.flagU = 0 # Set curve not cyclic=open
-
if self.spline: # NURBSplines-----OK-----
#print 'deb:polyline2dCurve.draw self.spline!' #---------------
nurbs_points = []
@@ -1358,21 +1311,6 @@
except AttributeError: pass
#print 'deb: dir(curve):', dir(curve) #----------------
- elif False: #orig self.curved: #--Bezier-curves---OK-------
- #print 'deb:polyline2dCurve.draw self.curved!' #---------------
- curve = pline.appendNurb(BezTriple.New(d_points[0]))
- for p in d_points[1:]:
- curve.append(BezTriple.New(p))
- for point in curve:
- point.handleTypes = [AUTO, AUTO]
- point.radius = 1.0
- if self.closed:
- curve.flagU = 1 # Set curve cyclic=close
- else:
- curve.flagU = 0 # Set curve not cyclic=open
- curve[0].handleTypes = [FREE, ALIGN] #remi--todo-----
- curve[-1].handleTypes = [ALIGN, FREE] #remi--todo-----
-
elif self.curved: #--SPLINE as Bezier-curves---wip------
#print 'deb:polyline2dCurve.draw self.curved!' #---------------
begtangent, endtangent = None, None
@@ -1424,68 +1362,48 @@
for i in xrange(len(d_points)):
point1 = d_points[i]
#point2 = d_points[i+1]
- if False: #-----outdated!- standard calculation ----------------------------------
- if point1.bulge and (i < len(d_points)-2 or self.closed):
- verts, center = calcBulge(point1, point2, arc_res, triples=False)
- if i == 0: curve = pline.appendNurb(BezTriple.New(verts[0]))
- else: curve.append(BezTriple.New(verts[0]))
- curve[-1].handleTypes = [VECT, VECT] #--todo--calculation of bezier-tangents
- curve[-1].radius = 1.0
- for p in verts[1:]:
- curve.append(BezTriple.New(p))
- curve[-1].handleTypes = [AUTO, AUTO]
- curve[-1].radius = 1.0
- else:
- if i == 0: curve = pline.appendNurb(BezTriple.New(point1.loc))
- else: curve.append(BezTriple.New(point1.loc))
- curve[-1].handleTypes = [VECT, VECT] #--todo--calculation of bezier-tangents
- curve[-1].radius = 1.0
+ #----- optimised Bezier-Handles calculation --------------------------------
+ #print 'deb:drawPlineCurve: i:', i #---------
+ if point1.bulge and not (i == len(d_points)-1 and point1.bulge and not self.closed):
+ if i == len(d_points)-1: point2 = d_points[0]
+ else: point2 = d_points[i+1]
- elif True: #----- optimised Bezier-Handles calculation --------------------------------
- #print 'deb:drawPlineCurve: i:', i #---------
- if point1.bulge and not (i == len(d_points)-1 and point1.bulge and not self.closed):
- if i == len(d_points)-1: point2 = d_points[0]
- else: point2 = d_points[i+1]
+ # calculate additional points for bulge
+ VectorTriples = calcBulge(point1, point2, arc_res, triples=True)
- # calculate additional points for bulge
- VectorTriples = calcBulge(point1, point2, arc_res, triples=True)
+ if prevHandleType == FREE:
+ #print 'deb:drawPlineCurve: VectorTriples[0]:', VectorTriples[0] #---------
+ VectorTriples[0][:3] = prevHandleVect
+ #print 'deb:drawPlineCurve: VectorTriples[0]:', VectorTriples[0] #---------
- if prevHandleType == FREE:
- #print 'deb:drawPlineCurve: VectorTriples[0]:', VectorTriples[0] #---------
- VectorTriples[0][:3] = prevHandleVect
- #print 'deb:drawPlineCurve: VectorTriples[0]:', VectorTriples[0] #---------
+ if i == 0: curve = pline.appendNurb(BezTriple.New(VectorTriples[0]))
+ else: curve.append(BezTriple.New(VectorTriples[0]))
+ curve[-1].handleTypes = [prevHandleType, FREE]
+ curve[-1].radius = 1.0
- if i == 0: curve = pline.appendNurb(BezTriple.New(VectorTriples[0]))
- else: curve.append(BezTriple.New(VectorTriples[0]))
- curve[-1].handleTypes = [prevHandleType, FREE]
+ for p in VectorTriples[1:-1]:
+ curve.append(BezTriple.New(p))
+ curve[-1].handleTypes = [FREE, FREE]
curve[-1].radius = 1.0
- for p in VectorTriples[1:-1]:
- curve.append(BezTriple.New(p))
- curve[-1].handleTypes = [FREE, FREE]
- curve[-1].radius = 1.0
-
- prevHandleVect = VectorTriples[-1][:3]
- prevHandleType = FREE
- #print 'deb:drawPlineCurve: prevHandleVect:', prevHandleVect #---------
+ prevHandleVect = VectorTriples[-1][:3]
+ prevHandleType = FREE
+ #print 'deb:drawPlineCurve: prevHandleVect:', prevHandleVect #---------
+ else:
+ #print 'deb:drawPlineCurve: else' #----------
+ if prevHandleType == FREE:
+ VectorTriples = prevHandleVect + list(point1) + list(point1)
+ #print 'deb:drawPlineCurve: VectorTriples:', VectorTriples #---------
+ curve.append(BezTriple.New(VectorTriples))
+ curve[-1].handleTypes = [FREE, VECT]
+ prevHandleType = VECT
+ curve[-1].radius = 1.0
else:
- #print 'deb:drawPlineCurve: else' #----------
- if prevHandleType == FREE:
- VectorTriples = prevHandleVect + list(point1) + list(point1)
- #print 'deb:drawPlineCurve: VectorTriples:', VectorTriples #---------
- curve.append(BezTriple.New(VectorTriples))
- curve[-1].handleTypes = [FREE, VECT]
- prevHandleType = VECT
- curve[-1].radius = 1.0
- else:
- if i == 0: curve = pline.appendNurb(BezTriple.New(point1.loc))
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list