Face Tapering   

<<< Replacing The Surfaces Of Faces Chapters Body Tapering >>>

Contents

[back to top]


66.1 Introduction

This chapter describes how faces can be modified using tapering (often called drafting) when molding or casting a model part. Applying a taper (or adding draft) allows the part to be easily withdrawn from the mold as shown in Figure 66-1.

 

Figure 66-1 Removing a tapered and untapered part from a mold

Tapering is typically used to model parts for injection molding or casting, as it changes the angle of “steep” side surfaces, thereby allowing a part to be easily withdrawn from a mold.There are two stages involved in tapering a set of faces which are summarised here:

During both stages, the functionality requires a draw direction vector pointing into the mold and a draft angle.

 

Note: Throughout this tapering process an isocline curve is defined to be a boundary between an all-steep region and a non-steep region of a surface. At all points on an isocline curve the face normal makes an angle with the draw direction equal to π/2 - taper angle.

For an example of this functionality, see the code example in the C++\Code Examples\Modelling\LOP\Taper folder located in example_applications in your Parasolid installation folder.

 

Note: This functionality partially supports facet geometry. See PK_FACE_taper for more information.

 

Related Topics:

66.1.1 Creating and imprinting isocline curves

During the analysis stage of the process, you can use either PK_FACE_imprint_cus_isoclin or PK_SURF_make_cus_isocline to create and imprint isocline curves on a set of faces or a given surface.The set of faces must all come from the same body. Typically some faces are split during this analysis phase.

If you are using facet geometry, the mesh_normal_field option provides control over imprinting isocline curves on a mesh. This option allows you to specify whether mvertex normals or mfacet normals are used to generate isocline curves on a mesh. Unlike classic surfaces, you can choose how to determine the normal associated with a point on a mesh. This can either be a mfacet normal or a mvertex normal. For more information on these mesh normals, see Section 88.3, “Mesh normals”.

The mesh_normal_field option has the following values:

 

Values

Description

PK_MESH_normal_field_mvertex_c

Whether isocline curves are generated using the mvertex normals of the mesh. These isocline curves may divide the existing mfacets. This is the default.

PK_MESH_normal_field_mfacet_c

Whether isocline curves are generated along existing mfins using the mfacet normals of the mesh.

The results of using either mvertex normals or mfacet normals to generate isocline curves are illustrated in Figure 66-2.

 

Figure 66-2 Creating isocline curves on meshes using mvertex normals or mfacet normals

 

Note: The mesh_normal_field option is not implemented for classic geometry.

PK_FACE_imprint_cus_isoclin can also report whether the returned ret_faces are steep. Faces are deemed to be steep when, at all points, the face normal makes an angle with the draw direction which is greater than π/2 - taper angle, in radians.

66.1.2 Calling PK_FACE_taper

PK_FACE_taper takes the following arguments:

 

Argument

Description

n_faces
faces

The number of faces used in the taper operation and the faces themselves.

references

The reference entities used in the taper operation. See Section 66.1.3, “Reference entities” for more information.

direction

The direction of the face taper.

angle

The angle of the face taper.

tolerance

The maximum tolerance of the tapered surface.

options

A set of options to control the result of the tapering operation. See Section 66.2, “Summary of PK_FACE_taper options” for more information.

66.1.3 Reference entities

PK_FACE_taper requires a reference entity from the reference argument for each face it tapers. The reference entity is used to define the taper surface. It can be one of the following:

 

Entity

Description

an edge

The reference edge stays fixed while the other edges of the taper face are altered to perform the taper. If isocline curves are imprinted during the analysis phase, the resulting edges can be used as reference edges during the tapering phase.

a face

The taper face acquires the same taper surfaces as the reference face. See Section 66.1.3.4, “Example 3: Using an adjacent face as the reference entity” for an example.

a surface

The intersection of the taper face with the reference surface stays fixed.

If a face is used as a reference entity, it must appear in both the faces array and the reference array such that each face entry in the faces array maps to a single reference entity in the corresponding position in the reference array. Multiple references can be specified by duplicating the faces in the faces array.

Step tapering can be performed by passing a set of edges and surfaces as reference entities for a single face. See Section 66.4, “Step tapering” for more information.

66.1.3.1 Examples of using reference entities

The following examples are intended to illustrate the different aspects of this functionality.

66.1.3.2 Example 1: Splitting a single face and tapering to the resulting faces

In Figure 66-3: (a) the curved face has been analysed and split by two isocline curves into three faces, of which two need tapering; (b) shows the tapering stage complete and illustrates the isocline surfaces meeting the original face smoothly.

 

Figure 66-3 Splitting a single face and tapering two of the resulting faces

