diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 55fca80031df..e9051fd70933 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1536,7 +1536,12 @@ def getPath(edges=[],wires=[]): svg += 'L '+ str(v.x) +' '+ str(v.y) + ' ' else: bspline=e.Curve.toBSpline() - if bspline.Degree <= 3 and not bspline.isRational(): + if bspline.Degree > 3 or bspline.isRational(): + try: + bspline=bspline.approximateBSpline(0.05,20, 3,'C0') + except RuntimeError: + print "Debug: unable to approximate bspline" + elif bspline.Degree <= 3 and not bspline.isRational(): for bezierseg in bspline.toBezier(): if bezierseg.Degree>3: #should not happen raise AssertionError