Create a 3D sketch dimension
Description
This sample demonstrates the creation of a 3d sketch line and a dimension between the start and the end points of the line.Code Samples
To run this sample you must have a 3D sketch active.
Public Sub Create3DSketchDimension() ' Check to make sure a 3d sketch is open. If Not Typeof ThisApplication.ActiveEditObject Is Sketch3D Then MsgBox "A 3d sketch must be active." Exit Sub End If ' Set a reference to the active sketch. Dim oSketch As Sketch3D Set oSketch = ThisApplication.ActiveEditObject ' Set a reference to the transient geometry collection. Dim oTransGeom As TransientGeometry Set oTransGeom = ThisApplication.TransientGeometry ' Create a sketch line Dim oSketchLine As SketchLine3D Set oSketchLine = oSketch.SketchLines3D.AddByTwoPoints(oTransGeom.CreatePoint(5, 5, 0), oTransGeom.CreatePoint(10, 10, 20)) ' Create an object collection and add the end points. Dim oColl As ObjectCollection Set oColl = ThisApplication.TransientObjects.CreateObjectCollection oColl.Add oSketchLine.StartSketchPoint oColl.Add oSketchLine.EndSketchPoint ' The text point for the dimension needs to be on a plane ' that Inventor internally computes based on the sketch ' entities being dimensioned. Get this plane. Dim oDimPlane As Plane Set oDimPlane = oSketch.DimensionConstraints3D.GetDimensionPlane(oColl) ' Get the normal of the plane Dim oPlaneNormal As UnitVector Set oPlaneNormal = oDimPlane.Normal ' Get the sketch line direction Dim oLineDir As UnitVector Set oLineDir = oSketchLine.Geometry.Direction ' Get the direction in which to offset the text point. ' (This should be perpendicular to the plane normal ' and the line direction). Dim oOffsetDir As UnitVector Set oOffsetDir = oPlaneNormal.CrossProduct(oLineDir) ' Get the midpoint of the sketch line Dim oMidPoint As Point Set oMidPoint = oSketchLine.Geometry.MidPoint ' Offset the midpoint from the line by a distance. Dim oOffsetPoint As Point Set oOffsetPoint = oMidPoint Call oOffsetPoint.TranslateBy(oOffsetDir.AsVector) ' Create the dimension. Dim oTwoPointDim As TwoPointDistanceDimConstraint3D Set oTwoPointDim = oSketch.DimensionConstraints3D.AddTwoPointDistance(oSketchLine.StartSketchPoint, oSketchLine.EndSketchPoint, oOffsetPoint) ' Make sure that the dimension text was placed at the specified point. If oOffsetPoint.IsEqualTo(oTwoPointDim.TextPoint) Then MsgBox "Dimension text placed at specified point." End If End Sub