Block model editing using SOLIDWORKS API

Edit ArticleEdit Article

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
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()
End Sub

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

Sub UnlockMenusAndEdit()
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


All articles and code at CodeStack are now open-source and hosted on GitHub. If you want to contribute by modifying existing articles and code snippets, submitting new ones, reporting errors and bugs etc. please follow this blog post for more information. We appreciate any contribution.

Product of Xarial Product of Xarial