Sketch Display Entities
Description
This sample demonstrates the query functionality available for sketch entities.Code Samples
To use this sample, select a sketch entity that you want to query. Run the program and it will display information about the selected entity in the immediate window.
Public Sub SketchEntities() ' Get the first item in the select set. This assumes ' something is selected and that it's a sketch entity. Dim oSketchEnt As SketchEntity Set oSketchEnt = ThisApplication.ActiveDocument.SelectSet.Item(1) ' Set a reference to the transient geometry object. Dim oTransGeom As TransientGeometry Set oTransGeom = ThisApplication.TransientGeometry ' Display type specific information. Select Case oSketchEnt.Type Case kSketchArcObject Dim oArc As SketchArc Set oArc = oSketchEnt Debug.Print "Sketch Arc selected." Debug.Print " Center Point: " & oArc.CenterSketchPoint.Geometry.X & _ ", " & oArc.CenterSketchPoint.Geometry.Y Debug.Print " Start Point: " & oArc.StartSketchPoint.Geometry.X & _ ", " & oArc.StartSketchPoint.Geometry.Y Debug.Print " End Point: " & oArc.EndSketchPoint.Geometry.X & _ ", " & oArc.EndSketchPoint.Geometry.Y Debug.Print " Start Angle: " & oArc.StartAngle Debug.Print " Sweep Angle: " & oArc.SweepAngle Debug.Print " Radius: " & oArc.Radius Debug.Print " Length: " & oArc.Length Case kSketchCircleObject Dim oCircle As SketchCircle Set oCircle = oSketchEnt Debug.Print "Sketch Circle selected." Debug.Print " Center Point: " & oCircle.CenterSketchPoint.Geometry.X & _ ", " & oCircle.CenterSketchPoint.Geometry.Y Debug.Print " Radius: " & oCircle.Radius Debug.Print " Area: " & oCircle.Area ' Change the radius oCircle.Radius = oCircle.Radius * 1.5 Case kSketchEllipseObject Dim oEllipse As SketchEllipse Set oEllipse = oSketchEnt Debug.Print "Sketch Ellipse selected." Debug.Print " Center Point: " & oEllipse.CenterSketchPoint.Geometry.X & _ ", " & oEllipse.CenterSketchPoint.Geometry.Y Debug.Print " Major Axis Vecotr: " & oEllipse.MajorAxisVector.X & _ ", " & oEllipse.MajorAxisVector.Y Debug.Print " Major Radius: " & oEllipse.MajorRadius Debug.Print " Minor Radius: " & oEllipse.MinorRadius Debug.Print " Area: " & oEllipse.Area ' Modify the ellipse oEllipse.MajorAxisVector = oTransGeom.CreateUnitVector2d(1, 1) oEllipse.MajorRadius = oEllipse.MajorRadius / 2 oEllipse.MinorRadius = oEllipse.MinorRadius * 2 Case kSketchEllipticalArcObject Dim oEllipticalArc As SketchEllipticalArc Set oEllipticalArc = oSketchEnt Debug.Print "Sketch Elliptical Arc selected." Debug.Print " Center Point: " & oEllipticalArc.CenterSketchPoint.Geometry.X & _ ", " & oEllipticalArc.CenterSketchPoint.Geometry.Y Debug.Print " Major Axis Vector: " & oEllipticalArc.MajorAxisVector.X & _ ", " & oEllipticalArc.MajorAxisVector.Y Debug.Print " Major Radius: " & oEllipticalArc.MajorRadius Debug.Print " Minor Radius: " & oEllipticalArc.MinorRadius Debug.Print " Start Angle: " & oEllipticalArc.StartAngle Debug.Print " Sweep Angle: " & oEllipticalArc.SweepAngle Debug.Print " Length: " & oEllipticalArc.Length ' Modify the elliptical arc. oEllipticalArc.MajorAxisVector = oTransGeom.CreateUnitVector2d(1, 1) oEllipticalArc.MajorRadius = oEllipticalArc.MajorRadius / 2 oEllipticalArc.MinorRadius = oEllipticalArc.MinorRadius * 2 Case kSketchLineObject Dim oLine As SketchLine Set oLine = oSketchEnt Debug.Print "Sketch Line selected." Debug.Print " Start Point: " & oLine.StartSketchPoint.Geometry.X & _ ", " & oLine.StartSketchPoint.Geometry.Y Debug.Print " End Point: " & oLine.EndSketchPoint.Geometry.X & _ ", " & oLine.EndSketchPoint.Geometry.Y Debug.Print " Length: " & oLine.Length Debug.Print " Centerline: " & oLine.Centerline ' Toggle the centerline property. If oLine.Centerline Then oLine.Centerline = False Else oLine.Centerline = True End If Case kSketchPointObject Dim oPoint As SketchPoint Set oPoint = oSketchEnt Debug.Print "Sketch Point selected." Debug.Print " Position: " & oPoint.Geometry.X & _ ", " & oPoint.Geometry.Y Debug.Print " Hole Center: " & oPoint.HoleCenter ' Toggle the hole center property. If oPoint.HoleCenter Then oPoint.HoleCenter = False Else oPoint.HoleCenter = True End If Case kSketchSplineObject Dim oSpline As SketchSpline Set oSpline = oSketchEnt Debug.Print "Sketch Spline selected." Debug.Print " Length: " & oSpline.Length Debug.Print " Closed: " & oSpline.Closed Debug.Print " Fit Points (" & oSpline.FitPointCount & ")" Dim i As Long For i = 1 To oSpline.FitPointCount Debug.Print " Fit Point " & i & ": " & oSpline.FitPoint(i).Geometry.X & _ ", " & oSpline.FitPoint(i).Geometry.Y Next End Select ' Call the generic sketch entity methods. Debug.Print " Constraint count: " & oSketchEnt.Constraints.Count Debug.Print " Construction: " & oSketchEnt.Construction Debug.Print " Range: (" & oSketchEnt.RangeBox.MinPoint.X & ", " & _ oSketchEnt.RangeBox.MinPoint.Y & ") - (" & _ oSketchEnt.RangeBox.MaxPoint.X & ", " & _ oSketchEnt.RangeBox.MaxPoint.Y & ")" Debug.Print " Reference: " & oSketchEnt.Reference If oSketchEnt.Reference Then Debug.Print " Referenced Entity: " & TypeName(oSketchEnt.ReferencedEntity) End If End Sub