Related PR: https://github.com/FreeCAD/FreeCAD/pull/7670
Provisional code:
Code: Select all
import Draft
import Part
from FreeCAD import Vector
import unittest
operation = "Draft Offset: Closed wire with reversed edge"
# _msg(" Test '{}'".format(operation))
a = Vector(0, 0, 0)
b = Vector(10, 0, 0)
c = Vector(10, 4, 0)
d = Vector(0, 4, 0)
edges = [Part.makeLine(a, b),
Part.makeLine(b, c),
Part.makeLine(c, d),
Part.makeLine(a, d)]
wire = Part.Wire(edges)
obj = App.ActiveDocument.addObject("Part::Feature")
obj.Shape = wire
offset = Vector(0, -1, 0)
new = Draft.offset(obj, offset, copy=True)
App.ActiveDocument.recompute()
unittest.TestCase().assertTrue(len(new.Points) == 4, "'{}' failed".format(operation))
#######################
import Draft
import Part
from FreeCAD import Vector
import unittest
operation = "Draft Offset: Rectangle with face"
# _msg(" Test '{}'".format(operation))
rect = Draft.make_rectangle(10, 4)
rect.MakeFace = True
App.ActiveDocument.recompute()
offset = Vector(0, -1, 0)
new = Draft.offset(rect, offset, copy=True)
App.ActiveDocument.recompute()
new_is_ok = (new.Shape.CenterOfGravity == Vector(5, 2, 0)
and new.Length == 12
and new.Height == 6)
unittest.TestCase().assertTrue(new_is_ok, "'{}' failed".format(operation))