The 3D ACIS® Modeler (ACIS) is Spatial’s prominent 3D solid modeling engine. 3D InterOp is a CAD data translation framework (Interoperability)
Component:Skinning
From DocR20
Skinning (component AS) is a modeling technique that fits a surface through a series of curves and builds the required topological structure for the resulting body. Skinning can be used to create closed, solid bodies as well as open, solid bodies (sheet bodies). The input curves are given in the form of wire bodies and the skinning operation handles all necessary topological operations to make multiple face bodies.
The skinned surface is a two-parameter parametric function S(u,v); the curves provide the u parameter of the surface and the skin surface algorithm defines the v parameter. It is represented in ACIS as a procedural surface and does not have C1 or G1 discontinuities. ACIS can make a skin surface between any numbers of curves. The surface allows a take-off vector field to be placed on each of the curves, forcing a tangent constraint on that surface at that curve cross section. Although tangent constraints are more often associated with lofting, skinning allows constraints to be placed on profiles in several indirect ways.
Skinning and lofting are very similar techniques. However, in ACIS, two distinctions exist: skinning takes wire bodies as input and allows control over tangent constraints in indirect ways. Lofting takes coedges as input and allows direct control over tangent constraints (via neighboring surfaces or ACIS Laws). Skinning and lofting are related historically in the industry and in their ACIS implementations. Skinning is often used as a newer term for lofting, although ACIS maintains a distinction between the two operations.
The Advanced Surfacing Component provides eight functional variations of skinning, differing by methods of surface control:
| Operation | Description |
|---|---|
| Basic skinning | Skinning through a series of wires. |
| Skinning with a path | Skinning through a series of wires with a tangent field defined from a curve |
| Skinning with a draft angle | Skinning through a series of wires with a tangent field defined from a draft angle |
| Skinning to the planar normal | Skinning through a series of wires with a tangent field defined by a normal to wire planes |
| Skinning with guide curves | Skinning through a series of wires and the addition of one or more locally defined guide curves along the v direction |
| Skinning with virtual guide curves | Skinning through a series of wires and the addition of globally defined guide curves along the v direction |
| Skinning with ruled surfaces | Linear skinned surfaces through a series of wires |
| Multi-stem skinning | Skinning through a multiple series of wires |
Lateral Edge Tangency in Skinning and Lofting
- Main article: Lateral Edge Tangency in Skinning and Lofting
When an incoming wire profile has multiple coedges, skinning can result in multiple skinned faces. A lateral edge is the edge that connects these adjacent skinned faces. Skinning and Lofting have the ability to control the tangency of this EDGE.
Options
- Main article: Skinning and Lofting Options
The main skinning APIs take options to control surface parameterization, wire twist, wire direction, simplification, creation of a solid or closed body and various other options. Although different types of skinning accept different options, all options maintain the same principle and purpose across the functional variations. The options are passed in via the class skin_options.
Journaling
- Main article: Journaling for Skinning and Lofting
Journaling is available for skinning through the standard ACIS options journaling mechanism.
Skinning and Lofting Interactive Interface
- Main article: Skinning and Lofting Interactive Interface
The interactive programming interface for skinning and lofting allows the application developer to call the individual steps performed in skinning and lofting one at a time to build an interactive skinning or lofting application.
APIs
The C++ skinning APIs and Skinning Scheme Extensions require three basic categories of parameters (arguments). The first category defines the wire body profiles to be skinned. The second category defines the functional variation of the skinning operation to be performed (for example, skinning with guides, and skinning with a path). The third category contains optional parameters to control what type of object is formed as a result of the skinning operation (for example, open solid (sheet) or closed solid). The base API is api_skin_wires.
api_skin_wires (profiles, guides / paths or draft conditions, skinning options)
The APIs will return a skin as an open or closed solid body. The profiles (and all the input data including guide curves) given as input remain untouched and exist after the API.
Profiles
The profiles used for skinning are given as an array of wire bodies and hence each wire body may contain more than one edge. In this case, and for lofting, edges are aligned (with the possibility of splitting edges) and a series of surfaces are made. The resulting body consists of one or more faces linked together to form an open or closed solid.
The list of profiles must contain at least two wires. If a closed body (in the v direction) is required, at least three distinct wire profiles must be provided. If the first and last profiles are identical, a body closed in v is automatically constructed.
Wires can be open or closed but the entire wire list must be all open or all closed (defining closure in the u direction). They must be simple loops if closed and in all cases, not self-intersecting. Additionally, the first and last wires in a skin surface may be points (a point in ACIS is represented by a vertex wire). For example, skinning between a point and a circular arc will give a spline cone with the point being the apex.
Guides, Paths, and Draft Conditions
The second category defines the functional variation of the skinning operation to be performed. In the case of basic skinning there are no arguments for this category. However for skinning with guides, a list of one or more edges is required. For skinning with a path, an additional wire body is required. For skinning with a draft angle, two angles and magnitudes are required. For skinning with planar normal constraints, the enumerated type skinning_normals is required. api_skin_wires is overloaded to handle all the different permutations of input.
Skinning Options
The third category, skinning options, provides the interface to control surface parameterization, wire twist, wire direction, simplification, creation of a solid or closed body, and various other options. Although different types of skinning accept different options, all options maintain the same principle and purpose across the functional variations. The options are passed in via the class skin_options.
Annotations
- Main article: Feature Naming and Annotations
Skinning supports annotations for the faces and edges in the newly created body.
Error Codes
- Main article: Skinning and Lofting Error Codes
Upon failure of an Advanced Surfacing API, Skinning and Lofting error codes will be returned that explain the failure and suggest possible actions for correction.
