ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
AKAndreas Killer15/06/2017

I need some help about a simple macro written many years ago, which had worked always perfectly.

The default rotation of SW (using the Up-/Down keys) rotates about the screen X,Y axis, but I want to rotate about the model X,Y or Z axis.
The sense behind the macro is to rotate about the X,Y or Z model axis to turn the model inside ISO or trimetric views.

Below is a simple as possible Test macro, on my system it rotates only about the X axis, regardless which axis vector is given.
And it rotates only one (sometimes 2) times, depends on which view direction is shown in SW before.

My questions:

Can you confirm the behavior on your system?
Any ideas to accomplish the same with an other code?

Andreas.

Sub Test()
  Dim swApp As SldWorks.SldWorks
  Dim swModel As SldWorks.ModelDoc2
  Dim swView As SldWorks.ModelView
  Dim Data, Start As Double, Step As Double, Degree As Double
  Dim nStatus As Long

  Set swApp = Application.SldWorks
  Set swModel = swApp.ActiveDoc
  Set swView = swModel.ActiveView
 
  Data = swModel.GetMassProperties
  If IsEmpty(Data) Then
    ReDim Data(0 To 2)
    Data(0) = 0
    Data(1) = 0
    Data(2) = 0
  End If
  Degree = 90
  'Rotate the model around the Z axis
  swView.RotateAboutAxis Rad(Degree), Data(0), Data(1), Data(2), 0, 0, 1
End Sub

Private Function Pi() As Double
  'Gibt die Zahl Pi zurück
  Pi = Atn(1) * 4
End Function

Private Function Rad(ByVal X As Double) As Double
  'Wandelt Grad in Radiant
  Rad = X * Pi / 180
End Function