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.");
}
}
}