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.12

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.12
File Size Uploaded
cq_acis-0.3.12.tar.gz 144.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cq-acis 0.3.12
File
cq_acis-0.3.12-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
cq_acis-0.3.12-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.12-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
cq_acis-0.3.12-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
cq_acis-0.3.12-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.12.tar.gz

Download URL cq_acis-0.3.12.tar.gz
Size 144.8 kB
Tags Source
SHA-256 checksum
How to use checksums
eba52992abcf6afce57b0f3526c3afeeed29cc60fbbb61c275958703d597de3a
BLAKE2b-256 checksum
How to use checksums
e32610b7f514d695ba56cb62e30f711929089e763d971127910b99434e8b3007
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 16, 2026.

Transparency log

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

Download URL cq_acis-0.3.12-cp310-abi3-win_amd64.whl
Size 485.1 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
8a5b31d6bc891b2fce3a1be46b99845689e949e0c472e027878fcf994df35e12
BLAKE2b-256 checksum
How to use checksums
2a440bde7a412e0239a3664af4aaad7d129ec2e0aa405ba2fce83a83a4bb5b04
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 16, 2026.

Transparency log

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

Download URL cq_acis-0.3.12-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 567.1 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
ce9f56dbe39b47ab2bc42fbe07d3874c5a618a2dc891393ef098dc390719862d
BLAKE2b-256 checksum
How to use checksums
5bfde40a8dfa5cbaf919eafc75f5731b353c8bb234f5525e427a316803030649
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 16, 2026.

Transparency log

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

Download URL cq_acis-0.3.12-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 538.1 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
8dc0dad55a4297f30421e589ae5509f9d8e1680acc7d117941c349594796f7a1
BLAKE2b-256 checksum
How to use checksums
e1c603fd81b2f26613738a22327c81a9e2621e93d2459b76b9b8a8f014f01e24
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 16, 2026.

Transparency log

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

Download URL cq_acis-0.3.12-cp310-abi3-macosx_11_0_arm64.whl
Size 526.6 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
94204f623d752e7dacf494bf631551277a985acbeb612ee3a24464ea0f0daab5
BLAKE2b-256 checksum
How to use checksums
7d619944bddcda206cd2b80ac95c985602427d58d450b34dd57d4ba6e98dd488
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 16, 2026.

Transparency log

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

Download URL cq_acis-0.3.12-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
a6eb2e12ca841f4471d594963bec6b44298a5eb954c7b50141f2330f5ec50b48
BLAKE2b-256 checksum
How to use checksums
fe6d4dab4ea9446c1a6a0e7c89a5f2e5152278df832cfc989aa9a607aa720905
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 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.12 This release

6 release files

0.3.11

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