By using the methods provided by the Editor object and the Geometry and Runtime namespaces, you can quickly solve a mathematical problem or locate points in your drawing. Some of the available methods are:
This example calculates a vector between two points and determines the angle from the X-axis.
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Geometry
<CommandMethod("AngleFromXAxis")> _
Public Sub AngleFromXAxis()
Dim pt1 As Point2d = New Point2d(2, 5)
Dim pt2 As Point2d = New Point2d(5, 2)
Application.ShowAlertDialog("Angle from XAxis: " & _
pt1.GetVectorTo(pt2).Angle.ToString())
End Sub
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
[CommandMethod("AngleFromXAxis")]
public static void AngleFromXAxis()
{
Point2d pt1 = new Point2d(2, 5);
Point2d pt2 = new Point2d(5, 2);
Application.ShowAlertDialog("Angle from XAxis: " +
pt1.GetVectorTo(pt2).Angle.ToString());
}
This example calculates a point based on a base point, an angle and distance.
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Geometry
Public Shared Function PolarPoints(ByVal pPt As Point2d, _
ByVal dAng As Double, _
ByVal dDist As Double)
Return New Point2d(pPt.X + dDist * Math.Cos(dAng), _
pPt.Y + dDist * Math.Sin(dAng))
End Function
Public Shared Function PolarPoints(ByVal pPt As Point3d, _
ByVal dAng As Double, _
ByVal dDist As Double)
Return New Point3d(pPt.X + dDist * Math.Cos(dAng), _
pPt.Y + dDist * Math.Sin(dAng), _
pPt.Z)
End Function
<CommandMethod("PolarPoints")> _
Public Sub PolarPoints()
Dim pt1 As Point2d
pt1 = PolarPoints(New Point2d(5, 2), 0.785398, 12)
Application.ShowAlertDialog(vbLf & "PolarPoint: " & _
vbLf & "X = " & pt1.X & _
vbLf & "Y = " & pt1.Y)
Dim pt2 As Point3d
pt2 = PolarPoints(New Point3d(5, 2, 0), 0.785398, 12)
Application.ShowAlertDialog(vbLf & "PolarPoint: " & _
vbLf & "X = " & pt2.X & _
vbLf & "Y = " & pt2.Y & _
vbLf & "Z = " & pt2.Z)
End Sub
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
static Point2d PolarPoints(Point2d pPt, double dAng, double dDist)
{
return new Point2d(pPt.X + dDist * Math.Cos(dAng),
pPt.Y + dDist * Math.Sin(dAng));
}
static Point3d PolarPoints(Point3d pPt, double dAng, double dDist)
{
return new Point3d(pPt.X + dDist * Math.Cos(dAng),
pPt.Y + dDist * Math.Sin(dAng),
pPt.Z);
}
[CommandMethod("PolarPoints")]
public static void PolarPoints()
{
Point2d pt1 = PolarPoints(new Point2d(5, 2), 0.785398, 12);
Application.ShowAlertDialog("\nPolarPoint: " +
"\nX = " + pt1.X +
"\nY = " + pt1.Y);
Point3d pt2 = PolarPoints(new Point3d(5, 2, 0), 0.785398, 12);
Application.ShowAlertDialog("\nPolarPoint: " +
"\nX = " + pt2.X +
"\nY = " + pt2.Y +
"\nZ = " + pt2.Z);
}
Find the distance between two points with the GetDistance method
This example uses the GetDistance method to obtain two points and displays the calculated distance.
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
<CommandMethod("GetDistanceBetweenTwoPoints")> _
Public Sub GetDistanceBetweenTwoPoints()
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim pDblRes As PromptDoubleResult
pDblRes = acDoc.Editor.GetDistance(vbLf & "Pick two points: ")
Application.ShowAlertDialog(vbLf & "Distance between points: " & _
pDblRes.Value.ToString())
End Sub
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
[CommandMethod("GetDistanceBetweenTwoPoints")]
public static void GetDistanceBetweenTwoPoints()
{
Document acDoc = Application.DocumentManager.MdiActiveDocument;
PromptDoubleResult pDblRes;
pDblRes = acDoc.Editor.GetDistance("\nPick two points: ");
Application.ShowAlertDialog("\nDistance between points: " +
pDblRes.Value.ToString());
}