66.1.3.3 Example 2: Selecting edges as reference entities

In Figure 66-4, both faces f0 and f1 require tapering. In this instance you may identify edges e0 and e1 as the reference entities that both retain their geometry after the taper is applied. In this example the taper surface for face f0 is a plane and for face f1 a ruled B-surface.

 

Figure 66-4 Selecting edges e0 and e1 as reference entities

66.1.3.4 Example 3: Using an adjacent face as the reference entity

In Figure 66-5 two faces (f0 and f1) need tapering to produce the result shown. To achieve this result, you need to specify f0 and f1 as the faces to be tapered. In addition, e0 should be specified as the reference entity for f0, and f0 should be specified as the reference entity for f1, which means that f1 acquires the same taper surface as f0. Figure 66-5 shows the effect of using this specification and, since f0 and f1 are adjacent, they are merged into one face.

 

Figure 66-5 Using an adjacent face as the reference entity

66.1.3.5 Example 4: Splitting a single face into multiple taper surfaces using reference edges

In Figure 66-6, three edges (e0,e1 and e2) are specified as reference edges for face f0. Tapering the body results in splitting f0 at the common vertex of e0 and e1 and at the common vertex of e1 and e2 into faces f0, f1 and f2. These three faces are then tapered appropriately.

 

Figure 66-6 Using reference edges to taper face f0

[back to top]


66.2 Summary of PK_FACE_taper options

PK_FACE_taper contains a wide variety of options to let you control the result of the taper operation, The following table summarises the options available, full details of which are given in the rest of this chapter.

 

Option

Description

merge_face

Whether tapered faces should be merged with their neighbouring faces.

Default: PK_LOGICAL_true

check_fa_fa

Whether to check for face-face inconsistencies.

Default: PK_check_fa_fa_yes_c

tapered_edges
normal_edges

When performing step tapers, a list of edges that produce tapered step faces, and a list of edges that produce normal step faces. See Section 66.4, “Step tapering”, for more information.

method

Which taper method to use in the operation.

Default: PK_taper_method_isocline_c

See Section 66.3, “Taper methods” for more information.

offset

The offset distance used when method is set to PK_taper_method_offset_c. See Section 66.3.3, “Offset tapering” for more information

Default: 0.0

top_surface

The surface on which the reference edge’s curve is projected when performing offset tapering. See Section 66.3.3, “Offset tapering” for more information

Default: PK_ENTITY_null

taper_smooth_step

Whether to create step faces when you have a smooth boundary edge between a face which is to be tapered and a face that is not being tapered. See Section 66.4.2, “Automatic step tapering” for more information.

Default: PK_taper_smooth_step_no_c

taper_step_face

Whether to create step faces between taper faces that have become disconnected as a result of the tapering operation. See Section 66.4.3, “Creating steps between taper faces” for more information.

Default: PK_taper_step_face_no_c

taper_faces
n_faces

A list of faces that are tapered using different taper angles for each face. See Section 66.5, “Specifying multiple angles” for more information.

Default: NULL, 0

angles

An array of angles that you want to apply to the faces listed in taper_faces . The supplied angles are subject to the restrictions described in the description of taper_faces in Section 66.5, “Specifying multiple angles”.

Default: NULL

position

How to process laminar edge boundaries. See Section 66.6, “Controlling laminar edges” for more information.

Default: PK_taper_laminar_edge_normal_c

grow

Whether to grow faces when repairing face clashes. See Section 66.7, “Controlling the growth of overflowing faces” for more information.

Default: PK_FACE_grow_update_c

parting_edges
n_parting_edges

Edges used to create step faces from parting_body . See Section 66.4.4, “Creating step faces from a parting body” for more information.

Default: NULL, 0

parting_body

The body used to create step faces from parting_edges . This must be a sheet body. See Section 66.4.4, “Creating step faces from a parting body” for more information.

Default: PK_ENTITY_null

update

Update switch to maintain consistency when rebuilding models built in older version of Parasolid. See Section 62.5.2, “Update control”, for more information.

Default: PK_local_ops_update_default_c

[back to top]


66.3 Taper methods

Parasolid allows you to create a number of different types of tapers using the method field in the options structure for PK_FACE_taper.

This field can take the following values:

 

Value

Description

PK_taper_method_isocline_c

Isocline-based tapering is the default method. It calculates tapered faces with reference to the taper direction and the taper reference curve tangents. It fails if the taper condition is not satisfied. It is particularly suited to creating molds. See Section 66.3.1, “Isocline-based tapering” for more information.

PK_taper_method_curve_c

Curve-based tapering calculates tapered faces with reference to the taper direction, and the direction perpendicular to the taper direction, and the reference edge’s curve tangent. This method is particularly suited to aesthetic tapering. The taper condition does not need to be satisfied for this method to succeed. See Section 66.3.2, “Curve-based and surface-based tapering” for more information.

PK_taper_method_surface_c

Surface-based tapering calculates tapered faces with reference to the taper direction and the normal of the taper faces’ original surfaces. The taper condition does not need to be satisfied for this method to succeed. This method is particularly suited to aesthetic tapering. See Section 66.3.2, “Curve-based and surface-based tapering” for more information.

PK_taper_method_offset_c

Offsetting tapering calculates tapered faces by projecting the curve of the reference edge onto the top surface, such that the resulting curve appears offset from the reference edge curve when viewed from the taper direction. This method is useful when creating a tapered surface against a single curved top surface.See Section 66.3.3, “Offset tapering”for more information.

PK_taper_method_normal_c

Normal-to-surface tapering produces tapered surfaces similar to those created by the curve method, but here they are independent of the global taper direction. Instead, the draw direction varies according to the normal of the reference surface. This method is useful for creating a tapered surface that is independent of the global taper direction.See Section 66.3.4, “Normal-to-surface tapering” for more information.

66.3.1 Isocline-based tapering

Isocline-based tapering lets you create tapered surfaces which satisfy the taper input condition: for all faces being tapered, the angle between the taper direction and the taper reference curve tangent must be greater or equal to the taper angle at all points along the curve. This is the default tapering method and has been described in previous sections.

66.3.2 Curve-based and surface-based tapering

Curve-based tapering lets you create tapered surfaces in cases where the taper condition is not satisfied (such as when the taper reference curve is in the same direction as the draw direction). It is particularly suited to aesthetic tapering.

Surface-based tapering also lets you create tapered surfaces in cases where the taper condition is not satisfied, using a different method of calculation. It is also particularly suited to aesthetic tapering.

In some cases, surface-based and curve-based tapering yield identical solutions, as shown in Figure 66-7.

 

Figure 66-7 Creating surface and curve-based tapers

66.3.3 Offset tapering

Offset tapering lets you create tapered surfaces in which the curve of the reference edge is projected onto a single top surface, creating a new “offset curve” that appears offset from the curve of the reference edge when viewed from the direction of taper, as shown in Figure 66-8.

When producing this type of taper, you should use top_surface to specify the surface on which the reference edge’s curve is projected. It must be the surface of a face in the body, and should not be the surface of any taper face.

 

Figure 66-8 Creating an offset taper

66.3.4 Normal-to-surface tapering

Normal-to-surface tapering produces tapered surfaces that are not dependent on the draw direction but vary with the normal of a reference surface. This may be supplied as a reference entity (see Section 66.1.3, “Reference entities” for more information) or, where the reference entity is an edge, taken as the surface of the face adjacent to this reference edge. An example is shown in Figure 66-9, where the results are compared with those from the default taper method (PK_taper_method_isocline_c). The plan view shows that the normal-to-surface operation has constructed a tapered surface with a varying draw direction.

 

Figure 66-9 Creating a normal-to-surface taper

[back to top]


66.4 Step tapering

In step tapering, the taper is based on both a reference surface and a parting line of reference edges. The specified faces are tapered in the same way as in regular tapering, but, contrary to regular tapering, these faces are not split into new faces stemming from the reference edges. Any of the reference edges that do not lie in the reference surface produce a new step face which extends from the reference edge to the tapered face.

A typical example of step tapering is shown in Figure 66-10. The face to taper is marked f0, the reference surface is the plane marked s0 and the reference edges form the parting line. The taper direction is the upward vertical.

 

Figure 66-10 Partial step tapering

As in regular tapering, the reference edges, the intersections of the faces to taper and the reference surface, are kept fixed. The reference surface, though, does not have to intersect the faces to taper, as shown in Figure 66-11.

 

Figure 66-11 Step tapering

The reference surface may also split reference edges into new edges (as shown in Figure 66-12), leading to the creation of the new-edge associated step faces, or merge reference edges, as required by the taper operation.

 

Figure 66-12 Edges of the reference surface are split

66.4.1 Step surfaces

The surfaces attached to the step faces created from reference edges during a step taper operation can be of two types:

 

Figure 66-13 Step-tapered body with normal step face

66.4.2 Automatic step tapering

When there is a smooth edge between a face to be tapered and a face that is not being tapered, you can use the taper_smooth_step option in PK_FACE_taper_o_t to automatically create a step face. This is illustrated in Figure 66-14.

 

Figure 66-14 Automatic creation of step faces

 

