Thickening   

<<< Hollowing Chapters Introduction To Model Editing >>>

Contents

[back to top]


60.1 Introduction

Thickening is the process of offsetting all the faces in a sheet body in order to create a solid body. Parasolid provides thickening functionality so that you can model thin-walled parts, for example sheet metal parts, in your application.

 

Figure 60-1 Thickening a sheet body into a solid body

Sheets may be thickened from either or both sides, along the surface normal. All faces in the sheet body can be thickened by the same amount, or different distances can be specified for different faces. Only manifold sheets can be thickened.

Side faces are created during thickening using one of the following methods:

In the first two of these methods, analytic geometry is used where possible, and ruled B-surfaces are used otherwise. Some edge geometry on the sheet boundary may have to be approximated by SP-curves in order to generate boundary curves on the offset faces.

Parasolid’s offsetting functionality is fundamental to the thickening operation. This means that certain topological changes are possible when thickening, such as deleting faces that become degenerate by offsetting. Figure 60-2 shows an example.

 

Figure 60-2 Thickening a sheet body, resulting in a topological change

By default, Parasolid creates triangular side faces when thickening sheets with sharp internal (i.e. non-boundary) edges, such that the two faces adjacent to the edge do not meet smoothly.

In general, the changes to topology and geometry that are permitted during thickening operations are similar to those permitted for offsetting operations. See Section 58.11, “Changes to topology and geometry”, for more details.

Thickening fails on valid sheet bodies that have a point contact vertex, such as the example shown in Figure 60-3. Thickening this sheet body would create an invalid solid body that contains a non-manifold edge.

 

Figure 60-3 Thickening a sheet body with a point contact vertex

 

Note: This functionality offers partial support for facet geometry.

 

Related Topics:

[back to top]


60.2 Basic usage of thickening functionality

You can thicken a sheet body to form a solid body using PK_BODY_thicken_3. This function receives a body , together with offset information which it uses to generate the appropriate thickened body.

Unlike offsetting and hollowing, where a single offset distance is specified, PK_BODY_thicken_3 receives two offsets: front_default and back_default . The sheet body is then thickened by offsetting in both directions by the specified amount, as shown in Figure 60-4.

 

Figure 60-4 Thickening a body using front and back offsets

Under some circumstances it may be necessary to replace exact edge geometry with tolerant geometry. Parasolid uses the supplied tolerance when calculating approximate geometry.

The following table provides a summary of the options available in PK_BODY_thicken_3. Default values are set such that all faces in the sheet body are thickened by the amount specified in the arguments to PK_BODY_thicken_3.

 

Option

Description

faces
n_faces
front_offsets
back_offsets

A group of options that are used to specify that certain faces in the body should be thickened by different amounts than those specified in the front_default and back_default . See Section 60.3, “Thickening faces by different distances”, for more details.

check_fa_fa

Whether to check for face-face inconsistencies.

method
punch_dir

Options that allow you to thicken a body in a direction other than the direction of the surface normals of the body’s faces. See Section 60.4, “Specifying a punch direction for side faces” for details.

edges
n_edges
surfaces
n_surfaces

Options to let you supply side surfaces to use for certain areas of the thickened body, rather than allowing Parasolid to generate those surfaces automatically. See Section 60.5, “Supplying side surfaces to use when thickening”, for more details.

offset_method

The method by which self-intersections are removed when thickening. This is the same option as available in Parasolid’s offsetting functionality. See Section 60.6, “Dealing with self-intersecting surfaces” for more details.

report_sx

Whether to report such self-intersections in the Parasolid report. See Section 60.6, “Dealing with self-intersecting surfaces”. Also available in all hollowing and offsetting operations.

fix_degens
report_fix_degens

Whether to fix degeneracies in the input body before the thicken operation. Whether to report such degeneracies in the Parasolid report. See Section 58.4, “Dealing with degenerate faces”, for more details. Also available in all hollowing and offsetting operations.

blend_edges
blend_radius

Whether to produce blend faces when offsetting edges, together with the radius of the blend faces to produce. See Section 60.7, “Creating blends from offset edges”.

