Merge pull request #4341 from hyarion/feature-error-handling-get_svg

[0.19] [Draft] Add better error message in get_svg for direction
This commit is contained in:
Yorik van Havre
2021-02-08 16:08:18 +01:00
committed by GitHub
2 changed files with 24 additions and 0 deletions

View File

@@ -468,6 +468,8 @@ def get_svg(obj,
plane.alignToPointAndAxis_SVG(App.Vector(0, 0, 0),
direction.negative().negative(),
0)
else:
raise ValueError("'direction' cannot be: Vector(0, 0, 0)")
elif isinstance(direction, WorkingPlane.plane):
plane = direction

View File

@@ -87,6 +87,28 @@ class DraftSVG(unittest.TestCase):
obj = Draft.export_svg(out_file)
self.assertTrue(obj, "'{}' failed".format(operation))
def test_get_svg_from_arch_space_with_zero_vector(self):
"""Try to get a svg string from an Arch Space with a zero-vector as direction."""
import Part
import Arch
import Draft
sb = Part.makeBox(1,1,1)
b = App.ActiveDocument.addObject('Part::Feature','Box')
b.Shape = sb
s = Arch.makeSpace(b)
App.ActiveDocument.recompute()
try:
Draft.get_svg(s, direction=App.Vector(0,0,0))
except AttributeError as err:
self.fail("Cryptic exception thrown: {}".format(err))
except ValueError as err:
App.Console.PrintLog("Exception thrown, OK: {}".format(err))
else:
self.fail("no exception thrown")
def tearDown(self):
"""Finish the test.