Fix dxf arc export for some partial circles (#455)

* Fix dxf arc export for some partial circles

* Fix dxf export formatting, add test

* Black related update

Co-authored-by: Scott Nagy <i@sna.gy>
Co-authored-by: Adam Urbańczyk <adam-urbanczyk@users.noreply.github.com>
This commit is contained in:
Scott Nagy
2020-09-27 06:33:59 -07:00
committed by GitHub
parent da07216688
commit c819dfca48
2 changed files with 18 additions and 7 deletions

View File

@ -37,8 +37,8 @@ def _dxf_circle(e: Edge, msp: ezdxf.layouts.Modelspace, plane: Plane):
a1 = RAD2DEG * (geom.FirstParameter() - phi)
a2 = RAD2DEG * (geom.LastParameter() - phi)
else:
a1 = -RAD2DEG * (geom.LastParameter() + phi)
a2 = -RAD2DEG * (geom.FirstParameter() + phi)
a1 = -RAD2DEG * (geom.LastParameter() - phi) + 180
a2 = -RAD2DEG * (geom.FirstParameter() - phi) + 180
if e.IsClosed():
msp.add_circle((c.X(), c.Y(), c.Z()), r)

View File

@ -116,6 +116,17 @@ class TestExporters(BaseTest):
self.assertAlmostEqual(s3.val().Area(), s3_i.val().Area(), 6)
self.assertAlmostEqual(s3.edges().size(), s3_i.edges().size())
cyl = Workplane("XY").circle(22).extrude(10, both=True).translate((-50, 0, 0))
s4 = Workplane("XY").box(80, 60, 5).cut(cyl).section()
exporters.dxf.exportDXF(s4, "res4.dxf")
s4_i = importers.importDXF("res4.dxf")
self.assertAlmostEqual(s4.val().Area(), s4_i.val().Area(), 6)
self.assertAlmostEqual(s4.edges().size(), s4_i.edges().size())
def testTypeHandling(self):
with self.assertRaises(ValueError):