Compare Functionality of Available Modelers

Taras Khalimanenko

July 29, 2021

The following table compares the supported features provided by ModelerGeometry and Spatial 3D ACIS® Modeler.


Modeler's Feature ModelerGeometry (ModelerGeometry.tx) Spatial 3D ACIS Modeler (SpaModeler.tx)
Render the model in wireframe, shaded, and silhouette mode Supported Supported
Get the extents of the model Supported Supported
Use PHLR, a view-dependent representation that consists of visible and hidden curves of input objects (getHlrCurves()) Not Supported Supported
Explode into a set of OdDbEntity objects Supported Supported
Create simple shapes (box, frustum, sphere, torus, wedge, pyramid) Supported Supported
Extrude a planar curve, region, or planar surface in the direction of the given vector, with many advanced options controlled by OdDbSweepOptions (createExtrudedObject(), extrude()) Partially Supported (Not supported: the taper option and the extrusion of an angled entity) Supported
Extrude a region along a path curve (extrudeAlongPath()) Supported (Limitations: the taper angle must be zero, the path must be a smooth curve or polyline perpendicular to the region plane at the path base point, and both path endpoints must not lay on the region plane or must be equal) Supported
Revolve a specified curve, region, or planar surface around the specified axis of revolution (createRevolvedObject(), revolve()) Partially Supported (Not supported: non-solid creation, axis is not in contour's plane, and mostly all OdDbRevolveOptions) Supported
Sweep a face along the specified path (createSweptObject()) Partially Supported (Not supported: history mode, non-zero taper angle, non-zero draft distances, non-zero align angle, align mode other than kAlignSweepEntityToPath, disabled checkIntersections flag, twist reference vector other than identity) Supported
Create a tangent surface between two edges of a surface with constant radius (createFilletSurface()) Not Supported Supported
Create a lofted object from the given curves (createLoftedObject()) Not Supported Supported
Perform Boolean operations (booleanOper()) Partially Supported (Currently the functionality works as a Protocol Extension and is disabled by default) Supported
Set up attributes (colors, materials, etc.) Supported Supported
Get area, centroid, moment of inertia, product of inertia, principal moments, principle axes, radii of gyration Not Supported Supported
Get perimeter Supported Supported
Get the intersection between the specified plane and the model (OdDb3dSolid::getSection()) Not Supported Supported
Slice the model with a plane and transform the object to be the portion remaining on the positive side of the normal of the slicing plane (OdDb3dSolid::getSlice()) Not Supported Supported
Offset all faces by the specified distance (offsetBody()) Not Supported Supported
Separate the model into an array of solids representing the additional disjoint volumes (separateBody()) Not Supported Supported
Find the intersection with another model (intersectWith()) Not Supported Supported
Get the triangle mesh of the model with the required triangulation parameters (getObjectMesh()) Supported Supported
Sculpture operation — creating a waterproof solid from a set of objects (createSculptedSolid()) Partially Supported (Currently the functionality works as a Protocol Extension and it's disabled by default) Partially Supported through the use of ModelerGeometry (Currently the functionality works as a Protocol Extension and it's disabled by default)
Displaying solid history Supported Supported