ODB2ANY is a professional toolkit for extracting, converting, and visualizing ABAQUS Output Database (ODB) results. It provides a streamlined workflow for post-processing ABAQUS analysis results through JSON conversion and customizable plotting capabilities.
- Features
- Requirements
- Installation
- Quick Start
- Detailed Usage Guide
- Configuration Files
- Output Structure
- Troubleshooting
- License
- Extract complete field outputs (stress, strain, displacement, etc.)
- Export history outputs with time-series data
- Generate comprehensive header information
- Support for multiple instances and sets
- Automatic metadata inclusion
- Flexible output organization
- Customizable plot styles and configurations
- Support for various output types
- Range visualization for field outputs
- Time-series plotting for history outputs
- CSV export for further customization
- Built-in data smoothing and processing
- ABAQUS/CAE with Python 2.7 environment
- NumPy (included in Abaqus Python)
- odbAccess module (provided by Abaqus)
- Python 3.x
- NumPy
- Matplotlib
-
Clone the repository:
git clone https://github.com/AliSaeeidiRad/ODB2ANY.git cd ODB2ANY -
No additional installation is needed for ODB2JSON as it uses Abaqus's built-in Python.
-
For ODB2PLOT, install required Python packages:
pip install numpy matplotlib
-
Submit your ABAQUS job:
cd example abaqus job=Job-1 cpus=8 cd ..
-
Convert ODB results to JSON:
abaqus python odb2json.py --odb-file example/Job-1.odb --write-history --write-field --instances PART-1-1 --step * -
Generate header information:
python odb2plot.py --field example/ODB2JSON/Job-1_instances_PART-1-1_field_output.json --history example/ODB2JSON/Job-1_history_output.json --header
-
Plot von Mises stress:
python odb2plot.py --field example/ODB2JSON/Job-1_instances_PART-1-1_field_output.json --plot-config plot_config_s_example.json --field-option S_ --data-key mises --step *
- Plot displacements:
python odb2plot.py --field example/ODB2JSON/Job-1_instances_PART-1-1_field_output.json --plot-config plot_config_u_example.json --field-option U_ --step *
-
Extract Header Information:
abaqus python odb2json.py --odb-file <path-to-odb> --header
-
Extract History Output:
abaqus python odb2json.py --odb-file <path-to-odb> --write-history --step *
-
Extract Field Output:
abaqus python odb2json.py --odb-file <path-to-odb> --write-field --instances <INSTANCE> --step *
-
Combined Extraction:
abaqus python odb2json.py --odb-file <path-to-odb> --write-history --write-field --instances <INSTANCE> --step *
ODB2JSON supports three types of data extraction from your ABAQUS ODB file:
- Element Sets: Extract data from specific element sets defined in your model
- Node Sets: Extract data from specific node sets defined in your model
- Instances: Extract data from entire part instances in your model
Example commands:
# Extract from element set
abaqus python odb2json.py --odb-file model.odb --write-field --element-sets SET-1 --step *
# Extract from node set
abaqus python odb2json.py --odb-file model.odb --write-field --node-sets NSET-1 --step *
# Extract from instance
abaqus python odb2json.py --odb-file model.odb --write-field --instances PART-1-1 --step *-
Extract Headers:
python odb2plot.py --field <field-json> --history <history-json> --header
-
Plot Field Output:
python odb2plot.py --field <field-json> --plot-config <config-json> --field-option <option> --data-key <key> --step *
- For specific part selection:
--field-option S_,PART-1 - Available data keys:
mises,data, etc.
- For specific part selection:
-
Plot History Output:
python odb2plot.py --history <history-json> --plot-config <config-json> --history-option <option>
plot_config_s_example.json: Example config for stress plotsplot_config_u_example.json: Example config for displacement plots
Configuration options include:
- Figure size and layout
- Plot colors and styles
- Axis labels and limits
- Grid properties
- Legend settings
example/
└── ODB2JSON/
├── Job-1_history_output.json
├── Job-1_instances_PART-1-1_field_output.json
├── Job-1_instances_PART-1-1_field_output_summary.json
└── ODB2PLOT/
├── HEADERS/
│ ├── Job-1_history_output.json
│ └── Job-1_instances_PART-1-1_field_output.json
└── PLOTS/
├── FIELD/
│ ├── Job-1_instances_PART-1-1_field_output_S_PART-1-1.csv
│ ├── Job-1_instances_PART-1-1_field_output_S_PART-1-1.tiff
│ ├── Job-1_instances_PART-1-1_field_output_U_PART-1-1.csv
│ └── Job-1_instances_PART-1-1_field_output_U_PART-1-1.tiff
└── HISTORY/
-
ODB2JSON Issues:
- Ensure running with
abaqus python - Verify ODB file exists and is not locked
- Check available memory for large ODB files
- Verify instance and set names exist in the model
- Ensure running with
-
ODB2PLOT Issues:
- Ensure Python 3.x is used
- Check NumPy and Matplotlib installation
- Verify JSON file paths and structure
- Check plot configuration format
If you use ODB2ANY in your research, please cite it using:
@software{saeedirad2025odb2any,
author = {Saeedi Rad, Ali},
title = {{ODB2ANY: ABAQUS Output Database Extraction & Visualization Tool}},
month = sep,
year = 2025,
publisher = {GitHub},
version = {1.0.0},
url = {https://github.com/AliSaeeidiRad/ODB2ANY},
description = {A toolkit for extracting, converting, and visualizing ABAQUS Output Database (ODB) results}
}GNU General Public License v3.0 - Copyright (c) 2025 Ali Saeedi Rad
Ali Saeedi Rad
Version: 1.0.0
Date: September 2025
Repository: https://github.com/AliSaeeidiRad/ODB2ANY

