Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Read/write to/from CAD files

Project Description

The aoc-xchange project provides a Python package named aocxchange to read and write from/to IGES, STEP, BREP, and STL files using PythonOCC.

aocxchange can also read 2D foil section definition files (.dat files)

PythonOCC is a set of Python wrappers for the OpenCascade Community Edition (an industrial strength 3D CAD modeling kernel)


aocxchange can import IGES, STEP, BREP, and STL files. Beware that the import of a similar looking geometry from different file types might (and very likely will) lead to a different topology.

For example, the import of 2 distinct solids (closed boxes) will lead to:

  • undistinguishable faces from an IGES file
  • 2 separate solids from a STEP file
  • 2 separate closed shells from a STL file

If working with solids, prefer STEP; you might get away with STL but it will involve extra effort

If working with surfaces, any file type will do. However, remember that STEP and IGES geometry is mathematically defined while STL basically stores a bunch of triangles approximating the geometry (which is absolutely fine and even desirable in some cases).


pip install aocxchange


aocxchange depends on OCC >=0.16 and aocutils. The examples require wx>=2.8 (or another backend (minor code modifications required)). Please see the table below for instructions on how to satisfy the requirements.

package version Comment
OCC >=0.16.
See or for instructions
or conda install -c pythonocc-core
aocutils latest pip install aocutils –upgrade
wx >=2.8 See for instructions


The goal of the aocxchange package is to simplify the read/write of CAD files using PythonOCC.


occdataexchange version and target PythonOCC version

aocxchange version PythonOCC version
0.1.* 0.16.2


The examples are in the examples folder at the Github repository (

The wx backend (wxPython) backend is used for the examples that display a UI. You may easily change this behaviour to use pyqt4 or PySide by changing the backend in the call to init_display().

Release History

Release History

This version
History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date (22.1 kB) Copy SHA256 Checksum SHA256 Source Dec 25, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting