The transformation matrix for **ModelToSketchSpace** can be obtained from the **PlanarSketch** object. It wouldn't be too difficult to calculate it ourselves, but a combination of the **OriginPointGeometry**, **PlanarEntityGeometry**, **AxisEntityGeometry**, and **AxisIsX** properties give us everything we need to compute this matrix.

The function shown below accepts a **PlanarSketch** object as an argument and returns Matrix object which is required for Model to Sketch Space transformation. Try go through the code reading the comments.

Public Function createModelToSkecthMatrix( _

ByVal sketch As PlanarSketch) As Matrix

' get the sketch origin point

Dim origin As Point = sketch.OriginPointGeometry

' and the sketch axis

Dim lineAxis As Line = sketch.AxisEntityGeometry

' to get the sketch direction

Dim direction As UnitVector = lineAxis.Direction

' now the sketch plane

Dim plane As Plane = sketch.PlanarEntityGeometry

' to then get the sketch normal (unit vector)

Dim zAxisUnit As UnitVector = plane.Normal

' and get the vector

Dim zAxis As Vector = zAxisUnit.AsVector

' finally get the X and Y axis according

' to the sketch property

Dim xAxis As Vector

Dim yAxis As Vector

If (sketch.AxisIsX) Then

' X axis along the sketch direction

xAxis = direction.AsVector

' and the Y axis as the cross product X-Z

yAxis = zAxis.CrossProduct(xAxis)

Else

' or the Y axis as the sketch direction

yAxis = direction.AsVector

' and the X axis as the cross product Y-Z

xAxis = yAxis.CrossProduct(zAxis)

End If

' create a blank matrix

Dim coordMatrix As Matrix = sketch.Application. _

TransientGeometry.CreateMatrix

' finally set the matrix as a coordinate

' system matrix using the calculate data

coordMatrix.SetCoordinateSystem( _

origin, xAxis, yAxis, zAxis)

Return coordMatrix

End Function