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
- Documentation index
- Usage, export, and visual inspection
- Shared model API
- Geometry support and limitations
- SAB/ASM support and history limitations
- Tolerant boundaries and finite UV trims
- Rust APIs: acis-core, acis-py-bridge
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)
| File | Size | Uploaded | |
|---|---|---|---|
| cq_acis-0.3.11.tar.gz | 143.9 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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