diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 23ab95ad..fbdd9486 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -9,6 +9,8 @@ import io from cadquery import * from cadquery import exporters, importers from tests import BaseTest +from OCP.GeomConvert import GeomConvert +from OCP.BRepBuilderAPI import BRepBuilderAPI_MakeEdge class TestExporters(BaseTest): @@ -168,6 +170,26 @@ class TestExporters(BaseTest): self.assertAlmostEqual(s4.val().Area(), s4_i.val().Area(), 6) self.assertAlmostEqual(s4.edges().size(), s4_i.edges().size()) + # test periodic spline + w = cq.Workplane().spline([(1, 1), (2, 2), (3, 2), (4, 1)], periodic=True) + exporters.dxf.exportDXF(w, "res4.dxf") + + w_i = importers.importDXF("res4.dxf") + + self.assertAlmostEqual(w.val().Length(), w_i.val().Length(), 6) + + # test rational spline + c = Edge.makeCircle(1) + adaptor = c._geomAdaptor() + curve = GeomConvert.CurveToBSplineCurve_s(adaptor.Curve().Curve()) + + e = Workplane().add(Edge(BRepBuilderAPI_MakeEdge(curve).Shape())) + exporters.dxf.exportDXF(w, "res5.dxf") + + e_i = importers.importDXF("res5.dxf") + + self.assertAlmostEqual(e.val().Length(), e_i.val().Length(), 6) + def testTypeHandling(self): with self.assertRaises(ValueError):