Local Ops: Creating Surfaces to Attach to Faces   

<<< Local Ops: Creating New Solids from Faces Chapters Local Ops: Tweaking the Surfaces of Faces >>>

Contents

[back to top]


16.1 Attaching a surface to a face

Sometimes, when creating sheet bodies, you can be left with rubber faces (that is, topology that has no geometry attached). This can happen, for instance, when scribing lines on a minimum body. In these cases, Parasolid can create and attach a surface that fits the rubber face for you.

PK_FACE_attach_surf_fitting creates a surface to fit and attach to a face. This function replaces any existing surface geometry, making the result a valid sheet body. Use PK_FACE_attach_surf_fitting whenever you create a sheet body by scribing lines on a minimum body.

[back to top]


16.2 Filling a hole in a body

You can use PK_BODY_fill_hole to patch an open region in a target body, or fill a gap between one or more sheet bodies. This can be used for:

You can either supply a sheet to fill the hole, or ask Parasolid to generate a sheet for you. PK_BODY_fill_hole takes the following arguments:

 

Argument Description

target

The target body containing the hole.

edges

An array describing the edges of the hole to be filled. The hole can be either a collection of one or more adjacent rubber faces in a solid or sheet body, or a gap between one or more sheet bodies, as shown in Figure 16-1.

  • If the hole is a rubber face, then edges contains the boundary edges of the rubber face.
  • If the hole is a gap, then edges contains the laminar edges around the gap.

At least one of the edges should be an edge of the target body.

The bodies from which edges are taken must not intersect or have edges that meet anywhere except at vertices in the hole boundary.

n_edges

The number of edges comprising the hole.

tolerance

A specified tolerance.

options

A number of options for the fill operation, including the "patch" for the hole, if supplied.

 

Figure 16-1 Filling rubber faces and gaps between sheet bodies

Several user options are available in the PK_BODY_fill_hole_o_t options structure:

 

Option Description

method

The method used to fill the hole. This can take the following values:

  • PK_fill_hole_trim_to_hole_c (default) - trim fill_sheet to the boundary of the hole
  • PK_fill_hole_trim_to_sheet_c - trim target bodies to the laminar edges of fill_sheet
  • PK_fill_hole_create_patch_c - patch the hole by generating a suitable sheet body to match the boundary of the hole.

When trimming to the hole, the boundary edges of the hole must form a single closed loop. If filling a gap, rather than a rubber face, you can use additional wire edges to ensure that this is the case (see Figure 16-2). All the boundaries of the hole must lie within tolerance of fill_sheet .

When trimming to the sheet, the laminar edges of fill_sheet must lie within tolerance of the body they are to be joined to, and all the bodies specified in edges must have at least one laminar edge of fill_sheet within tolerance of them. When using this method, you cannot use additional wire edges in edges .

When requesting that Parasolid generates a suitable sheet body to fill the hole, the boundary of the hole is maintained, and the generated sheet meets the faces that surround the hole smoothly wherever possible.

See Figure 16-3 to see the effect of these different methods.

fill_sheet

The sheet body that is used to fill the hole. This must be

  • large enough to cover the hole
  • have only one boundary
  • have no holes

If method is PK_fill_hole_create_patch_c, then you do not need to supply fill_sheet .

check_fa_fa

Whether to check for face-face inconsistencies. This can take the following values:

 

Figure 16-2 Using a wire edge to create a closed loop from a gap

 

Figure 16-3 Different methods of filling a hole

[back to top]

<<< Local Ops: Creating New Solids from Faces Chapters Local Ops: Tweaking the Surfaces of Faces >>>