STEP Reader

Stereo Lithography (STL)

File Extension: STEP STP STPZ

STEP STP STPZ

Supported Versions

AP 203 E1/E2 - AP 214 - AP 242

Platforms

wy ly my ay iy

Tessellation

c_green Supported (Computed)

B-rep

c_green Supported

PMI

c_green Supported

STEP (Standard for the Exchange of Product Data) is a widely-used ISO standard file format for representing 3D product data. It is commonly employed in industries such as manufacturing, engineering, and aerospace for exchanging 3D models between different CAD systems. The STEP format supports detailed and accurate representations of 3D objects, including geometry, topology, and product manufacturing information (PMI). This makes it ideal for applications requiring interoperability, data exchange, and long-term archiving of product information.

Our STEP reader provides full access in reading and writing to the assembly, B-rep and PMI.

STEP uses Application Protocols (AP) as versions, which can be seen as specific subsets of the STEP standard.

How to Read from STEP

Our STEP reader supports the following Application Protocols (AP) of the standard:

  • AP 203 E1 and E2

  • AP 214

  • AP 242

To load a STEP file, use A3DAsmModelFileLoadFromFile(). The A3DParamsLoadData structure is used to customize general loading behavior. Additionally, the A3DRWParamsStepData structure can be used to specifiy load options specific to STEP files. This structure is available as a field of A3DParamsLoadData:

A3DAsmModelFile* pModelFile = 0;

A3DRWParamsLoadData sReadParam;
A3D_INITIALIZE_DATA(A3DRWParamsLoadData, sReadParam);
sReadParam.m_sGeneral.m_bReadSolids = A3D_TRUE;

// Configuration specific to Step
sReadParam.m_sSpecifics.m_sStep.m_bPreferProductName = A3D_TRUE;

// ... set other A3DRWParamsLoadData fields as necessary

A3DAsmModelFileLoadFromFile("path/to/file.stp", &sReadParam, &pModelFile);

See Simple Load and Export for more about loading model files.

Assembly

In addition to full support of the assembly tree our STEP reader will also honor external file references including those that point to other non-STEP files.

Tessellation

The tessellation data for this format is generated by the HOOPS Exchange tessellation engine.

B-rep

We provide full support for the B-rep model defined in a STEP file. Evaluators are provided to allow you to directly query these geometries.

The specific surfaces supported by STEP are:

  • BEZIER_SURFACE

  • BOUNDED_SURFACE

  • B_SPLINE_SURFACE_WITH_KNOTS

  • B_SPLINE_SURFACE

  • CONICAL_SURFACE

  • CURVE_BOUNDED_SURFACE

  • CYLINDRICAL_SURFACE

  • DEGENERATE_TOROIDAL_SURFACE

  • OFFSET_SURFACE

  • QUASI_UNIFORM_SURFACE

  • RATIONAL_B_SPLINE_SURFACE

  • RECTANGULAR_TRIMMED_SURFACE

  • SPHERICAL_SURFACE

  • SURFACE_OF_LINEAR_EXTRUSION

  • SURFACE_OF_REVOLUTION

  • TOROIDAL_SURFACE

  • UNIFORM_SURFACE

The specific curves supported by STEP are:

  • BEZIER_CURVE

  • B_SPLINE_CURVE_WITH_KNOTS

  • B_SPLINE_CURVE

  • QUASI_UNIFORM_CURVE

  • UNIFORM_CURVE

  • CIRCLE

  • COMPOSITE_CURVE

  • ELLIPSE

  • HYPERBOLA

  • PARABOLA

  • INTERSECTION_CURVE

  • POLYLINE

  • RATIONAL_B_SPLINE_CURVE

  • SURFACE_CURVE

Views

HOOPS Exchange provides support for the SAVED VIEWS concept in STEP. We specifically support the following SAVED VIEW concepts:

  • CAMERA_MODEL_D3_MULTI_CLIPPING

  • CAMERA_MODEL_D3

  • DRAUGTHING_MODEL

PMI

We provide support for the graphical representation of PMI which includes a link back to the referenced entity. The specific PMI supported includes:

  • Datum Target

  • Datum

  • Dimension (angular)

  • Dimension (curve)

  • Dimension (diameter)

  • Dimension (general)

  • Dimension (linear)

  • Dimension (ordinate)

  • Dimension (radial)

  • Feature control frame

  • Label

  • Note

  • Roughness

  • Weld

Other Features

Our STEP reader provides support for both user defined and validation properties defined at a part level. Also, support for compressed STEP files is included.

Our STEP reader includes a built-in healing algorithm. However, in the interest of performance, it is not enabled by default.

For shell based surface models, each body is put into a separate B-rep entity. This can be toggled using the m_bSplitSHELL_BASED_SURFACE_MODEL flag.

Limitations

Support for STEP AP 242 is included however it will not be officially supported until the specification is ratified.