From bde130821d048c96f3c7141e3bc2e36151a6c8c3 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 5 Jan 2015 19:23:02 -0200 Subject: [PATCH] Draft: Finished ellipse support - fixes #1788 --- src/Mod/Draft/Draft.py | 52 +++++++++++++++++++++++++-------- src/Mod/Draft/DraftGeomUtils.py | 5 ++++ 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 8ae56e1762db..f8b181b1d22a 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1121,8 +1121,8 @@ def makeEllipse(majradius,minradius,placement=None,face=True,support=None): obj.Placement = placement if gui: _ViewProviderDraft(obj.ViewObject) - if not face: - obj.ViewObject.DisplayMode = "Wireframe" + #if not face: + # obj.ViewObject.DisplayMode = "Wireframe" formatObject(obj) select(obj) FreeCAD.ActiveDocument.recompute() @@ -1623,10 +1623,10 @@ def draftify(objectslist,makeblock=False,delete=True): nobj.Shape = w else: nobj = makeWire(w) - if obj.Shape.Faces: - nobj.ViewObject.DisplayMode = "Flat Lines" - else: - nobj.ViewObject.DisplayMode = "Wireframe" + #if obj.Shape.Faces: + # nobj.ViewObject.DisplayMode = "Flat Lines" + #else: + # nobj.ViewObject.DisplayMode = "Wireframe" newobjlist.append(nobj) formatObject(nobj,obj) if delete: @@ -1776,6 +1776,8 @@ def getPath(edges=[],wires=[],pathname=None): svg = getCircle(e) return svg elif len(e.Vertexes) == 1 and isellipse: + #svg = getEllipse(e) + #return svg endpoints = (getProj(c.value((c.LastParameter-\ c.FirstParameter)/2.0)), \ getProj(vs[-1].Point)) @@ -1862,6 +1864,23 @@ def getCircle(edge): svg += ';fill:' + fill + '"' svg += '/>\n' return svg + + def getEllipse(edge): + cen = getProj(edge.Curve.Center) + mir = edge.Curve.MinorRadius + mar = edge.Curve.MajorRadius + svg = '