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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs