The 3D ACIS® Modeler (ACIS) is Spatial’s prominent 3D solid modeling engine. 3D InterOp is a CAD data translation framework (Interoperability)

Component:Faceter

From DocR20

(Redirected from Faceting)
Jump to: navigation, search


All Faceter Articles | C++ APIs | Scheme Extensions
edit  

Faceter Component


Faceter Example

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. Faceting supplies refinements to the polygons that specify how they 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 refinements. Refinements specify the accuracy of the faceted representation, and also control how triangulation is performed and whether smoothing is used to improve the aspect ratios of triangles. The faceted representation of a face is also called a mesh.

Faceting is used by all active and static renderers. Refinements for faceting 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.

Entities and their refinement attributes are stored in the save file. Because facets can be regenerated from the entities and their refinements, facet information is not stored in the save file. However, facets can be output through mesh managers to an application-determined data structure, which the application can manage as it sees fit.


edit  

Faceter Operations


Operation Description
Faceter Initialization and Configuration Initialization; setting the mesh manager, refinement, and vertex template.
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.


edit  

What's New in Faceter


New Functionality

  • Faceting edges
A new option, facet_edge_features, has been added to improve the Faceter. Sometimes edges may have wild fluctuations. When set to true, the faceting of these edges is enhanced by first using knot values of the spline representation, and then proceeding with the old algorithm. This ensures that features of these edges are captured in the faceting solution. However, there may be more facets along the edge than previously realized. The default for this option in ACIS R19 is false, whereas the default in ACIS R20 and later is true.
  • Adaptive Faceting on the fringe
A new option, adaptive_t_fringe, has been added to enable use of adaptive faceting on the fringe of faces. Refer to Adaptive Faceting for more information.



edit  

Faceter Topics


Mesh Managers

Main article: Mesh Managers

If facet information is to be saved, the application must provide a derived class to handle the details. This involves either choosing one of the mesh managers provided by ACIS (see ACIS Mesh Managers), or writing a custom mesh manager (see Derived Mesh Managers), deriving from the MESH_MANAGER class. Making the right choice for an application ensures that…

Refinements

Main article: Refinements

A refinement controls how the facets approximate the solid model and how accurately. A REFINEMENT is a C++ class that encapsulates all refining control parameters along with methods to read and modify the parameters.

Adaptive Faceting

Main article: Adaptive Faceting

Adaptive faceting uses the standard facet mesh as a starting point. It inspects each facet edge in the mesh. If tolerances are not met near an edge, the edge is split by adding a new facet node.

The Faceting Algorithm

Main article: The Faceting Algorithm

The process ("facet generation") by which the Faceter generates face nodes and polygons can be divided into four general phases…

Data Flow During a Faceting Session

Main article: Data Flow During a Faceting Session

The following figure shows the data flow during a faceting session…

Journaling and Versioning

Journaling and Versioning are available for Faceter through the standard AcisOptions mechanism.



edit  

See Also


edit  

Faceter Interface


C++ APIs

The C++ Faceter APIs fall into several categories. A number of these are used to prepare for faceting. An example of this is

api_set_entity_refinement(entity, refinement, apply to descendants),

which attaches a refinement to an entity, with the option to apply the former to the entity's descendants ("child entities") as well. The APIs used to facet entities constitute a second category, typified by the function that facets entities marked as unfaceted:

api_facet_unfaceted_entities(owning entity, entities to facet if unfaceted).

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 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, there are some global options that 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.


Personal tools