ortho_vx_split

Whether to split laminar vertices orthogonally to surface geometry during the offset part of the thicken operation, so as to avoid triangular side faces. See Section 60.8, “Controlling triangular side faces”.

n_pierce_faces
pierce_faces

An array of faces that are removed from the thickened body, rather than being offset. This may result in a disjoint solid body. See Section 60.9, “Piercing faces”.

offset_step

Whether to create side faces along smooth edges that are affected by the thicken operation. See Section 60.10, “Step faces along smooth edges”.

grow

How to heal models when features of different convexity overflow each other. See Section 60.11, “Controlling the growth of overflowing faces”. Also available in all hollowing and offsetting operations.

update

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

Default: PK_local_ops_update_default_c.

[back to top]


60.3 Thickening faces by different distances

By default, PK_BODY_thicken_3 thickens a body by offsetting all the faces in the body by the specified front_default and back_default . If you wish, you can specify that certain faces in the body are offset by different distances, by supplying alternative offsets for those faces. You do this using the following options:

 

Option

Description

n_faces
faces

An array of faces to be offset by a distance other than front_default or back_default . Any faces not specified here are offset by the distances specified in front_default and back_default . Default: NULL.

front_offsets

An array of size n_faces that provides front offsets to use for the specified faces . Each element in this array represents an offset to use on the corresponding element in faces . Default: NULL.

back_offsets

An array of size n_faces that provides back offsets to use for the specified faces . Each element in this array represents an offset to use on the corresponding element in faces . Default: NULL.

[back to top]


60.4 Specifying a punch direction for side faces

By default, side faces are created in the direction of the surface normals. You can thicken faces in a different direction using the method and punch_dir options. To use these options:

Parasolid then creates side faces in the punch_dir direction instead of the direction of the surface normals, as shown in Figure 60-5. Alternatively, side faces can be generated based on side surfaces you supply yourself, as described in Section 60.5, “Supplying side surfaces to use when thickening”.

 

Figure 60-5 Specifying a punch direction for side faces

[back to top]


60.5 Supplying side surfaces to use when thickening

Instead of letting Parasolid generate side surfaces, you can use the edges and surfaces options to supply your own, in order to influence the final appearance of the thickened body. To supply side surfaces, you either:

 

Figure 60-6 Specifying side surfaces to use during thicken operations

If you specify a single side surface, then n_surfaces should be 1, and edges and n_edges should be left at their default values. If you supply several side surfaces, then n_surfaces and n_edges must have the same value. The first side surface supplied in surfaces is then used on the first edge supplied in edges , the second side surface is used on the second edge, and so on.

 

Note: In all cases, each of the laminar edges must lie on the supplied side surface that is used for that edge when thickening.

If n_surfaces is 0 (the default), then edges and surfaces are ignored. Parasolid generates new side surfaces for every laminar edge in the body according to the value of the method option and, if relevant, the specified punch_dir .

[back to top]


60.6 Dealing with self-intersecting surfaces

Sometimes, thickening a sheet may create self-intersecting surfaces on either the side face, or the offset face itself. These can be repaired, as follows:

 

Figure 60-7 Replacing self-intersecting side surfaces during thickening

 

Figure 60-8 Replacing self-intersecting offset surfaces during thickening

See Section 58.3, “Removing self-intersections”, for information about removal of self-intersections in offsetting and hollowing.

[back to top]


60.7 Creating blends from offset edges

When you thicken a body, you can optionally choose to round off the edges of the body that are offset during the thicken operation.

To do this, you can use the blend_edges and blend_radius options available in PK_BODY_thicken_3, which let you replace offset edges in a hollowed body with constant-radius rolling-ball blends.

You use these options in the same way as the identical options available in offsetting operations, and they are subject to the same constraints. See Section 58.8, “Creating blends from offset edges”, for more information.

Figure 60-9 illustrates the configurations in which edges are offset to blend faces.

 

Figure 60-9 Constraints for replacing offset edges with blends

An example of this functionality is illustrated in Figure 60-10.

In cases where three or more edge-derived blends meet at a common vertex, a blend is derived from that vertex, as shown in Figure 60-10. Except for the face indicated in this example, each face in the sheet body is offset by a value equal to the specified blend radius.

 

Figure 60-10 Creating blends from offset edges and vertices

Blends can be created from offset edges in all hollowing and thickening operations. The blend_edges and blend_radius options are available in the following options structures:

 

Note: The blend_edges value PK_EDGE_offset_blend_convex_c is not supported for mixed edges.

[back to top]


60.8 Controlling triangular side faces

Sometimes, a laminar vertex needs to be split during a thicken operation. By default, the new vertex is trimmed back to the laminar edge, leading to a triangular face in the resulting thickened body. However, it is sometimes preferable to produce a thickened body that contains no triangular faces, as shown in Figure 60-11. You can achieve this effect in many cases by setting the ortho_vx_split option to PK_LOGICAL_true. This option ensures that any appropriate vertices are split orthogonally to the face of the other laminar edge, often eliminating the need to create a triangular face.

 

Figure 60-11 Controlling triangular side faces during thickening

Similar control is available for Parasolid’s offsetting functionality: see Section n, “PK_FACE_offset_o_t”.

[back to top]


60.9 Piercing faces

Sometimes, you might want to designate that some faces in the thickened body should be treated as pierce faces, similar to the pierce faces used in hollow operations (described in Section 59.3). If you specify one or more pierce faces in a thicken operation, then those faces are removed from the resulting thickened body, rather than being thickened themselves. This is equivalent to specifying that some faces should be offset by zero.

You specify pierce faces for thickening using the n_pierce_faces and pierce_faces options.

In Figure 60-12, two faces of the original sheet have been pierced during the thickening operation.

 

Figure 60-12 Two faces pierced

 

Note: Using this option may result in a disjoint body. Unlike offsetting, thickening does not contain a specific option to control whether disjoint bodies should be created or not.

[back to top]


60.10 Step faces along smooth edges

When you thicken the faces in a body by different amounts, you can sometimes get undesirable results if the body contains faces that are joined smoothly. You can address this problem by requesting that Parasolid creates side faces between any smoothly joined faces that are thickened by different amounts.

The offset_step option determines whether side faces (or step faces) are created when offsetting a face that is joined smoothly to its neighboring faces. This option takes the following values:

 

Value

Description

PK_offset_step_no_c

Do not create any side faces. This is the default.

PK_offset_step_all_c

Create side faces where required between faces that are smoothly joined to their neighbors. As well as creating side faces for any pierce faces in the resulting body, this option creates side faces between faces that are thickened by different amounts.

PK_offset_step_site_c

Only create side faces along smooth boundary edges if it cannot be done by growing the faces on either end of the boundary edges. Site faces that contain facet geometry will not be grown.

PK_offset_step_pierce_c

Create side faces along edges that are smoothly joined to a pierce face. This value is useful if you need to support legacy behaviour that was available in Parasolid v18.0 and earlier. If there are no pierce faces, this option produces the same result as PK_offset_step_no_c.

In general, you should use PK_offset_step_all_c if you want to create side faces.

Figure 60-13 shows the behaviour when two smoothly-joined faces are thickened using different front offset distances for each face.

 

Figure 60-13 Step faces created between faces with different offset distances

Figure 60-14 illustrates the use of offset_step in conjunction with n_pierce_faces and pierce_faces ; the same operation is shown from two different angles. The pierced face is smoothly connected to its neighboring faces and offset_step has been set to PK_offset_step_all_c. As a result, four step faces are created, corresponding to the front and back offsets of each common edge.

 

Figure 60-14 Side faces created at smooth joins both front and back

 

Note: Creating step faces at smooth edges splits the end vertices of those edges. You can supply a maximum of two different thicken distances (including zero) for the faces that share that vertex.

[back to top]


60.11 Controlling the growth of overflowing faces

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

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

 

Figure 60-15 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]

<<< Hollowing Chapters Introduction To Model Editing >>>