From dc8d8fdb44334a8818ac17231d67b565cb65a5ba Mon Sep 17 00:00:00 2001 From: George Shuklin Date: Thu, 13 Dec 2018 17:00:44 +0200 Subject: [PATCH] move getDiscretized and getPattern outside of getSVG() --- src/Mod/Draft/Draft.py | 1 + src/Mod/Draft/getSVG.py | 50 +++++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 16056a36a6..e5c6553e60 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -24,6 +24,7 @@ #*************************************************************************** #from __future__ import division + __title__="FreeCAD Draft Workbench" __author__ = "Yorik van Havre, Werner Mayer, Martin Burbaum, Ken Cline, Dmitry Chigrin, Daniel Falck" __url__ = "http://www.freecadweb.org" diff --git a/src/Mod/Draft/getSVG.py b/src/Mod/Draft/getSVG.py index 8fc630605a..1887ba5413 100644 --- a/src/Mod/Draft/getSVG.py +++ b/src/Mod/Draft/getSVG.py @@ -1,7 +1,7 @@ import FreeCAD, math, sys, os, DraftVecUtils, WorkingPlane import Part, DraftGeomUtils from FreeCAD import Vector -from Draft import getType, getrgb +from Draft import getType, getrgb, svgpatterns def getLineStyle(linestyle): @@ -43,6 +43,29 @@ def getProj(vec, plane): return Vector(lx,ly,0) +def getDiscretized(edge, plane): + ml = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft").GetFloat("svgDiscretization",10.0) + if ml == 0: + ml = 10 + d = int(edge.Length/ml) + if d == 0: + d = 1 + edata = "" + for i in range(d+1): + v = getProj(edge.valueAt(edge.FirstParameter+((float(i)/d)*(edge.LastParameter-edge.FirstParameter))), plane) + if not edata: + edata += 'M ' + str(v.x) +' '+ str(v.y) + ' ' + else: + edata += 'L ' + str(v.x) +' '+ str(v.y) + ' ' + return edata + + +def getPattern(pat): + if pat in svgpatterns(): + return svgpatterns()[pat][0] + return '' + + def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direction=None,linestyle=None,color=None,linespacing=None,techdraw=False,rotation=0): '''getSVG(object,[scale], [linewidth],[fontsize],[fillstyle],[direction],[linestyle],[color],[linespacing]): returns a string containing a SVG representation of the given object, @@ -88,27 +111,6 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct stroke = getrgb(obj.ViewObject.LineColor) - def getDiscretized(edge): - ml = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft").GetFloat("svgDiscretization",10.0) - if ml == 0: - ml = 10 - d = int(edge.Length/ml) - if d == 0: - d = 1 - edata = "" - for i in range(d+1): - v = getProj(edge.valueAt(edge.FirstParameter+((float(i)/d)*(edge.LastParameter-edge.FirstParameter))), plane) - if not edata: - edata += 'M ' + str(v.x) +' '+ str(v.y) + ' ' - else: - edata += 'L ' + str(v.x) +' '+ str(v.y) + ' ' - return edata - - def getPattern(pat): - if pat in svgpatterns(): - return svgpatterns()[pat][0] - return '' - def getPath(edges=[],wires=[],pathname=None): import Part,DraftGeomUtils svg = "