This website uses cookies to ensure you get the best experience on our website. By using our website you agree on the following Cookie Policy, Privacy Policy, and Terms Of Use
Const DEFAULT_VIEWZOOMTOFIT AsBoolean = TrueConst DEFAULT_REBUILD AsBoolean = TrueConst DEFAULT_HIDE_ALL_TYPES AsBoolean = TrueConst ARG_VIEWZOOMTOFIT AsString = "-zoomtofit"Const ARG_REBUILD AsString = "-rebuild"Const ARG_HIDE_ALL_TYPES AsString = "-hidealltypes"Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swApp.ActiveDoc
IfNot swModel IsNothingThenDim vArgs AsVariant
vArgs = GetArguments()
If IsEmpty(vArgs) Then
Err.Raise vbError, "", "Arguments are empty"EndIfIf ContainsArguments(vArgs, ARG_VIEWZOOMTOFIT) Then
swModel.ShowNamedView2 "", swStandardViews_e.swIsometricView
swModel.ViewZoomtofit2
EndIfIf ContainsArguments(vArgs, ARG_HIDE_ALL_TYPES) Then
swModel.SetUserPreferenceToggle swUserPreferenceToggle_e.swViewDisplayHideAllTypes, TrueEndIfIf ContainsArguments(vArgs, ARG_REBUILD) Then
swModel.ForceRebuild3 FalseDim isSw2017OrNewer AsBoolean
isSw2017OrNewer = (CInt(Split(swApp.RevisionNumber(), ".")(0))) >= 25
If isSw2017OrNewer Then
swModel.Extension.ForceRebuildAll
EndIfEndIfElse
Err.Raise vbError, "", "No active model"EndIfEndSubFunction GetArguments() AsVariantDim vArgs AsVariantOnErrorGoTo catch_
try_:
Dim macroRunner AsObjectSet macroRunner = CreateObject("CadPlus.MacroRunner.Sw")
Dim param AsObjectSet param = macroRunner.PopParameter(swApp)
vArgs = param.Get("Args")
If IsEmpty(vArgs) Then
Err.Raise vbError, "", "No arguments specified"EndIfGoTo finally_
catch_:
Dim sArgs() AsStringDim isInit AsBoolean
isInit = FalseIf DEFAULT_REBUILD ThenIfNot isInit ThenReDim sArgs(0)
isInit = TrueElseReDimPreserve sArgs(UBound(sArgs) + 1)
EndIf
sArgs(UBound(sArgs)) = ARG_REBUILD
EndIfIf DEFAULT_VIEWZOOMTOFIT ThenIfNot isInit ThenReDim sArgs(0)
isInit = TrueElseReDimPreserve sArgs(UBound(sArgs) + 1)
EndIf
sArgs(UBound(sArgs)) = ARG_VIEWZOOMTOFIT
EndIfIf DEFAULT_HIDE_ALL_TYPES ThenIfNot isInit ThenReDim sArgs(0)
isInit = TrueElseReDimPreserve sArgs(UBound(sArgs) + 1)
EndIf
sArgs(UBound(sArgs)) = ARG_HIDE_ALL_TYPES
EndIfIf isInit Then
vArgs = sArgs
Else
vArgs = Empty
EndIf
finally_:
GetArguments = vArgs
EndFunctionFunction ContainsArguments(args AsVariant, arg AsString) AsBooleanDim i AsIntegerFor i = 0 To UBound(args)
If LCase(args(i)) = LCase(arg) Then
ContainsArguments = TrueExitFunctionEndIfNext
ContainsArguments = FalseEndFunction
Notifications
Join session by SOLIDWORKS and PDM API expret Artem Taturevych at 3DEXPERIENCE World 2025 on Feb 26 at 08:30 AM CST to explore 10 essential macros for automating drawings, assemblies, custom properties, and more