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 += ' '
- svg += '' + obj.ViewObject.Proxy.getNumber(n) + '\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 += ' '
+ svg += '' + obj.ViewObject.Proxy.bubbletexts[n].string.getValues()[0] + '\n'
+ svg += '\n'
+ n += 1
elif getType(obj) == "Space":
"returns an SVG fragment for the text of a space"