From 94dd07297dadc0a786cc04055a3a528ddca1011a Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 23 Dec 2015 11:55:34 -0200 Subject: [PATCH] Draft: Fixed display of Arch axes on Drawing views --- src/Mod/Draft/Draft.py | 48 +++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 287030e88..49b32ce5e 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -2094,31 +2094,45 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct elif getType(obj) == "Axis": "returns the SVG representation of an Arch Axis system" + vobj = obj.ViewObject lorig = getLineStyle() fill = 'none' invpl = obj.Placement.inverse() + rad = vobj.BubbleSize.Value/2 n = 0 for e in obj.Shape.Edges: lstyle = lorig svg += getPath([e]) - p1 = invpl.multVec(e.Vertexes[0].Point) - p2 = invpl.multVec(e.Vertexes[1].Point) - dv = p2.sub(p1) - dv.normalize() - rad = obj.ViewObject.BubbleSize - center = p2.add(dv.scale(rad,rad,rad)) lstyle = "none" - svg += getCircle(Part.makeCircle(rad,center)) - svg += '\n' - svg += '\n' - n += 1 + pos = ["Start"] + if hasattr(vobj,"BubblePosition"): + if vobj.BubblePosition == "Both": + pos = ["Start","End"] + else: + pos = [vobj.BubblePosition] + for p in pos: + if p == "Start": + p1 = invpl.multVec(e.Vertexes[0].Point) + p2 = invpl.multVec(e.Vertexes[1].Point) + else: + p1 = invpl.multVec(e.Vertexes[1].Point) + p2 = invpl.multVec(e.Vertexes[0].Point) + dv = p2.sub(p1) + dv.normalize() + center = p2.add(dv.scale(rad,rad,rad)) + svg += getCircle(Part.makeCircle(rad,center)) + if hasattr(vobj.Proxy,"bubbletexts"): + if len (vobj.Proxy.bubbletexts) >= n: + svg += '\n' + svg += '\n' + n += 1 elif getType(obj) == "Space": "returns an SVG fragment for the text of a space"