Working with 3D Models > Overview of Supported 3D Modelers
Overview of Supported 3D Modelers

A modeler library is responsible for working with 3D models. It is used to read and write model data, to create new model objects (for example, boxes, spheres, extrusions, etc.), to modify existing objects, and to render the objects.

ODA SDKs can be used with several different modeler libraries. The options are:

Modeler Description Library
ModelerGeometry A basic ODA SDK modeler that doesn't require an additional fee. ModelerGeometry.tx
Spatial 3D ACISĀ® Modeler Commercial third-party library that is purchased separately. SpaModeler.tx
C3D Modeler Commercial third-party library that is purchased separately. c3dModeler.tx

All of the modelers can read and write .sat files and render a model in wireframe and shaded mode. In the case of ACIS and C3D modelers, Boolean operations and other 3dSolid methods also work. Otherwise they return a "Not Implemented" status.

To compare lists of supported features provided by ModelerGeometry and Spatial 3D ACIS Modeler, see the features comparison table.

ModelerGeometry

ModelerGeometry is the default ODA modeler delivered with ODA Kernel SDK. The ModelerGeometry.tx module doesn't use any third-party libraries; only ODA developed code is used. No additional fee is required — only a standard ODA membership. Currently, it provides a basic set of 3D modeling functionality but it is actively developed and the list of features constantly expands.

You should not work with ModelerGeometry.tx directly; the public API of OdDb classes (methods related to 3D operations) uses internal interfaces that are implemented in ModelerGeometry.tx.

For a full list of supported features provided by ModelerGeometry, see the features comparison table.

You can use example modeler commands in the MODELER GEOMETRY command group of the ODA Debug sample application. Just load the ModelerCommands.tx module:

OdMfcApp Modeler Geometry Commands

Spatial 3D ACISĀ® Modeler

Spatial ACIS Modeler completely supports all surfaces of the .sat file format and has the widest set of functionality. More information is at https://www.opendesign.com/members/marketplace/3d-acis-modeler-integration.

For a full list of supported features provided by integration of Spatial 3D ACIS Modeler, see the features comparison table.

C3D Modeler

C3D Modeler for ODA is a lightweight version of the full-featured C3D Modeler, and it supports the following functionality:

  • Create a sphere, box, frustum, torus, wedge, extrusion, pyramid, lofted solid, object, and more. (Available via methods in the OdDb3dSolid class.)
  • Perform Boolean operations between two solids.
  • Perform auxiliary functions for sections, slicing, interference checking, and more.

More information about C3D Modeler is at https://www.opendesign.com/members/marketplace/c3d-modeler-teigha.

Enable Modelers

To use a particular modeler in your application, load the modeler's module using the OdRxDynamicLinker::loadModule() method with the module's name as a parameter. For example, to load the ModelerGeometry module:


OdRxModulePtr pModule = odrxDynamicLinker()->loadModule(OdModelerGeometryModuleName);

To change the currently used modeler to another one:


odrxDynamicLinker()->unloadModule(OdModelerGeometryModuleName);
// For example, try to load SpaModeler.tx
OdRxModule* pSpaModule = odrxDynamicLinker()->loadModule(OdSpaModelerModuleName);

In the ODA Debug application, you can also choose the modeler with Tools -> Load Application. First unload the currently used modeler by choosing it from list and clicking Unload. This is possible only if you didn't perform a rendering yet, otherwise the module is referenced and locked. Then click Load and choose the modeler you want to use.

See Also

Compare Functionality of Available Modelers

Loading Additional Modules

Copyright © 2002 – 2021. Open Design Alliance. All rights reserved.