RTF parsing

Types

A3DMkpRTFFieldData

A3DEMarkupSymbol

Fields

KEA3DSymbol_UNKNOWN

KEA3DSymbol_Angularity

KEA3DSymbol_MoreOrLess

KEA3DSymbol_Micron

KEA3DSymbol_Circularity

KEA3DSymbol_Concentricity

KEA3DSymbol_Cylindricity

KEA3DSymbol_Parallelism

KEA3DSymbol_Perpendicularity

KEA3DSymbol_Symmetry

KEA3DSymbol_TotalRunout

KEA3DSymbol_Straightness

KEA3DSymbol_Flatness

KEA3DSymbol_LineProfile

KEA3DSymbol_SurfaceProfile

KEA3DSymbol_Runout

KEA3DSymbol_Countersink

KEA3DSymbol_Counterbore

KEA3DSymbol_Depth

KEA3DSymbol_Centerline

KEA3DSymbol_Ohm

KEA3DSymbol_Omega

KEA3DSymbol_SmallerOrEqual

KEA3DSymbol_GreaterOrEqual

KEA3DSymbol_Slope

KEA3DSymbol_ConicalTaper

KEA3DSymbol_Diameter

KEA3DSymbol_FreeState

KEA3DSymbol_LeastMaterial

KEA3DSymbol_MaximumMaterial

KEA3DSymbol_ProjectedTolerance

KEA3DSymbol_TangentPlane

KEA3DSymbol_Statistical

KEA3DSymbol_Position

KEA3DSymbol_Square

KEA3DSymbol_Triangle

KEA3DSymbol_between

KEA3DSymbol_RegardlessOfFeatureSize

KEA3DSymbol_Degre

KEA3DSymbol_Encompassing

KEA3DSymbol_CircledU

KEA3DSymbol_CircledR

KEA3DSymbol_RightwardArrow

KEA3DSymbol_SubsetOf

KEA3DSymbol_1STANG

KEA3DSymbol_3RDANG

KEA3DSymbol_BREAK15

KEA3DSymbol_BREAK30

KEA3DSymbol_DATUM1

KEA3DSymbol_DATUM2

KEA3DSymbol_MINUS

KEA3DSymbol_PLINE

KEA3DSymbol_PLUS

KEA3DSymbol_STRETCH

KEA3DSymbol_STS

KEA3DSymbol_STS_

KEA3DSymbol_STS_ANG

KEA3DSymbol_STS_ANG_

KEA3DSymbol_STS_BAS

KEA3DSymbol_STS_BAS_

KEA3DSymbol_STS_CIR

KEA3DSymbol_STS_CIR_

KEA3DSymbol_STS_MAT

KEA3DSymbol_STS_MAT_

KEA3DSymbol_STS_MLT

KEA3DSymbol_STS_MLT_

KEA3DSymbol_STS_NOM

KEA3DSymbol_STS_NOM_

KEA3DSymbol_STS_PAR

KEA3DSymbol_STS_PAR_

KEA3DSymbol_STS_PER

KEA3DSymbol_STS_PER_

KEA3DSymbol_STS_PRT

KEA3DSymbol_STS_PRT_

KEA3DSymbol_STS_RAD

KEA3DSymbol_STS_RAD_

A3DStatus A3DMkpRTFInit

param

Functions

A3DStatus

A3DMkpRTFFieldCreate

A3DStatus

A3DMkpRTFFieldGet

A3DStatus

A3DMkpRTFFieldDelete

Detailed Description

group a3d_markup_rtf

Set of functions used to parse RTF strings.

RTF strings can be present in A3DMDFCFDraftingRowData, A3DMarkupGDTData, A3DMarkupRichTextData

Sample code

/* code to get each independent field of RTF string */
/* pRTF_UTF8 is an RTF string* */
A3DVoid* pRTF = NULL;
if(A3DMkpRTFInit(pRTF_UTF8, pRTF) == A3D_SUCCESS)
{
    A3DRTFFieldData sRTFFieldData;
    A3D_INITIALIZE_DATA(A3DRTFFieldData, sRTFFieldData );

    while(A3DMkpRTFGetField(pRTF, &sRTFFieldData) == A3D_SUCCESS)
    {
        // .......
        // TODO: process sRTFFieldData
        // .......

        A3DMkpRTFGetField(NULL, &sRTFFieldData)     // memory cleanup of the sRTFFieldData structure
    }

    A3DMkpRTFDelete(pRTF);
}

Type Documentation

enum A3DEMarkupSymbol

Symbol identifiers used in RTF strings.

Version

4.2

Values:

enumerator KEA3DSymbol_UNKNOWN

Not a symbol.

enumerator KEA3DSymbol_Angularity

Angularity.

enumerator KEA3DSymbol_MoreOrLess

MoreOrLess.

enumerator KEA3DSymbol_Micron

Micron.

enumerator KEA3DSymbol_Circularity

Circularity.

enumerator KEA3DSymbol_Concentricity

Concentricity.

enumerator KEA3DSymbol_Cylindricity

Cylindricity.

enumerator KEA3DSymbol_Parallelism

Parallelism.

enumerator KEA3DSymbol_Perpendicularity

Perpendicularity.

enumerator KEA3DSymbol_Symmetry

Symmetry.

enumerator KEA3DSymbol_TotalRunout

TotalRunout.

enumerator KEA3DSymbol_Straightness

Straightness.

enumerator KEA3DSymbol_Flatness

Flatness.

enumerator KEA3DSymbol_LineProfile

LineProfile.

enumerator KEA3DSymbol_SurfaceProfile

SurfaceProfile.

enumerator KEA3DSymbol_Runout

Runout.

enumerator KEA3DSymbol_Countersink

Countersink.

enumerator KEA3DSymbol_Counterbore

Counterbore.

enumerator KEA3DSymbol_Depth

Depth.

enumerator KEA3DSymbol_Centerline

Centerline.

enumerator KEA3DSymbol_Ohm

Ohm.

enumerator KEA3DSymbol_Omega

Omega.

enumerator KEA3DSymbol_SmallerOrEqual

SmallerOrEqual.

enumerator KEA3DSymbol_GreaterOrEqual

GreaterOrEqual.

enumerator KEA3DSymbol_Slope

Slope.

enumerator KEA3DSymbol_ConicalTaper

ConicalTaper.

enumerator KEA3DSymbol_Diameter

Diameter.

enumerator KEA3DSymbol_FreeState

FreeState.

enumerator KEA3DSymbol_LeastMaterial

LeastMaterial.

enumerator KEA3DSymbol_MaximumMaterial

MaximumMaterial.

enumerator KEA3DSymbol_ProjectedTolerance

ProjectedTolerance.

enumerator KEA3DSymbol_TangentPlane

TangentPlane.

enumerator KEA3DSymbol_Statistical

Statistical.

enumerator KEA3DSymbol_Position

Position.

enumerator KEA3DSymbol_Square

Square.

enumerator KEA3DSymbol_Triangle

Triangle.

enumerator KEA3DSymbol_between

between.

enumerator KEA3DSymbol_RegardlessOfFeatureSize

RegardlessOfFeatureSize.

enumerator KEA3DSymbol_Degre

Degre.

enumerator KEA3DSymbol_Encompassing

Encompassing.

enumerator KEA3DSymbol_CircledU

CircledU.

enumerator KEA3DSymbol_CircledR

CircledR.

enumerator KEA3DSymbol_RightwardArrow

RightwardArrow.

enumerator KEA3DSymbol_SubsetOf

SubsetOf.

enumerator KEA3DSymbol_1STANG

1STANG.

enumerator KEA3DSymbol_3RDANG

3RDANG.

enumerator KEA3DSymbol_BREAK15

BREAK15.

enumerator KEA3DSymbol_BREAK30

BREAK30.

enumerator KEA3DSymbol_DATUM1

DATUM1.

enumerator KEA3DSymbol_DATUM2

DATUM2.

enumerator KEA3DSymbol_MINUS

MINUS.

enumerator KEA3DSymbol_PLINE

PLINE.

