Skip to main content

Block model editing using SOLIDWORKS API

This example demonstrate different ways of disabling the model editing from SOLIDWORKS API:

  • Blocking menu - user is not able to invoke menu commands. This feature is usually used when property manager page is displayed and there should be no commands invoked
  • Blocking model editing - model is a view only and cannot be changed
  • Full block - editing and view manipulations are disabled

It is required to debug macro step-by-step to see the different SOLIDWORKS API functions in action.

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Sub main()

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

BlockAll
UnblockAll

BlockMenusAndEdit
UnlockMenusAndEdit

BlockMenu
UnblockMenu

End Sub

'Block menu, buttons and any manipulations (including model rotation)
Sub BlockAll()

'get the current blocking state if it will be required to reset
Dim curBlock As Integer
curBlock = swModel.GetBlockingState

swModel.SetBlockingState swBlockingStates_e.swSystemBlock

End Sub

'Block menu, buttons and any manipulations (including model rotation)
Sub UnblockAll()

swModel.ResetBlockingState

End Sub

'Blocks menus and edits, but allows model moving and zooming
Sub BlockMenusAndEdit()

swModel.Lock

End Sub

Sub UnlockMenusAndEdit()

swModel.UnLock

End Sub

'Only blocks file related menu commands (new or save)
Sub BlockMenu()

swApp.EnableFileMenu = False

End Sub

Sub UnblockMenu()

swApp.EnableFileMenu = True

End Sub