| name | freecad-automation |
| description | AI-powered automation agent for FreeCAD CAD operations including natural language processing, batch processing, parametric design, and marine engineering applications. Use for CAD automation, drawing generation, FEM preprocessing, and integration with offshore analysis tools. |
| type | reference |
| version | 2.0.0 |
| updated | "2026-03-16T00:00:00.000Z" |
| category | engineering |
| triggers | ["FreeCAD automation","parametric modeling","CAD batch processing","technical drawings","assembly management","FEM preprocessing","hull design","marine CAD",".FCStd files","Python scripting CAD"] |
| capabilities | ["input_generation","execution","output_parsing","failure_diagnosis","validation"] |
| requires | [] |
| tags | [] |
| scripts_exempt | true |
FreeCAD Automation
When to Use
- CAD automation and scripting
- Batch processing of FreeCAD files
- Parametric design and design tables
- Assembly management and constraint solving
- FEM preprocessing and mesh generation (CalculiX / gmsh)
- Drawing generation with automatic dimensioning
- Marine engineering hull design and hydrostatics
- NURBS hull generation from HullProfile stations
- CalculiX FEM structural analysis
- STEP import / volume mesh / INP export pipeline
- Design table batch parametric studies
- Natural language CAD commands
- Integration with OrcaFlex/AQWA workflows
Prerequisites
- Python 3.8+
- FreeCAD 1.0+ (November 2024 release)
digitalmodel package installed
Python API
Basic Operations
from digitalmodel.agents.freecad import FreeCADAgent
agent = FreeCADAgent()
result = agent.execute_prompt("Create a box 100x50x25mm with chamfered edges")
print(f"Created: {result['object_name']}")
print(f"Volume: {result['properties']['volume']} mm3")
Batch Processing
results = agent.batch_process(
pattern="*.FCStd",
input_directory="./models",
operation="export_step",
parallel_workers=4
)
See sub-skills for full details.
Parametric Design
agent.parametric_study(
base_model="hull_template.FCStd",
parameters={
"length": [150, 175, 200, 225],
"beam": [25, 30, ],
: [, , ]
},
output_directory=,
export_formats=[, ]
)