This example shows how to create mathematical circular 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 a reference to System.Windows.Forms. // 5. Start DraftSight. // 6. Press F5. // // Postconditions: // 1. Connects to DraftSight. // 2. Gets the active document. // 3. Creates a mathematical circular Arc. // 4. Gets the point on the mathematical circular Arc // closest to a mathematical point. Click OK to close // the message box. // 5. Sets the radius for the mathematical circular Arc. // 6. Creates another mathematical circular Arc. // 7. Sets the radius for the mathematical circular Arc. //---------------------------------------------------------------- using System; using DraftSight.Interop.dsAutomation; using System.Runtime.InteropServices; using System.Windows.Forms; namespace MathCircArcCSharp { class Program { static void Main() { DraftSight.Interop.dsAutomation.Application dsApp; //Connects to DraftSight application dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application"); if (null == dsApp) { return; } //Aborts any command currently running in DraftSight //to avoid nested commands dsApp.AbortRunningCommand(); //Gets active document Document dsDoc = dsApp.GetActiveDocument(); if (null == dsDoc) { MessageBox.Show("There are no open documents in DraftSight."); return; } MathUtility dsMathUtility = dsApp.GetMathUtility(); //Creates mathematical circular Arc MathPoint dsCenter = dsMathUtility.CreatePoint(3.0, 7.0, 0.0); MathVector dsNormal = dsMathUtility.CreateVector(1.0, 0.0, 0.0); double dsRadius = 2; MathVector RefVector = dsMathUtility.CreateVector(1.0, 0.0, 0.0); MathCircArc dsMathCircArc = dsMathUtility.CreateCircArc(dsCenter, dsNormal, RefVector, dsRadius, 20, 45); //Gets point on mathematical circular Arc //closest to this point MathPoint point = dsMathUtility.CreatePoint(3.0, 7.0, 0.0); MathPoint closestPoint = dsMathCircArc.GetClosestPointTo(point); double X, Y, Z; closestPoint.GetPosition(out X, out Y, out Z); MessageBox.Show("Closest point of (3, 7, 0) is (" + X + ", " + Y + ", " + Z + ")"); //Sets radius of mathematical circular Arc dsMathCircArc.Radius = 6.4; //Creates a mathematical circular Arc defining a Circle //with the specified center, normal, and radius MathPoint center = dsMathUtility.CreatePoint(2.0, 3.1, 0.0); MathVector normal = dsMathUtility.CreateVector(1.0, 0.0, 0.0); double radius = 3.0; MathCircArc circle = dsMathUtility.CreateCircle(center, normal, radius); } } }