enumerator KEA3DSymbol_PLUS

PLUS.

enumerator KEA3DSymbol_STRETCH

STRETCH.

enumerator KEA3DSymbol_STS

STS.

enumerator KEA3DSymbol_STS_

STS_.

enumerator KEA3DSymbol_STS_ANG

STS_ANG.

enumerator KEA3DSymbol_STS_ANG_

STS_ANG_.

enumerator KEA3DSymbol_STS_BAS

STS_BAS.

enumerator KEA3DSymbol_STS_BAS_

STS_BAS_.

enumerator KEA3DSymbol_STS_CIR

STS_CIR.

enumerator KEA3DSymbol_STS_CIR_

STS_CIR_.

enumerator KEA3DSymbol_STS_MAT

STS_MAT.

enumerator KEA3DSymbol_STS_MAT_

STS_MAT_.

enumerator KEA3DSymbol_STS_MLT

STS_MLT.

enumerator KEA3DSymbol_STS_MLT_

STS_MLT_.

enumerator KEA3DSymbol_STS_NOM

STS_NOM.

enumerator KEA3DSymbol_STS_NOM_

STS_NOM_.

enumerator KEA3DSymbol_STS_PAR

STS_PAR.

enumerator KEA3DSymbol_STS_PAR_

STS_PAR_.

enumerator KEA3DSymbol_STS_PER

STS_PER.

enumerator KEA3DSymbol_STS_PER_

STS_PER_.

enumerator KEA3DSymbol_STS_PRT

STS_PRT.

enumerator KEA3DSymbol_STS_PRT_

STS_PRT_.

enumerator KEA3DSymbol_STS_RAD

STS_RAD.

enumerator KEA3DSymbol_STS_RAD_

STS_RAD_.

Field Documentation

A3DStatus A3DGetCurveAsAnalytic param

Function to get curves as analytic (line or circle) according to a certain tolerance.

delete RTF data created by A3DMkpRTFInit

Get each independent field of a RTF data.

Calculates the bounding box of the model file entity, without using any callback functions.

Draws the markup item entities, using the callbacks defined by A3DDrawInitCallbacks.

Draws the representation item entities, using the callbacks defined by A3DDrawInitCallbacks.

Draws the model file entities, using the callbacks defined by A3DDrawInitCallbacks.

Enables internal SIGSEGV handling (Linux only)

Function to compute Hidden Line Removal on a A3DAsmModelFile.

Function to project Point Cloud on BrepModel with a A3DProjectPointCloudManager.

Function to get surface as analytic according to a certain tolerance.

Function to get curves as analytic (line or circle) according to a certain tolerance Try to use UV curves from Edges if exist, otherwise use 3D Curves.

Use A3DEntityDelete to delete the analytic curve after using it.

Deprecated:

Use A3DSimplifyCurveWithAnalytics instead. This will be removed in version 2026.1.0.

Use A3DEntityDelete to delete the analytic curve after using it.
Deprecated:

use A3DSimplifyCurveWithAnalyticsFromCoEdge instead. This will be removed in version 2026.1.0.

Use A3DEntityDelete to delete the analytic surface after using it. Recognized surface type are: Conic Surface Cylindrical Surface Plane Surface Spherical Surface Toric Surface
Deprecated:

use A3DSimplifySurfaceWithAnalytics instead. This will be removed in version 2026.1.0.

Version

5.0

Version

5.0

Version

5.0

Deprecated:

use A3DProjectPointCloud3 instead. This will be removed in version 2026.1.0.

Version

8.1

Memory Management

In case of success, ppProjectedPointCloud contains heap allocated memory you are responsible for. To free the memory on ppProjectedPointCloud, call A3DProjectPointCloud2 by setting pManager to 0. In this case, all other parameters are ignored:

A3DProjectPointCloud2(0, 0, 0, A3D_FALSE, 0, 0.0, ppProjectedPointCloud);

Deprecated:

use A3DComputeOrthoHLROnModelFile3 instead. This will be removed in version 2026.1.0.

