# Construct Ellipses and Elliptical Arcs Example (C#)

This example shows how to construct Ellipses and elliptical Arcs.

    //--------------------------------------------------------------
    // Preconditions:
    // 1. Create a C# Windows console project.
    // 2. Copy and paste this example into the C# IDE.
    // 3. Add a reference to:
    //    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
    // 4. Add references to System and System.Windows.Forms.
    // 5. Start DraftSight and open a document.
    // 6. Start debugging the project.
    //
    // Postconditions: A message box pops up when an Ellipse or
    // elliptical Arc is inserted in the drawing document.
    //----------------------------------------------------------------
    using DraftSight.Interop.dsAutomation;
    using System;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;

    static class Module1
    {

        public static void Main()
    	{
    		DraftSight.Interop.dsAutomation.Application dsApp;
    		Document dsDoc = default(Document);
    		Model dsModel = default(Model);
    		SketchManager dsSketchManager = default(SketchManager);
    		EllipseArc dsEllipseRotation = default(EllipseArc);
    		EllipseArc dsEllipseDistance = default(EllipseArc);
    		EllipseArc dsEllipseArcDistance = default(EllipseArc);
    		EllipseArc dsEllipseArcRotation = default(EllipseArc);
    		double x1 = 0;
    		double y1 = 0;
    		double x2 = 0;
    		double y2 = 0;
    		double rotation = 0;
    		double distanceToOtherAxis = 0;
    		double startAngle = 0;
    		double endAngle = 0;

    		//Connect to DraftSight
                    dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
    		dsApp.AbortRunningCommand(); // abort any command currently running in DraftSight to avoid nested commands

    		//Get active document
    		dsDoc = dsApp.GetActiveDocument();

    		if (dsDoc != null)
                    {
    			//Get model space
    			dsModel = dsDoc.GetModel();

    			//Get Sketch Manager
    			dsSketchManager = dsModel.GetSketchManager();

    			//Ellipse rotation parameters (rotation parameter should be in radians)
    			x1 = 0.0;
    			y1 = 0.0;
    			x2 = 10.0;
    			y2 = 0.0;
    			rotation = Math.PI / 4;      //45 degrees in radians
    			//Draw an ellipse
    			dsEllipseRotation = dsSketchManager.InsertEllipseRotation(x1, y1, x2, y2, rotation);

    			//Ellipse distance parameters
    			x1 = 0.0;
    			y1 = 0.0;
    			x2 = 10.0;
    			y2 = 0.0;
    			distanceToOtherAxis = 3.0;
    			//Draw an ellipse
    			dsEllipseDistance = dsSketchManager.InsertEllipseDistanceToOtherAxis(x1, y1, x2, y2, distanceToOtherAxis);

    			//Elliptical Arc distance parameters (start and end angle parameters should be in radians)
    			x1 = 0.0;
    			y1 = 0.0;
    			x2 = 10.0;
    			y2 = 0.0;
    			distanceToOtherAxis = 2.0;
    			startAngle = 0.0;
    			endAngle = Math.PI;  //180 degrees in radians
    			//Draw an elliptical Arc
    			dsEllipseArcDistance = dsSketchManager.InsertEllipseArcDistanceToOtherAxis(x1, y1, x2, y2, distanceToOtherAxis, startAngle, endAngle);

    			//Ellipitcal Arc rotation parameters (rotation, start, and end angle parameters should be in radians)
    			x1 = 0.0;
    			y1 = 0.0;
    			x2 = 10.0;
    			y2 = 0.0;
    			rotation = Math.PI / 4;   //45 degrees in radians
    			startAngle = 0.0;
    			endAngle = 3.14159265358979;
    			//180 degrees in radians
    			//Draw an elliptical Arc
    			dsEllipseArcRotation = dsSketchManager.InsertEllipseArcRotation(x1, y1, x2, y2, rotation, startAngle, endAngle);

    			if (dsEllipseRotation != null)
                            {
    				MessageBox.Show("An ellipse using the specified axes end points and the angle of rotation was added to drawing.");
    			}

    			if (dsEllipseDistance != null)
                            {
    				MessageBox.Show("An ellipse using the specified axes end points and radius of the perpendicular axis was added to drawing.");
    			}

    			if (dsEllipseArcDistance != null)
                            {
    				MessageBox.Show("An elliptical Arc using the specified axes end points and radius of the perpendicular axis was added to drawing.");
    			}

    			if (dsEllipseArcRotation != null)
                            {
    				MessageBox.Show("An elliptical Arc using the specified axes end points, angle of rotation, and start and end angles was added to drawing.");
    			}

    		}
                    else
                    {
    			MessageBox.Show("There are no open documents in DraftSight.");

    		}

    	}

    }