Chapter 1: Introduction¶
Chapter Overview¶
This chapter provides an overview of the Abaqus GUI Toolkit.
The Abaqus GUI Toolkit is one of the Abaqus Process Automation tools that allows you to modify and extend the functionality of the Abaqus/CAE graphical user interface (GUI), enabling a broader range of users to generate more efficient Abaqus solutions.
Chapter Contents¶
- What can I do with the Abaqus GUI Toolkit?
- Prerequisites for using the Abaqus GUI Toolkit
- Abaqus GUI Toolkit basics
- Organization of the Abaqus GUI Toolkit User's Guide
What can I do with the Abaqus GUI Toolkit?¶
You can use the Abaqus GUI Toolkit to customize Abaqus products.
There are several ways to customize Abaqus products:
-
User subroutines allow you to change the way Abaqus/Standard and Abaqus/Explicit compute analysis results. For information on user subroutines, see the Abaqus User Subroutines Guide.
-
Environment files allow you to change various default settings. For information on environment files, see the Abaqus Execution Guide.
-
Kernel scripts allow you to create new functions to perform modeling or postprocessing tasks. For information on kernel scripts, see the Abaqus Scripting User's Guide.
-
GUI scripts allow you to create new graphical user interfaces. GUI scripts are described in this guide.
The Abaqus GUI Toolkit provides programming routines that allow you to create or modify components of the GUI. The toolkit allows you to:
Create new GUI modules¶
A GUI module is a grouping of similar functionality, such as the Part module in Abaqus/CAE.
Create new GUI toolsets¶
A GUI toolset is similar to a GUI module in that it groups similar functionality together, but it typically contains more specific functionality that can be used by one or more GUI modules. An example of a GUI toolset in Abaqus/CAE is the Datum tool.
Create new dialog boxes¶
The Abaqus GUI Toolkit provides a complete library of widgets that you can use to build your own dialog boxes. However, the Abaqus GUI Toolkit does not allow you to modify existing Abaqus/CAE dialog boxes.
Remove Abaqus/CAE GUI modules and toolsets¶
You can choose which GUI modules to include in your application and which to omit. For example, the Abaqus/Viewer application does not include modeling-related GUI modules; it contains only the Visualization module.
Remove some top-level menus or items within those menus¶
For example, you can remove the entire top-level Viewport menu to prevent users from operating on viewports, or you can remove the Import and Export menu items from the File menu.
Make limited changes to Abaqus/CAE GUI modules and toolsets¶
For more information, see Customizing and accessing Abaqus/CAE GUI modules and toolsets.
Important: The Abaqus GUI Toolkit cannot run outside of Abaqus/CAE; it must be used with Abaqus/CAE for the infrastructure to function.
Prerequisites for using the Abaqus GUI Toolkit¶
To write applications using the Abaqus GUI Toolkit, you need experience in the following areas:
Python programming¶
Before writing Abaqus/CAE kernel scripts, you should have some experience with the Python language. You should have similar experience when writing GUI applications.
Abaqus kernel commands¶
The ultimate goal of the GUI is to send commands to the kernel for execution; therefore, you should understand how kernel commands work.
Object-oriented programming¶
Python is an object-oriented language, and writing applications typically involves deriving your own new classes, writing methods for them, and manipulating their data. You should understand the concepts of object-oriented programming.
GUI design¶
Depending on the complexity of your application, training in user interface design and usability testing may be helpful. This will help you create an application that is both intuitive and easy to use.
Abaqus provides training courses covering Python, kernel scripting, and GUI design. For more information, contact your local sales office. GUI design training is also available from many independent training organizations.
Abaqus GUI Toolkit basics¶
The Abaqus GUI Toolkit is an extension of the FOX GUI Toolkit, just as the Abaqus Scripting Interface is an extension of the Python programming language.
FOX (short for Free Objects for X) is a modern, object-oriented, platform-independent GUI toolkit. Because the Abaqus GUI Toolkit is platform-independent, once you have written an application for one platform, you can run the application on all supported platforms -- you do not need to change the source code.
User interfaces generated by the Abaqus GUI Toolkit look similar on all platforms. This is due to the architecture of the toolkit. While the application programming interface (API) is the same on all platforms, the way the operating system's GUI libraries are called differs -- the Xt library is called on Linux systems, while the Win32 library is called on Windows systems. These differences are hidden from the application developer.
Because the FOX GUI Toolkit is object-oriented, it allows developers to easily extend its functionality by deriving new classes from the base toolkit. The Abaqus GUI Toolkit takes advantage of this feature by adding the special functionality required for the Abaqus GUI. Class names beginning with FX are part of the standard FOX library; for example, FXButton. Class names beginning with AFX are part of Abaqus's extensions to the FOX library; for example, AFXDialog. When both FX and AFX versions of a class exist (for example, FXTable and AFXTable), you should use the AFX version because it provides enhanced functionality for building applications with Abaqus.
Organization of the Abaqus GUI Toolkit User's Guide¶
This guide is organized by function and is designed to guide developers through the process of writing applications by explaining how to use the components of the toolkit and providing example code snippets. A separate Abaqus GUI Toolkit Reference Guide is provided, containing an alphabetical listing of all toolkit calls.
The Abaqus GUI Toolkit is based on the FOX GUI toolkit. While this guide explains some basic concepts of the FOX toolkit, it does not provide detailed information on many other aspects of the FOX toolkit. For more detailed information on the FOX GUI toolkit, refer to the FOX website (http://www.fox-toolkit.org).
This guide consists of the following sections:
Widgets¶
This section describes some of the most commonly used widgets in the Abaqus GUI Toolkit.
Layout managers¶
This section describes how to use the various layout managers in the Abaqus GUI Toolkit to arrange widgets in dialog boxes.
Dialog boxes¶
This section describes the dialog boxes you can create with the Abaqus GUI Toolkit.
Commands¶
In applications that adopt a graphical user interface, the interface must gather user input and communicate that input to the application. In addition, the graphical user interface must keep its state current based on the state of the application. This section describes how to accomplish these tasks using the two types of commands in the Abaqus GUI Toolkit and Abaqus/CAE (kernel commands and GUI commands).
Modes¶
A mode is a mechanism for gathering user input, processing that input, and then issuing commands to the kernel. This section describes the modes available in the Abaqus GUI Toolkit.
Creating a GUI module¶
This section describes how to create a GUI module.
Creating a GUI toolset¶
This section describes how to create a GUI toolset.
Customizing an existing module or toolset¶
The preceding chapters described how to create new modules or toolsets. Alternatively, the Abaqus GUI Toolkit allows you to derive new modules or toolsets from existing ones and add or remove functionality from them.
Creating an application¶
This section explains how to create an application, such as Abaqus/CAE. It also describes the high-level infrastructure responsible for running the application.
The application object¶
This section describes the Abaqus application object. The application object manages the message queue, timers, chores, GUI updates, and other system facilities.
The main window¶
This section describes the layout, components, and behavior of the Abaqus main window.
Customizing the main window¶
The main window base class provides GUI infrastructure to allow user interaction, module operations, and display of objects in viewports. This section describes how to add functionality to your application by deriving from the main window base class and then registering modules and toolsets.