Creating New Bodies From Existing Entities   

<<< Moving Faces Chapters Generic Face Editing >>>

Contents

[back to top]


71.1 Introduction

Parasolid can create new solid bodies from existing faces in a body, either by copying them or by removing them from the existing body. If the faces used to create a body are such that the body contains wounds, then they are healed using the same techniques used for deleting face

71.1.1 Copying faces to create new bodies

PK_FACE_make_solid_bodies creates a solid from an array of faces by copying the selected faces to make one or more new solids. The faces are not deleted from the original body and if the faces form a shell of a sheet or a solid, the shell is then copied to the new solid. Any missing faces of the shell are treated as holes to be healed as described in Section 71.3, “Healing wounds”.

 

Note: This functionality does not support facet bodies.

[back to top]


71.2 Removing faces to create new bodies

PK_FACE_remove_to_solid_bodies removes faces from a body and uses them to make one or more new solid bodies.

 

Note: This functionality does not support facet bodies.

Any wounds left in either parent or child bodies can be healed as described in Section 71.3, “Healing wounds”. Wounds in parent bodies and child bodies can be healed differently if desired.

 

Figure 71-1 Healing holes (wounds) using ‘Grow from Parent’

 

Note: The parent body may become fragmented due to faces being removed. In such cases, there are several parent bodies.

[back to top]


71.3 Healing wounds

Wounds created by PK_FACE_make_solid_bodies or PK_FACE_remove_to_solid_bodies can be healed using similar methods to those available to PK_FACE_delete_2. See Chapter 63, “Deleting Entities” for full details.

[back to top]


71.4 Removing edges to create new bodies

PK_EDGE_remove_to_bodies removes wireframe edges from a body and uses them to make a number of new bodies. It receives and returns the following arguments:

 

Received

Description

n_edges

The number of edges

edges

An array of input edges. These edges must belong to the same body.

options

Options controlling the final form of the body. The following options are available:

  • allow_disjoint : Whether disjoint bodies can be produced. (Default: PK_LOGICAL_true)
  • track_bodies : Whether to track bodies and return them in tracking along with the associated input edges. This has the following values:

 

Returned

Description

n_parent_bodies

The number of parent_bodies .

parent_bodies

Bodies derived from the remaining body.

n_child_bodies

The number of child_bodies .

child_bodies

Bodies that come from the input set of edges .

tracking

Tracking information.

PK_EDGE_remove_to_bodies takes an array of edges and splits their owning bodies into child and parent bodies. Child bodies result from edges and parent bodies result from the remaining body.

 

Note: The original edge tags from edges are preserved during this operation.

If allow_disjoint is PK_LOGICAL_false, multiple child and parent bodies can be returned, depending on the connectivity of the parent and child components. In the example illustrated in Figure 71-2, one child and two parent bodies are returned. Figure 71-3 illustrates a case where allow_disjoint is PK_LOGICAL_true, and therefore only 2 bodies are returned; one child and one parent body.

 

Figure 71-2 Splitting a body when disjoint bodies are not allowed.

 

Figure 71-3 Splitting a body when disjoint bodies are allowed.

 

[back to top]

<<< Moving Faces Chapters Generic Face Editing >>>