Call A3DComputeOrthoHLROnModelFile( NULL, pOptMrkRView, NULL, pNumberHLRData, pppHLRData) to release pppHLRData structure ( A3DCrvPolyLine was not released) Note: If the model file doesn’t contain any representation items, function returns A3D_INVALID_DATA error;
Version

8.1

Deprecated:

use A3DComputeOrthoHLROnModelFile3 instead. This will be removed in version 2026.1.0.

Version

9.0

Call A3DComputeOrthoHLROnModelFile2( NULL, NULL, NULL, pNumberHLRRepItem, pppHLRRepItem) to release pppHLRRepItem structure ( internal A3DCrvPolyLine was not released)

If pOptMrkRView is a cutting view, psSectionParametersData can be set to 0. In this case, the cutting planes within pOptMrkRView are used for the computation. Planes must to ordered and be set a profile, otherwise the function will return #A3D_TOOLS_INVALID_SECTION_PLANE.

This function activates the handling of the SIGSEGV signal on Linux. When this function is activated, SIGSEGV is handled and an exception is thrown to return A3D_EXCEPTION.

Remark

If the model file doesn’t contain any representation item, the function will return #A3D_INVALID_DATA error

Deprecated:

the default behavior has changed with 11.2 to disable the SIGSEGV handling This will be removed in version 2026.1.0.

Deprecated:

The Draw module is deprecated and will be removed in version 2026.1.0.

To set the uiDrawFlags argument, use the flags defined in Flags for Drawing Model File Entities.
Version

2.0

Deprecated:

The Draw module is deprecated and will be removed in version 2026.1.0.

Deprecated:

The Draw module is deprecated and will be removed in version 2026.1.0.

Deprecated:

The Draw module is deprecated and will be removed in version 2026.1.0.

To set the uiDrawFlags argument, use the flags defined in Flags for Drawing Model File Entities.
Version

2.0

Version

2.0

Version

2.0

Deprecated:

This function is deprecated. Please use A3DMkpRTFFieldGet instead to implement the same behaviour. This will be removed in version 2026.1.0.

Version

4.2

Deprecated:

This function is deprecated. Please use A3DMkpRTFFieldDelete instead to implement the same behaviour. This will be removed in version 2026.1.0.

Version

4.2

Warning

must be deleted by the user

Warning

If A3DProjectPointCloudManagerCreateFromRI is used to create pManager, and A3DProjectPointCloudManagerDataFromRI::m_bUseExactComputation is set to false, you can’t set bUseExactComputation to true. In this case, an A3D_INVALID_DATA error is returned.

Warning

You must call this function before A3DDllInitialize

Retval A3D_SUCCESS:

if an analytic has been created

Retval A3D_ERROR:

Retval A3D_SUCCESS:

if an analytic has been created

Retval A3D_ERROR:

Return:

A3D_SUCCESS on success, or an error code on failure

Return:

A3D_SUCCESS on success, or an error code on failure

Param pSrf:

[in] The input surface

Param dTol:

[in] Tolerance

Param pAnalyticSurface:

[out] The new analytic surface.

Param peAnalyticType:

[out] The type of analytic surface

Retval A3D_SUCCESS:

Retval A3D_INVALID_ENTITY_NULL:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_ERROR:

Return:

A3D_SUCCESS on success, or an error code on failure

Param pManager:

[in] A3DProjectPointCloudManager created by A3DProjectPointCloudManagerCreateFromModelFile function.

Param uPointCloudSize:

[in] Number of points in pPointCloudToProject.

Param pPointCloudToProject:

[in] Point cloud to project. This point cloud must be in the same coordinate system as the BrepData structures stored in BrepModel.

Param bUseExactComputation:

[in] Flag to use exact topology. When this flag is false, the algorithm drops the point cloud on the faceted geometry, otherwise, the exact topology is used.

Param uNbThreads:

[in] Number of threads wanted. 0 means non multi-thread. Please avoid setting a number of threads larger than the number of CPU cores.

Param dInsidePointEdgeTolerance:

[in] Tolerance used to check if projection point which is inside a face is on edge.

Param ppProjectedPointCloud:

[out] Point cloud projected.