Note: The step faces created using this option have normal surfaces attached, rather than tapered. See Section 66.4.1, “Step surfaces”, for more information.

66.4.3 Creating steps between taper faces

Sometimes, taper faces that are connected in the original body can become separated as a result of the taper operation. This occurs, for example, when smoothly connected faces are tapered using multiple angles, as described in Section 66.5, “Specifying multiple angles”.

You can use the taper_step_face option to control the creation of step faces between taper faces that get separated in this way.

Figure 66-15 shows a body on which two adjacent faces are tapered by different angles. Parasolid has created a step faces between the resulting tapered faces. Notice also that step faces have been created between each tapered face and any adjacent non-taper faces that are smoothly connected, as described in Section 66.4.2, “Automatic step tapering”.

 

Figure 66-15 Creating step faces between taper faces

The taper_step_face option takes the following values:

 

Value

Description

PK_taper_step_face_no_c

Do not create a step face between taper faces that are separated. Instead, Parasolid attempts to trim the taper faces appropriately. This is the default.

PK_taper_step_face_yes_c

Create a step face between taper faces that are separated during the taper operation.

PK_taper_preserve_smooth_c

Step faces are created between any sharply connected faces that are separated, but Parasolid attempts to preserve the smooth boundary of any smoothly connected faces.

If you use this value when tapering using multiple angles, you must ensure that any smoothly connected faces all have the same taper angle. See Section 66.5, “Specifying multiple angles” for more information.

66.4.4 Creating step faces from a parting body

You can produce step faces from a parting sheet using the parting_edges and parting_body options in PK_FACE_taper.

Figure 66-16 shows the creation of step faces using the imprinted edges of a parting sheet. The parting_edges of the parting sheet are imprinted on the faces of the body that are to be tapered. Step faces are then created along these imprinted edges.

 

Figure 66-16 Creating step faces from a parting sheet

These options are also available in PK_FACE_change_taper_o_t. See Section 72.4.2, “Taper options”, for more information.

[back to top]


66.5 Specifying multiple angles

As well as tapering a set of faces using a single taper angle, you can taper multiple faces using multiple angles with the taper_faces and angles options.

The taper_faces option is an array of faces for which you want to specify multiple angles. The angles option is an array of angles that you want to apply to those faces. Each face in taper_faces should be unique, and should also be included in the list of faces passed to PK_FACE_taper. The taper_faces may consist of faces that are connected, either sharply or smoothly.

The taper_faces and angles specified are subject to the following restrictions:

Figure 66-17 shows some examples of bodies where several faces have been tapered using different angles.

 

Figure 66-17 Creating face tapers using multiple angles

Very often, specifying multiple taper angles causes adjacent tapered faces to become separated as a result of the taper operation. Parasolid can repair these separations by adding a step face automatically, and we strongly recommend that you use this functionality. Figure 66-18 shows an example in which four step faces need to be added to repair the body. See Section 66.4.3, “Creating steps between taper faces”, for information.

 

Figure 66-18 Repairing separated taper faces

[back to top]


66.6 Controlling laminar edges

You can control how the geometry attached to any laminar edges in a tapered face is created using the position option. This can have a significant effect on the shape of the resulting tapered body. The position option takes the following values:

 

Value

Description

PK_taper_laminar_edge_normal_c

The geometry for the laminar edges on the tapered face is produced by projecting the geometry for the laminar edges on the untapered face along the normal of the tapered face. This is the default.

PK_taper_laminar_edge_draw_c

The geometry for the laminar edges on the tapered face is produced by constructing ruled surfaces from the laminar edges of the untapered face that are orthogonal to the draw direction. The position of the laminar edges of the tapered face is then determined from the intersection of this ruled surface with the tapered face.

Figure 66-19 shows how the result of a taper operation can be affected by using this option. In the illustration, a cylindrical face is tapered by a large angle using both methods. Using the default method, the tapered face is significantly shorter in the axis of the draw direction than using the alternative method. Using the alternative value, a tapered face with the same height as the cylindrical face is produced.

 

Figure 66-19 Controlling the position of laminar edges in tapered faces

[back to top]


66.7 Controlling the growth of overflowing faces

When features with different convexities overflow each other as a result of tapering, you can control which of the clashing features is grown to heal the model using the grow option.

Figure 66-20 shows a simple example of the effects that you can achieve using this functionality.

 

Figure 66-20 Controlling the growth of overflowing features with different convexity

This option is available in a range of different functional areas, including local operations, hollowing, and thickening. For a full description, see Section 72.5.5, “Controlling the growth of overflowing faces”.

 

[back to top]

<<< Replacing The Surfaces Of Faces Chapters Body Tapering >>>