Skip to main content

cq-acis

Parse ACIS SAT/SAB data and convert supported B-rep geometry to CadQuery/OpenCascade shapes.

日本語版: README.ja.md

This project is experimental. Supported geometry depends on the save version and producer. Unsupported entities remain available as raw records; conversion raises an error when it cannot build the requested shape within source precision. Projected 2D trims are checked against the unchanged 3D curves.

Features

  • Read legacy and modern SAT headers, counted strings, and entity references.
  • Decode SAT save versions 105, 400, 600, and 700, plus selected SAB and Autodesk ShapeManager binary profiles.
  • Convert supported lines, circles, ellipses, planes, cylinders, cones, spheres, and tori, with experimental support for explicit NURBS and selected tolerant boundaries.
  • Inspect topology, metadata, diagnostics, and the source data of unknown records.
  • Use a shared model API to connect external decoders to the CadQuery converter.

See geometry support and limitations and SAB/ASM support for the accepted profiles.

Installation

Requires Python 3.11 or newer. CadQuery 2.8 or later is installed as a dependency.

python -m pip install cq-acis

Installing a prebuilt wheel does not require Rust. To install from a source checkout, install Rust 1.83 or newer and a C linker first, then run:

python -m pip install -e .

CadQuery's platform requirements also apply.

Quick start

Parse SAT records and follow topology references:

from pathlib import Path
from cq_acis import parse_sat_model

model = parse_sat_model(Path("model.sat").read_bytes())
for body in model.bodies():
    lump = model.resolve(body.lump)
    print(body.index, lump.index if lump else None)

Import a SAT file as a CadQuery Workplane:

from cq_acis import import_sat_file

result = import_sat_file("model.sat")
shape = result.val()
assert shape.isValid()
print(shape.Volume())

For binary SAB/ASM input:

from pathlib import Path
from cq_acis import parse_sab_model, to_cadquery

model = parse_sab_model(Path("model.sab").read_bytes(), source_id="model.sab")
print(model.diagnostics)
result = to_cadquery(model)

Parsing a file does not guarantee that all its geometry can be converted. See usage and error handling.

Documentation

The public API and supported format subset may change as coverage expands.

License

The project code is licensed under the MIT License. See third-party notices for dependency attribution. The repository's test corpus is excluded from the Python distributions and has separate license notices.

Metadata

Release files for cq-acis 0.3.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cq-acis 0.3.11
File Size Uploaded
cq_acis-0.3.11.tar.gz 143.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cq-acis 0.3.11
File
cq_acis-0.3.11-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
cq_acis-0.3.11-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
cq_acis-0.3.11-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
cq_acis-0.3.11-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
cq_acis-0.3.11-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 2.8 MB

Release files / cq_acis-0.3.11.tar.gz

Download URL cq_acis-0.3.11.tar.gz
Size 143.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ffe35a5a46eed37820ad15cfbd6f6055ad83c24282b52ab4a8de0c27073004d0
BLAKE2b-256 checksum
How to use checksums
1ea6c67709ecc1a772829f7ad8f812b9c108b00e9d0ca7d8cb1b28e29b9a0731
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / cq_acis-0.3.11-cp310-abi3-win_amd64.whl

Download URL cq_acis-0.3.11-cp310-abi3-win_amd64.whl
Size 485.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
5647b00e3b00c0aa0d4826802c883ec0a3dff64371f5ea63b16e68086f3c2e0a
BLAKE2b-256 checksum
How to use checksums
9e9e3766527c3a3681db2cdf17336227425d5f835206d588f36772d19453a17f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / cq_acis-0.3.11-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cq_acis-0.3.11-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 566.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
7ce8de3391855e145fb49ce624087c1ac73df16b76d9239b8cb1a279e58acd08
BLAKE2b-256 checksum
How to use checksums
e43a2fb598f631ab95eccaeef37a1ab107af15832d9a779dd3f45be257e4a741
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / cq_acis-0.3.11-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cq_acis-0.3.11-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 538.0 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
4862e8d4e971c47ed16f2801033d470579240e23750cc7ec2bca1957a9b3d41d
BLAKE2b-256 checksum
How to use checksums
156ae22a682c4f2ad122715ad307bc9dfc90ff531fce1d0da1e7ce0991341ce2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / cq_acis-0.3.11-cp310-abi3-macosx_11_0_arm64.whl

Download URL cq_acis-0.3.11-cp310-abi3-macosx_11_0_arm64.whl
Size 526.7 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6dacb5d8372b10d9c2d4f973bee470c0c85dec49b4fd43013b81f159bd35d86f
BLAKE2b-256 checksum
How to use checksums
1695d71665fb7e8a1f477f5ee5d9bf95a245866c3eccd98ee50b6912398b555f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / cq_acis-0.3.11-cp310-abi3-macosx_10_12_x86_64.whl

Download URL cq_acis-0.3.11-cp310-abi3-macosx_10_12_x86_64.whl
Size 532.5 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
83fa9c33963452073a9d9d6fd9dd449785d98bf908974184ff69c7f40a23d21e
BLAKE2b-256 checksum
How to use checksums
3872d2ffed8e0e93df2b4078fde12b1e7fe1888de19211104e306fa952e2a6bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.12

6 release files

This release

0.3.11 This release

6 release files

0.3.10

5 release files

0.3.9

5 release files

0.3.8

5 release files

0.3.7

5 release files

0.3.6

5 release files

0.3.5

5 release files

0.3.4

5 release files

0.3.3

5 release files

0.3.2

5 release files

0.2.0

5 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page