Retval A3D_SUCCESS:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_INVALID_DATA:

Retval A3D_ERROR:

Return:

A3D_SUCCESS on success, or an error code on failure

Param pModelFile:

[in] Model file to work on.

Param pOptMrkRView:

[in] optional A3DMkpView (cut, filter and/or move entities).

Param psHLRViewPlaneData:

[in] define a plane as a camera with orthogonal projection.

Param pNumberHLRData:

[out] Number A3DHLRRepresentationItemData.

Param pppHLRData:

[out] HLR curve result grouped by A3DRiRepresentationItem entity. pppHLRData is automatically allocated by A3DComputeOrthoHLROnModelFile.

Retval A3D_SUCCESS:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_INVALID_DATA:

Retval A3D_ERROR:

Retval A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE:

Return:

A3D_SUCCESS on success, or an error code on failure

Param pModelFile:

[in] Model file to work on.

Param pOptMrkRView:

[in] optional A3DMkpView (cut, filter and/or move entities).

Param psHLRViewPlaneData:

[in] define a plane as a camera with orthogonal projection.

Param pNumberHLRRepItem:

[out] Number A3DHLRRepresentationItem.

Param pppHLRRepItem:

[out] HLR curve result grouped by A3DRiRepresentationItem entity. pppHLRRepItem is automatically allocated by A3DComputeOrthoHLROnModelFile.

Retval A3D_SUCCESS:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_INVALID_DATA:

Retval A3D_ERROR:

Retval A3D_TOOLS_INVALID_SECTION_PLANE:

Retval A3D_INCOMPATIBLE_FUNCTION_WITH_KEEP_PARSED_ENTITY_MODE:

Return:

A3D_SUCCESS on success, or an error code on failure

Retval A3D_SUCCESS:

Retval A3D_ERROR:

if not on Linux

Return:

A3D_SUCCESS on success, or an error code on failure

Retval A3D_INITIALIZE_NOT_CALLED:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_ENTITY_NULL:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_SUCCESS:

Retval A3D_INITIALIZE_NOT_CALLED:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_ENTITY_NULL:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_SUCCESS:

Retval A3D_INITIALIZE_NOT_CALLED:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_ENTITY_NULL:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_SUCCESS:

Return:

A3D_SUCCESS on success, or an error code on failure

Return:

A3D_SUCCESS on success, or an error code on failure

Return:

A3D_SUCCESS on success, or an error code on failure

Retval A3D_INITIALIZE_NOT_CALLED:

Retval A3D_INVALID_DATA_STRUCT_SIZE:

Retval A3D_INVALID_DATA_STRUCT_NULL:

Retval A3D_INVALID_ENTITY_NULL:

Retval A3D_INVALID_ENTITY_TYPE:

Retval A3D_SUCCESS:

Return:

A3D_SUCCESS on success, or an error code on failure

Retval A3D_ERROR:

Retval A3D_SUCCESS:

Return:

A3D_SUCCESS on success, or an error code on failure

Retval A3D_ERROR:

Retval A3D_SUCCESS:

Return:

A3D_SUCCESS on success, or an error code on failure

Function Documentation

A3DStatus A3DMkpRTFFieldCreate(const A3DUTF8Char *pRTFString, A3DMkpRTFField **pRTFField)

Initialize RTF data for parsing Previously A3DMkpRTFInit.

Version

10.1

Return values:
  • A3D_ERROR

  • A3D_SUCCESS

Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DMkpRTFFieldGet(const A3DMkpRTFField *pRTFField, A3DMkpRTFFieldData *pRTFFieldData)

Get each independent field of a RTF data Previously A3DMkpRTFGetField.

Version

10.1

Return values:
  • A3D_ERROR

  • A3D_SUCCESS

Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DMkpRTFFieldDelete(const A3DMkpRTFField *pRTFField)

delete RTF data created by A3DMkpRTFInit Previously A3DMkpRTFDelete.

Version

10.1

Return values:
  • A3D_ERROR

  • A3D_SUCCESS

Returns:

A3D_SUCCESS on success, or an error code on failure