Hide menu
No Matches
Introduction to CAD Exchanger SDK

CAD Exchanger SDK provides key software components to create feature-rich engineering applications for desktop, web and mobile. These applications can target modeling (e.g. CAD, AEC/BIM, EDA/PCB), manufacturing (MaaS, robotics, CAM, CMM), simulations (CAE, digital twins), visualization (AR/VR) and many more markets. For a list of typical target market segments please refer to our web-site.

If you are completely new to the subject of CAD and 3D modeling, and not quite familiar with concepts of B-Rep (boundary representation) or polygonal representation you may want to spend some time going through the crash course on CAD modeling (via the blog post series or downloading its short version) to understand multiple concepts used in the CAD world and CAD Exchanger in particular.


CAD Exchanger SDK includes several modules:

Converters provide import and export with multiple CAD and BIM file formats. During import, the data from these files get read into a common data model that provides common format-neutral data representation and access API. Likewise, each exporter uses this common representation as a source when writing to a target format.

The data models provide access to CAD and BIM data, including assembly hierarchy, geometries (precise B-Reps and polygonal meshes), meta-data, 2D drawings, PMI and other elements.

3D and 2D models can be visualized in native OpenGL-based desktop apps as well as WebGL-based applications using visualization toolkits - Desktop Visualization Toolkit and Web Visualization Toolkit respectively. Each provides handy features such as multiple display modes, dynamic selection, exploded views, sectioning views and others.

CAD Exchanger SDK features various advanced algorithms that analyze, create or modify data to be used in domain-specific apps. Examples of such algorithms include model simplification (e.g. mesh decimation or B-Rep simplification) for AR/VR apps and digital twins, manufacturing feature recognition and DFM (design for manufacturing) analysis for MaaS (Manufacturing as a Serivce) apps.

Although the SDK does not pretend to be a full-fledged geometric modeling kernel, it does include various algorithms that are common in CAD modeling. These include computations of bounding boxes, mass-inertia properties (volume, surface area, etc), parametric curve and surface evaluations (values, derivatives, curvatures), tessellation and many others. For apps that do not require sophisticated modeling technics (such as variable radius blends or Boolean operations) this set can be quite sufficient.

CAD Exchanger SDK is often used by app developers in conjunction with other 3D toolkits. To ensure maximum data interoperability the SDK provides seamless integration with multiple external platforms - geometrical modeling kernels (Parasolid, Open CASCADE, ACIS or C3D), visualization engines (Unity, UNIGINE, three.js) or general-purpose SDK's (Eyeshot). In these cases, data are directly passed to or received from the external toolkit's API, or specifically read/written to its native file format, avoiding additional interim data conversions leading to risk of data distortion or loss.

Supported Platforms

CAD Exchanger SDK is cross-platform and supports Windows, Linux, macOS and Android. The SDK is written in C++ and has a few wrappers to provide bindings with other programming languages - C#, Java and Python. Thus, 'native' desktop applications and back-ends of web (cloud) apps can be developed and distributed/deployed in numerous environments, including public clouds, on-premise, via docker images, etc.

Front-ends of web applications can use Web Toolkit (written in Javascript) to visualize 3D models in all major web browsers.

This documentation is generated from the original C++ code, and that is why uses C++ API conventions. Nonetheless, understanding SDK API for other languages should be very straightforward, especially if consulting numerous examples.

Next Steps