Skip to main content

Pan model views with screen pixels using SOLIDWORKS API

Model View Panning{ width=350 }

This example demonstrates how to move the view (pan) by specifying the offset in X and Y coordinates of the screen (pixels). Macro transforms the offset into the model view 3D space and updates the view positions.

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swView As SldWorks.ModelView

Sub main()

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swView = swModel.ActiveView

Dim swMathUtils As SldWorks.MathUtility
Set swMathUtils = swApp.GetMathUtility

Dim dVec(2) As Double
dVec(0) = 100
dVec(1) = 0
dVec(2) = 0

Dim swVector As SldWorks.MathVector
Set swVector = swMathUtils.CreateVector(dVec)

Dim swViewToScreenTransform As SldWorks.MathTransform
Set swViewToScreenTransform = swView.Transform

Dim swScreenToViewTransform As SldWorks.MathTransform
Set swScreenToViewTransform = swViewToScreenTransform.Inverse

Dim swDestVec As SldWorks.MathVector
Set swDestVec = swVector.MultiplyTransform(swScreenToViewTransform)

Set swDestVec = swDestVec.MultiplyTransform(swView.Orientation3)

Set swDestVec = swDestVec.Scale(swView.Scale2)

Dim swTranslateVec As SldWorks.MathVector
Set swTranslateVec = swView.Translation3

Set swTranslateVec = swTranslateVec.Add(swDestVec)

swView.Translation3 = swTranslateVec

swView.GraphicsRedraw Nothing

End Sub