Agent Skills
› Cai-aa/CAE-Agent-Hub
› abaqus-odb
abaqus-odb
GitHub用于读取和提取Abaqus ODB文件中的分析结果,如最大应力、位移、反力及特征频率等。支持按步骤/帧筛选、指定节点或区域查询,并可导出为CSV或文本报告,适用于仿真后处理场景。
Trigger Scenarios
询问最大应力值
提取位移数据
获取反力信息
后处理ODB文件
导出结果为CSV
Install
npx skills add Cai-aa/CAE-Agent-Hub --skill abaqus-odb -g -y
SKILL.md
Frontmatter
{
"name": "abaqus-odb",
"description": "Read analysis results. Use when user asks about maximum stress, extracting displacements, reaction forces, or exporting results. Post-processes ODB files.",
"allowed-tools": [
"Read",
"Write",
"Edit",
"Glob",
"Grep",
"Bash(abaqus:*)",
"Bash(python:*)"
]
}
Abaqus ODB Skill
This skill reads and extracts analysis results from Abaqus ODB files.
When to Use This Skill
Route here when user mentions:
- "What is the maximum stress?", "extract displacement"
- "Get reaction forces", "post-process the ODB"
- "Export results to CSV", "what are the eigenfrequencies?"
Route elsewhere:
- Running the analysis →
/abaqus-job - Configuring what output to save →
/abaqus-output - Exporting geometry (STL, STEP) →
/abaqus-export
Key Decisions
1. What Result is Needed?
| Need | Field | Notes |
|---|---|---|
| Displacement | U |
Use .magnitude for total |
| Stress | S |
Use .mises for von Mises |
| Reaction force | RF |
Sum components for total |
| Strain | E |
Similar structure to stress |
| Temperature | NT |
Thermal analysis results |
| Eigenfrequency | Frame description | Parse from frame metadata |
2. Which Step/Frame?
| Scenario | Frame Selection |
|---|---|
| Final results | step.frames[-1] |
| All time history | Loop all frames |
| Specific time | Find by frameValue |
| Modal analysis | Each frame = mode |
3. Location: Global Max or Specific?
| Need | Approach |
|---|---|
| Overall maximum | Loop all values, find max |
| Specific node | Filter by nodeLabel |
| Subset/region | Use getSubset(region=...) |
4. Export Format?
| Format | Use Case |
|---|---|
| Print to console | Quick check |
| CSV file | Spreadsheet analysis |
| Text report | Documentation |
What to Ask User
If unclear, ask:
- What result? Stress, displacement, reaction force, frequency?
- Which step/frame? Final, specific time, or all?
- Location? Maximum anywhere, or specific node/region?
- Output format? Print, CSV, or report?
Workflow
- Open ODB - Use
readOnly=Truefor extraction - Navigate to step/frame - List steps with
odb.steps.keys() - Get field output - Access via
frame.fieldOutputs['U'] - Extract values - Loop
field.values, use.magnitude,.mises - Close ODB - Always close when done
Common Tasks
| Task | Approach |
|---|---|
| Max displacement | Loop U values, find max magnitude |
| Max von Mises stress | Loop S values, find max mises |
| Total reaction force | Sum RF components across all nodes |
| Displacement at node | Filter by nodeLabel |
| Results in region | Use getSubset with node/element set |
| Eigenfrequencies | Parse frame.description in frequency step |
| Time history | Use historyRegions and historyOutputs |
| Export to CSV | Write values with csv module |
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| "ODB locked" | Another process has it | Delete .lck file |
| "Key not found" | Wrong variable name | List available keys first |
| "No values" | Output not requested | Check FieldOutputRequest in model |
| "AttributeError: mises" | Element has no mises | Check element formulation |
Code Patterns
For API syntax and code examples, see:
Version History
- 2178ed3 Current 2026-07-24 17:40


