AnsweredAssumed Answered

Help with modifying Macro, open part/assembly, set diametric, zoom to fit, set wireframe, rotate part, save as png

Question asked by Francisco Martínez on Jul 9, 2018
Latest reply on Jul 13, 2018 by Francisco Martínez



I am trying to modify a macro to complete a lengthy task on 3000 files. What I am trying to accomplish is to open a part or assembly( might use #task to batch)

set to diametric view, zoom to fit, set wire frame view, rotate part, force rebuild, then last is save as png.

I am getting a compile error right now with the codes I have put together.


I would appreciate any help getting this to work, I am definitely lacking training on API  SW2017 sp5


Here are my codes


Option Explicit

    Dim swApp                   As SldWorks.SldWorks

    Dim swModel                 As SldWorks.ModelDoc2

    Dim vConfNameArr            As Variant

    Dim sConfigName             As String

    Dim sPath                   As String

    Dim i                       As Long

    Dim bRebuild                As Boolean

    Dim bRet                    As Boolean

Sub Main()


    Set swApp = CreateObject("SldWorks.Application")

    Set swModel = swApp.ActiveDoc


    If swModel Is Nothing Then

    swApp.SendMsgToUser2 "Please open a PART file!", swMbWarning, swMbOk

    Exit Sub

    End If



   Set swModelView = swModel.ActiveView

   Part.ShowNamedView2 "*Dimetric", 9



   swModelView.RollBy (Degrees2Radians(-90))                                 ' Roll the model view by the specified angle





    bRebuild = swModel.ForceRebuild3(False)                                 'Rebuild the current part



    sPath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\"))   'Get the path



    swModel.SaveAs (sPath & ".png")                           'Save as .png







End Sub





this is the module for rotating parts


Function Degrees2Radians(ByVal DegVal As Double) As Double



     Dim Pi As Double



     Pi = 3.14159265359



     Degrees2Radians = DegVal * 180 / Pi