10.1 ABAQUS/CAE GUI modules and toolsets

The ABAQUS GUI Toolkit is designed to allow you to add your own modules and toolsets. It is generally not recommended that you modify ABAQUS/CAE modules and toolsets because future changes to ABAQUS/CAE may “break” your application. However, if you do have a need to modify some of the ABAQUS/CAE modules or toolsets, you can make changes by deriving a new class from one of them and then adding or removing components.

To derive a new class, you must know the appropriate class name and you must call that class's constructor in your constructor. The table below lists the class names and registered names for all the ABAQUS/CAE modules that are available in the ABAQUS GUI Toolkit. You can import these class names from abaqusGui.

When you register a module derived from one of the ABAQUS/CAE modules, you must use the name shown in the table for the displayedName argument in the main window's registerModule method. If you do not use the name shown, some GUI infrastructure components may not function correctly.


Class nameName
PartGui“Part”
PropertyGui“Property”
AssemblyGui“Assembly”
StepGui“Step”
InteractionGui“Interaction”
LoadGui“Load”
MeshGui“Mesh”
JobGui“Job”
VisualizationGui“Visualization”
SketchGui”Sketch”

When you register a toolset, you must specify in the registerToolset method in which locations (the menu bar, the toolbar, or the toolbox) the toolset creates the widget. If you omit a toolset location flag, the GUI for that toolset will not appear in that location. The table below shows the class name for each of the ABAQUS/CAE toolsets along with the flags that indicate the locations in which the toolset create the widgets. You can import these class names from abaqusGui.

To register the plug-in toolset, you call registerPluginToolset(); you do not use the registerToolset method.

When you unregister a toolset, you must use the name shown in the table as the argument to the main window's unregisterToolset method.


Class nameNameToolset locations
AmplitudeToolsetGui“Amplitude”GUI_IN_TOOL_PANE
AnnotationToolsetGui“Annotation” GUI_IN_MENUBAR | GUI_IN_TOOLBAR
CanvasToolsetGui“Canvas”GUI_IN_MENUBAR
DatumToolsetGui“Datum”GUI_IN_TOOLBOX | GUI_IN_TOOL_PANE
EditMeshToolsetGui“Mesh Editor”GUI_IN_TOOLBOX | GUI_IN_TOOL_PANE
FileToolsetGui“File”GUI_IN_MENUBAR | GUI_IN_TOOLBAR
HelpToolsetGui“Help”GUI_IN_MENUBAR | GUI_IN_TOOLBAR
ModelToolsetGui“Model”GUI_IN_MENUBAR
PartitionToolsetGui“Partition”GUI_IN_TOOLBOX | GUI_IN_TOOL_PANE
QueryToolsetGui“Query”GUI_IN_TOOLBAR | GUI_IN_TOOL_PANE
RegionToolsetGui“Region”GUI_IN_TOOL_PANE
RepairToolsetGui“Repair”GUI_IN_TOOLBOX | GUI_IN_TOOL_PANE
TreeToolsetGui“Tree”GUI_IN_MENUBAR
ViewManipToolsetGui“ViewManip”GUI_IN_MENUBAR | GUI_IN_TOOLBAR
For an example of how to register the toolsets and modules used by ABAQUS/CAE, see Main window example, Section 14.2.1. The following statements show how you could add your own toolset to the Visualization module:
# File myVisModuleGui.py:

    from abaqusGui import *
    from myToolsetGui import MyToolsetGui

    class MyVisModuleGui(VisualizationGui):

        def __init__(self):
   
           # Construct the base class.
           #
           VisualizationGui.__init__(self)
                        
           # Register my toolset.
           #
           self.registerToolset(MyToolsetGui(), 
               GUI_IN_MENUBAR|GUI_IN_TOOLBOX)

    MyVisModuleGui()

# File myMainWindow.py:

    from abaqusGui import *

    class MyMainWindow(AFXMainWindow):

        def __init__(self, app, windowTitle=''):

            ...    
            self.registerModule(
                'Visualization',  'myVisModuleGui')
            ...

If you derive a toolset from an ABAQUS/CAE toolset, you must construct that toolset using the makeCustomToolsets method of AFXMainWindow. You must use the makeCustomToolsets method to insure that the toolset is created at the appropriate time during application startup. This will avoid any conflicts with ABAQUS/CAE modules that also make use of the module. For example, if you derive a new toolset from the Datum toolset, you must create the new toolset in makeCustomToolsets. This approach is illustrated in the following example. The new toolset will also appear in the Part module in place of the standard Datum toolset.

# In your main window file:

    class MyMainWindow(AFXMainWindow):

        def __init__(self, app, windowTitle=''):

            ...

        def makeCustomToolsets(self):

            from myDtmToolsetGui import MyDtmGui
            # Store the toolset as a member of the main window if
            # you want to register it in one of your modules too.
            #
            self.myDtmGui = MyDtmGui()


# In your module GUI file:

    class MyModuleGui(AFXModuleGui):

        def __init__(self):

            ...
            mw = getAFXApp().getAFXMainWindow()
            self.registerToolset(mw.myDtmGui, 
                GUI_IN_TOOL_PANE|GUI_IN_TOOLBOX)