Component:Faceter
From DocR21
The Faceter Component (FCT) generates and controls approximate polygonal representations. The polygon approximations are used in all active and static rendering, in clearance analysis, and in operations where approximations are acceptable to simplify calculations. You supply a facet_options object to the Faceter that specifies how the polygons should be generated. The ACIS Faceter supports only view-independent faceting.
Faceting generates approximate polygonal representations for the faces of entities while maintaining edge consistency between adjacent faces. Face faceting is performed by subdividing the face in parameter space with a grid whose increments are determined through the facet_options object. This specifies the accuracy of the faceted representation, and also controls the details of how triangulation is performed. The faceted representation of a face is also called a mesh.
Faceting is used by all active and static renderers. The facet options have a significant effect on the rendering process: the tighter the facets, the smoother the rendered surface is. However, the tighter the facets, the slower the rendering process becomes. On the other hand, the looser the facets, the faster the rendering process becomes, but the rendered surface is rougher. Refer to Using Facet Options for more details.
Facet information is not stored in saved files. However, facets can be output through mesh managers to an application-determined data structure, which the application can manage as it sees fit.
Getting Started with the ACIS Faceter
- Main article: Getting Started with the ACIS Faceter
This article describes how to quickly place code into place to load and facet a body, and use the resulting facet mesh.
Incremental Faceting
- Main article: Incremental Faceting
For optimum faceting performance, an application facets the entire part only when it is loaded; thereafter, only the changed pieces of the model need to be refaceted. This article describes how to use incremental faceting.
Quad Tree Gridding
- Main article: Quad Tree Gridding
The ACIS Faceter gridding algorithm for splines has been rewritten in R21. This section describes the gridding algorithm and provides examples illustrating the improved facet quality.
Journaling and Versioning
Journaling and Versioning are available for Faceter through the standard AcisOptions mechanism. Refer to HowTo: Facet with R20 behavior to learn how to use versioning to disable the R21 Faceter improvements.
Faceter Robustness Guidelines
- Main article: Faceter Robustness Guidelines
The ACIS Faceter is designed to generate output for almost any input part. Inevitably, you will find trade-offs between speed and robustness. In order to maintain good performance over a broad spectrum of input models, the Faceter makes very little effort to repair parts for visualization. Instead, the Faceter reports problems it encounters, and as a result, bad input parts may generate poor output.
Mesh Managers
- Main article: Mesh Managers
Mesh Managers control how the mesh is streamed to applications. For many uses, the default mesh manager, INDEXED_MESH_MANAGER, is a good choice. If more customized mesh formats are desired, the application may choose another MESH_MANAGER.
| Operation | Description |
|---|---|
| Faceter Initialization and Configuration | Initialization. |
| Faceting Entities | Ways to facet a model. |
| Using Facet Data | Using the facet data associated with a model. |
| Saving Facet Data | Saving facet information along with the model. |
| Deleting Facets and Termination | Termination; mesh and polyline deletion. |
| Optional Configuration | Ways to customize the mesh you get from the Faceter. |
C++ APIs
The C++ Faceter APIs support faceting in several workflows such as:
api_facet_entity(entity); // facets all faces and edges of a body.
and
api_facet_entities(owning body, entities ); // facets the specified faces and any edges where both incident faces are included in the input list.
A few APIs such as
api_facet_area(entity, facet area)
allow access to the resulting facet data and properties. Lastly, functions such as
api_delete_entity_facets(entity, apply to descendants)
may be used to delete facet data when it is no longer of use to an application.
Annotations
- Main article: Feature Naming and Annotations
The Faceter component does not generate any annotations.
Options
Important: For historical reasons, some global options can also affect the behavior of Faceter operations. Refer to Faceter global options.
Error Codes
- Main article: Faceter Error Codes
Upon failure of a Faceter API, error codes will be returned that explain the failure and suggest possible actions for correction.
If the Faceter encounters problem situations that do not cause an API failure, it will populate the outcome object with error information. Refer to Faceter Problem Reporting for more details.
