Macro Ellipse-Center+2Points
| Description | 
|---|
| Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius Macro version: 02.00 Last modified: 2019-07-29 FreeCAD version: All Download: ToolBar Icon Author: Eriossoltero | 
| Author | 
| Eriossoltero | 
| Download | 
| ToolBar Icon | 
| Links | 
| Macros recipes How to install macros How to customize toolbars | 
| Macro Version | 
| 02.00 | 
| Date last modified | 
| 2019-07-29 | 
| FreeCAD Version(s) | 
| All | 
| Default shortcut | 
| None | 
| See also | 
| None | 
Description
Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius
Latest
The latest version of the macro is to be found at EllipseCenter2Points.FCMacro but the easiest way to install this macro is through the Addon Manager.
Script
Macro_EllipseCenter2Points.FCMacro
# Macro Begin: Ellipse-Center+2Points.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++
# http://freecad-tutorial.blogspot.com/2011/12/engine-9-poly-v-belt.html
# https://www.freecadweb.org/wiki/User:Eriossoltero
# 13/03/2012, 29/07/2019
import Part, FreeCAD, math, PartGui, FreeCADGui
from FreeCAD import Base
# get the selected objects, with first selection for the trajectory and second for the section
# Adapted from:
# Macro Begin: Ellipse-Center+2Points.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++
# http://freecad-tutorial.blogspot.com/2011/12/engine-9-poly-v-belt.html
import Part, FreeCAD, math, PartGui, FreeCADGui
from FreeCAD import Base
# get the selected objects, with first selection for the trajectory and second for the section
# Adapted from:
# http://freecad-tutorial.blogspot.com/2011/12/engine-9-poly-v-belt.html
s = FreeCADGui.Selection.getSelection()
try:
    sel1=s[0].Shape
    sel2=s[1].Shape
    sel3=s[2].Shape
    pt_center = sel1.Point
    pt_radmay = sel2.Point
    pt_radmen = sel3.Point
    
    # create Part object in the current document
    myObject=App.ActiveDocument.addObject("Part::Feature","Ellipse")
    
    # create a shape and assign it to the current document
    ellipse = Part.Ellipse(pt_radmay, pt_radmen, pt_center)
    myObject.Shape = ellipse.toShape()
    # Macro End: Ellipse-Center+2Points.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++
except:
    print( "Wrong selection")
    print( "First:centre, Second:major radius and Third:minor radius")


