Skip to content

About

CATIA automation tool for creating blades

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

AutoBlade

English | 简体中文

AutoBlade is a Python command-line tool whose current modeling backend builds 3D blade models in CATIA V5 from airfoil point clouds and spanwise section parameters. On Windows it drives CATIA through its COM automation interface and exports both native CATPart files and STEP models.

Status

The project is an early working prototype. The single-airfoil workflow has been exercised successfully with CATIA P3 V5-6R2020. A six-column section file is a template that requires one explicit airfoil; a section file with an airfoil column is one self-contained multi-airfoil model definition. Batch runs create one job per selected section definition and do not perform implicit parameter combinations. The separate sweep workflow creates only the Cartesian product of explicitly selected airfoils and six-column templates.

Per-section airfoil parsing, validation, deduplicated base-geometry creation, and section selection are implemented. The 89-section sample using three different point counts has completed Loft, solid closing, CATPart saving, and STEP AP242 export with CATIA P3 V5-6R2020.

The stable single-airfoil and spanwise multi-airfoil milestones are complete. The repository now provides auditable wheel/sdist manifests, external workspace initialization, clean-environment wheel smoke tests, configuration migration safeguards, diagnostics, and a gated internal release workflow. A particular wheel is supported only when it is delivered as a complete tagged artifact set with SHA-256 values and real CATIA validation evidence. No public package-index or standalone executable release is supported. See the distribution scope and support policy.

Scope

AutoBlade currently provides:

  • airfoil spline creation from CSV point clouds;
  • per-section airfoil selection with unique-profile reuse;
  • section scaling, translation, and twist;
  • sharp and blunt trailing-edge handling;
  • guided loft creation and surface closing;
  • native CATIA and STEP export;
  • single-model, non-combinatorial batch, and explicit parameter-sweep CLI workflows;
  • stable JSON sweep manifests and CATIA-free dry runs.

It is not a general-purpose airfoil editor, aerodynamic solver, or platform-independent CAD backend.

Requirements

  • Windows 11 x64
  • CPython 3.14 x64; the currently verified interpreter is Python 3.14.4
  • pywin32 311
  • CATIA P3 V5-6R2020 with a working COM automation interface and the required licenses
  • uv for the documented environment workflow

This is the only currently verified preview baseline. Other Windows, Python, pywin32, processor-architecture, and CATIA combinations are unverified rather than implicitly supported. CATIA itself, its licenses, and COM registration are external prerequisites and are not included in this project. See the distribution scope and support policy for the evidence and channel boundaries.

The same wheel is also checked on Linux with CPython 3.14 for installation, package/core import, CLI help/version, Parser, Planner, and mock execution. That check does not provide a Linux modeling backend yet; CATIA modeling remains the current supported execution path.

Install uv on Windows with WinGet:

winget install --id=astral-sh.uv -e

Installation

Authorized internal preview artifacts are installed directly from their versioned wheel. Verify the supplied SHA-256 before installation:

uv venv .venv --python 3.14
$wheel = (Resolve-Path .\autoblade-*-py3-none-any.whl).Path
uv pip install --python .venv\Scripts\python.exe $wheel
.\.venv\Scripts\Activate.ps1
autoblade --version
autoblade init C:\Engineering\blade-workspace --with-examples

The expected version output starts with autoblade. The breaking namespace migration intentionally provides no catia_autoblade shim. When upgrading an existing environment, uninstall the legacy catia-autoblade distribution before installing the new wheel; AutoBlade refuses to run if both distributions are present.

--with-examples installs the validated 89-section multi-airfoil blade example and its three referenced airfoils into the external workspace. Use --with-airfoil-library to copy the complete audited built-in airfoil catalog and its manifest without copying blade section examples. The current catalog contains the three Hannnk airfoils covered by direct redistribution permission; see the data audit.

Public PyPI installation is not supported. Maintainers working from a source checkout use:

uv sync
uv pip install -e .

Installation, workspace, upgrade, uninstall, and rollback details are in Installation, workspaces, and upgrades.

Quick start

Open the menu in an interactive terminal:

uv run autoblade

For scripts, list available input files:

uv run autoblade list

Diagnose the installed environment without starting or attaching to CATIA:

uv run autoblade doctor

Create one blade:

uv run autoblade create --airfoil sc1095.csv --section blade_sections-1.csv

Create the repository multi-airfoil sample without a fallback --airfoil:

uv run autoblade create --section blade_sections-multi-airfoil.csv

Use --keep-failed-part to save a *_failed.CATPart for debugging modeling failures.

Build every discovered section definition; the explicit airfoil binds all six-column templates, while self-contained files keep their per-section references:

uv run autoblade batch --airfoil sc1095.csv

Preview an explicit 2 × 2 Cartesian product without starting CATIA:

uv run autoblade sweep --airfoil sc1095.csv --airfoil sd7032_sharp.csv `
  --section blade_sections-1.csv --section blade_sections-2.csv --dry-run

Detailed options, interactive behavior, standalone compatibility entry points, previews, overwrite rules, and exit codes are documented in the CLI reference.

Input overview

By default, airfoil CSV files belong in input/airfoils/ and blade section definition CSV files in input/blade_sections/; both locations are configurable. Coordinates, units, ordering, required columns, and current validation limits are documented in Input data formats.

Documentation

Development checks

The automated tests use COM fakes and do not require CATIA to be installed or running:

pwsh -File scripts/check.ps1

On Linux, run the matching repository and non-editable wheel check:

bash scripts/check-linux.sh

These entries run pytest, Ruff, wheel/sdist builds, clean installed-wheel smoke tests, and distribution metadata validation. See Automated testing for individual diagnostic commands and release-tag validation.

License

MIT

About

CATIA automation tool for creating blades

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages