Sheet Modeling   

<<< Interpreting Face-Face Blending Error Codes Chapters Sheet Sewing >>>

Contents

[back to top]


35.1 Introduction

Parasolid provides specific functionality for some sheet modeling operations, and techniques that allow solid modeling functions to be used for sheet modeling. This chapter covers:

The Boolean operation of sewing sheet bodies together is explained in Chapter 36, "Sheet Sewing".

Information on modeling operations which can be applied to wire bodies is contained in Chapter 37, "Wire Modeling".

[back to top]


35.2 Trimming sheet bodies

Typically, in a solids-based application, trimming operations would be performed using booleans. However, there are circumstances where it can be more efficient to trim a sheet body using a given entity.

The trimming of multi-face sheet bodies contains two stages:

[back to top]

35.2.1 Imprinting

In each of the following methods, edges created by the imprint operation are returned, including those existing edges along which the intersection occurred.

To solve any precision problems a tolerance is supplied, this value may also be used in the creation of SP-curves on the imprinted edges.

Imprinting with finite curves

The imprinted curves can be projected onto the sheet body in two ways:

Edges and vertices are added to the sheet body which are the image of the curves under either projection method.

Imprinting with a set of faces

PK_BODY_imprint_faces - edges and vertices are added to the sheet body where the faces intersect with the body (except where they already exist).

Imprinting with a plane

PK_BODY_imprint_plane - edges and vertices are added to the sheet body where the plane intersects with the body (except where they already exist).

[back to top]

35.2.2 Trimming

The trimming stage of the operation is performed using PK_BODY_trim which, to be successful, must divide the body into at least two sets of faces. This function takes as its arguments:

Should the trim operation fail, PK_BODY_trim_gap_analysis can be used to determine where the gaps of size less than the supplied tolerance exist, and the vertices bordering on these gaps are returned to enable corrective actions to be taken.

Example 1:

In this first example, a sheet body - created from a B-surface - is trimmed to an area resulting from the projection of two B-curves in a specified direction:

 

Figure 35-1 Trimming a sheet body to curves projected in a given direction

Example 2:

In this following example, a sheet body - created from a part of a cylinder - is trimmed to an area resulting from the projection of the circle down the face normal of the sheet body. This resulting face on the sheet body is selected not to survive the trim operation, effectively doing a pierce operation on the sheet body:

 

Figure 35-2 Trimming a sheet body using a circle projected down the face normal of the sheet body

[back to top]


35.3 Blending sheet bodies

By using the solid modeling blend functions for applying, fixing, enquiring and checking blends it is possible to blend edges of sheet bodies which meet at the boundary of the sheet body. Parasolid constructs appropriate edge geometry at the ends of the blend. The blend type can be rolling ball, variable radius or chamfer.

 

Figure 35-3 Sheet edge blend

Parasolid's face-face blending functionality can be used to blend between disjoint and overlapping faces. In the following example face-face blends are applied sequentially to a set of sheet bodies, that have faces with taper angles, to form a single sheet body as follows:

 

Figure 35-4 Joining pairs of sheets

 

Figure 35-5 Using a third face-face blend to create the single sheet body

For further information on Face-Face blending, see Chapter 32, "Face-Face Blending".

[back to top]

35.3.1 Blending vertices on sheet bodies

To blend vertices on sheet bodies use PK_VERTEX_make_blend.

Limitations and restrictions

 

Figure 35-6 The proposed blend would create an invalid body, so the blend is not created

 

Figure 35-7 By selecting both vertices the final body is valid and the blends can be created

It is permissible for two blends to be sufficiently large that they meet and exclude one of the original edges providing that the blends do not overlap. For example, it is possible to make a circle by blending the four vertices of a square.

 

Figure 35-8 Blending four vertices of a square to create a circle

 

Figure 35-9 Blending a vertex with a radius that is equal to the distance to the next vertex

If the local checking option is ON the body is checked after the blending has been carried out. In the case of a planar body the altered body is valid, but for a non-planar body local checking may return that the altered body is invalid.

[back to top]


35.4 Thickening a sheet body

A sheet body can be thickened to form a solid body using PK_BODY_thicken_3. You can use this to model thin-walled parts, especially sheet metal parts, in your application.

 

Figure 35-10 Thickening a sheet body into a solid body

[back to top]

35.4.1 Introduction

Sheets may be thickened from either side, 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.

The side faces created during thickening use analytic geometry where possible, or ruled B-surfaces 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.

By default, side faces are created in the direction of the surface normals. If a punch direction is specified, then side faces are created in that direction instead, as shown in Figure 35-11.

 

Figure 35-11 Specifying a punch direction for side faces

PK_BODY_thicken_3 uses Parasolid's existing offsetting functionality to thicken sheets. This means that certain topology changes are possible when thickening, such as deleting faces that become degenerate by offsetting. Figure 35-12 shows an example.

 

Figure 35-12 Thickening a sheet body, resulting in a topology change

In general, Parasolid creates triangular side faces when thickening sheets with sharp internal (i.e. non-boundary) edges. Sharp here means that the two faces adjacent to the edge do not meet smoothly.

Thickening fails on valid sheet bodies that have a point contact vertex as shown in Figure 35-13. Thickening this sheet body creates an invalid solid body that contains a non-manifold edge.

 

Figure 35-13 Thickening a sheet body with a point contact vertex

[back to top]

35.4.2 Required arguments

PK_BODY_thicken_3 receives and returns the following arguments:

 

Received Description

body

The sheet body to thicken

front_default

Default offset distance for the front of the sheet.

back_default

Default offset distance for the back of the sheet.

tolerance

Tolerance for approximating edge geometry where required.

options

Options for the thicken operation.

Returned Description

tracking

Tracking information

results

Status information

[back to top]

35.4.3 Thickening options

A number of thickening options can be specified using PK_BODY_thicken_o_t. 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

n_faces

The number of faces to be offset by a non-default distance. The faces , front_offsets , and back_offsets arrays should all be this size. Default: 0.

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 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 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.

check_fa_fa

Whether or not to check for face-face inconsistencies. Default: PK_check_fa_fa_yes_c.

method

The thickening method to use. This can be either:

punch_dir

A vector representing the direction of the side faces, when method is PK_thicken_method_punch_c. Default: null_vector.

offset_method

The offset method to use when thickening. This is either:

  • PK_offset_method_accurate_c (default)
  • PK_offset_method_approximate_c

See Section 35.4.4.

[back to top]

35.4.4 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 35-14 Replacing self-intersecting side surfaces during thickening

 

Figure 35-15 Replacing self-intersecting offset surfaces during thickening

See Section 19.3.1, "Removing self-intersections" for more information.

[back to top]


35.5 Other modeling operations on sheet bodies

Providing that the relevant face of a sheet body has a surface attached to it, then the following operations can be carried out on it:

[back to top]

35.5.1 Deleting holes in a sheet body

Holes can be removed from single and multi-faced sheet bodies (providing that the hole lies completely within a single face) by specifying a list of interior loops to be deleted by using PK_LOOP_delete_from_sheet_body.

[back to top]

35.5.2 Replacing the surface of a sheet body

The surface of a sheet can be tweaked to a new surface, which must be of the same type as the original surface, using PK_BODY_embed_in_surf. During this operation the parameter space representation of the edges is maintained.

If the edge curve is of type PK_CLASS_spcurve or a constant parameter curve of the surface of the face then it is transferred to the new surface. All other types of edge curves are converted to SP-curves before being transferred to the new surface. During this conversion, edges may need to be split at surface discontinuities.

 

[back to top]

<<< Interpreting Face-Face Blending Error Codes Chapters Sheet Sewing >>>