Create Mathematical Circular Arcs Example (VB.NET)
This example shows how to create mathematical circular Arcs.
'--------------------------------------------------------------
' Preconditions:
' 1. Create a VB.NET Windows console project.
' 2. Copy and paste this example into the VB.NET 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 a mathematical circular Arc.
' 7. Sets the radius for the mathematical circular Arc.
'----------------------------------------------------------------
Imports System
Imports DraftSight.Interop.dsAutomation
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim dsApp As DraftSight.Interop.dsAutomation.Application
'Connects to DraftSight application
dsApp = DirectCast(Marshal.GetActiveObject("DraftSight.Application"), DraftSight.Interop.dsAutomation.Application)
If dsApp Is Nothing Then
Return
End If
'Aborts any command currently running in DraftSight
'to avoid nested commands
dsApp.AbortRunningCommand()
'Gets active document
Dim dsDoc As Document = dsApp.GetActiveDocument()
If dsDoc Is Nothing Then
MessageBox.Show("There are no open documents in DraftSight.")
Return
End If
Dim dsMathUtility As MathUtility = dsApp.GetMathUtility()
'Creates mathematical circular Arc
Dim dsCenter As MathPoint = dsMathUtility.CreatePoint(3.0, 7.0, 0.0)
Dim dsNormal As MathVector = dsMathUtility.CreateVector(1.0, 0.0, 0.0)
Dim dsRadius As Double = 2
Dim RefVector As MathVector = dsMathUtility.CreateVector(1.0, 0.0, 0.0)
Dim dsMathCircArc As MathCircArc = dsMathUtility.CreateCircArc(dsCenter, dsNormal, RefVector, dsRadius, 20, 45)
'Gets point on mathematical circular Arc
'closest to this point
Dim point As MathPoint = dsMathUtility.CreatePoint(3.0, 7.0, 0.0)
Dim closestPoint As MathPoint = dsMathCircArc.GetClosestPointTo(point)
Dim X As Double, Y As Double, Z As Double
closestPoint.GetPosition(X, Y, Z)
MessageBox.Show("Closest point of (3, 7, 0) is (" + CType(X, String) + ", " + CType(Y, String) + ", " + CType(Z, String) + ")")
'Sets radius of mathematical circular Arc
dsMathCircArc.Radius = 6.4
'Creates mathematical circular Arc defining a Circle
'using the specified center, normal, and radius
Dim center As MathPoint = dsMathUtility.CreatePoint(2.0, 3.1, 0.0)
Dim normal As MathVector = dsMathUtility.CreateVector(1.0, 0.0, 0.0)
Dim radius As Double = 3.0
Dim circle As MathCircArc = dsMathUtility.CreateCircle(center, normal, radius)
End Sub
End Module