Interpreting Edge Blending Error Codes
<<< Edge Blend Overflows | Chapters | Face-Face Blending >>> |
In practice blending almost certainly involves a degree of trial and error. For example: apply some blends, invoke the blend checker PK_EDGE_check_blends, interpret the error codes and correct the relevant blends.
The error codes can be split into three groups:
Severe errors indicate that the edge(s) being checked can never be blended. Severe errors either reflect strict limitations on the blending functionality or cases where Parasolid is unable to classify an error.
Figure 32-1 PK_blend_fault_vertex_c
Figure 32-1 shows an example of a solid which is too complex to blend at a vertex. Any one of the edges connected to this vertex can be blended at any one time, but not more, at present this is a limitation of the blending functionality.
A vertex that is too complex to be blended can be regarded as two or more edges being blended at some four edge vertices and at five or more edge vertices. The exception to this is that a vertex can usually be blended if all of the edges meeting at the vertex are blended.
See "Blending two edges at a four edge vertex" in Chapter 29, "Edge Blending Overview", for further information on 4-edged vertices.
The PK_blend_fault_unknown_c error implies that the blending algorithms cannot classify the error that has been detected. This usually infers that an internal numerical algorithm has unexpectedly failed. However, when this error occurs it may be possible to blend the edge being checked if the blend radius is changed.
Configuration errors report various invalid combinations of blends. It should always be possible to recover from a configuration error by:
The PK_blend_fault_bsurf_c error can occur for either of the following reasons:
Unfortunately these restrictions are difficult both for you to spot and to provide rules of thumb for work rounds. It is sometimes possible to remove the error by reducing the blend radius.
Figure 32-2 PK_blend_fault_range_c
Figure 32-2 shows an example of a solid with unfixed blends of differing sizes on selected edges. This operation would produce the above error because the third edge, edge A, is tangent.
Figure 32-3 PK_blend_fault_edge_c
This error is returned for illegal configurations of two out of three edges at a vertex being blended. Figure 32-3 illustrates this problem. The solution is to either blend the third edge or remove one of the existing blends.
Figure 32-4 PK_blend_fault_loop_c
Figure 32-4 shows an example of a solid with an unfixed blend that overlaps the edge loop. It can be seen that the range of the blend is so large that the blend extends outside the solid. This blend is not allowed on this edge although it may be possible to blend the edge if the range is reduced to the point where it doesn't overlap the edge loop.
Figure 32-5 PK_blend_fault_overlap_edge_c
Figure 32-5 shows an example of a solid where the unfixed blend overflows unblended edge A since face F cannot be extended to intersect the blend. Though this is not allowed, if the range of the blend was reduced sufficient to ensure that the overlap does not occur it may be possible to fix the blend.
Figure 32-6 PK_blend_fault_face_c
This error occurs when no edge can be found to terminate the boundary curve of a blend, this is either because the radius of the blend is too large or one or more edges adjacent to the edge being checked also needs to be blended (Figure 32-6).
Figure 32-7 PK_blend_fault_other_edge_c
Figure 32-7 shows an example of a solid with two unfixed blends on it. Although edge A is legal, it does not check because there is another blend (edge B) on the same face which is not legal causing the checks for overlaps and illegal intersections not to be completed. It may be possible to blend edge A if the blend is removed from edge B. Alternatively it may be possible to blend edge A if edge B is made legal (in this case by blending the adjoining edges).
When an edge is blended the blend may have to interact with more than just the two faces which meet at the edge, e.g. if the blend is large it might cover part of one face and run onto a neighboring face. The blend must then be constrained to meet tangentially with this neighboring face.
Figure 32-8 shows an example when it is possible to blend successfully between non-adjacent faces, also referred to as overlapping blends, by fixing the blends independently.
Figure 32-8 Blending non-adjacent faces (overlapping blends)
The following errors occur when attempting to blend between non-adjacent faces (overlapping blends) fixing the blends simultaneously.
Figure 32-9 PK_blend_fault_overlap_c
Figure 32-9 shows the same example that was successfully blended in Figure 32-8 but this time the operation fails because the two overlapping blends could not be fixed together.
Figure 32-10 PK_blend_fault_overlap_end_c
Figure 32-10 shows an example of the above error occurring after an attempt has been made to fix the two blends simultaneously. Fixing each blend independently should enable both edges to be blended successfully.
Figure 32-11 PK_blend_fault_end_c
Figure 32-11 shows a typical example of when this error can occur. It occurs in this example when checking the blend on edge A, reducing the range of either or both blends so that they do not overlap should enable the check operation on edge A to be completed successfully.
Figure 32-12 PK_blend_fault_edge_intsec_c
A typical example of when the above error can occur is shown in Figure 32-12 In this example the unfixed blend overlaps an unblended edge. Reducing the range of the blend, so that it doesn't interfere with the unblended edge, should enable the edge to be blended.
The PK_blend_fault_face_face_c error occurs if the blend has created a face-face inconsistency in the body. The blend is fixed to the body.
This error only occurs if the check for face-face inconsistencies has been specifically turned on while fixing the blend (it is not returned by PK_EDGE_check_blends).
The PK_blend_fault_self_int_c error occurs if one or more of the blend surfaces are self-intersecting. The blend is fixed to the body.
This error only occurs if the check for self-intersecting surfaces has been specifically turned on while fixing the blend (it is not returned by PK_EDGE_check_blends).
<<< Edge Blend Overflows | Chapters | Face-Face Blending >>> |