2 Replies Latest reply on Jun 15, 2017 4:37 AM by Andreas Killer

    RotateAboutAxis did not work in SW2017 SP2.0

    Andreas Killer

      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