PK_ERROR_code_t PK_EDGE_set_precision ( --- received arguments --- PK_EDGE_t edge, --- edge double precision, --- required precision --- returned arguments --- int *const n_new_edges, --- number of new edges PK_EDGE_t **const new_edges --- new edges ) This function sets the precision of the given edge. Specific Errors: PK_ERROR_general_body general body PK_ERROR_missing_geom either the edge has no curve or the adjacent faces have no surfcaes PK_ERROR_bad_tolerance either the edge is too short or the tolerance is too small PK_ERROR_failed_to_create_sp SP-curve generator failed for unknown reason PK_ERROR_tolerances_too_tight SP-curve generator could not achieve tolerance The action of this function depends on whether the edge previously had a non-default precision associated with it or not (i.e. whether Parasolid regarded the edge as "exact"). The action for exact edges is as follows: The 3-space edge curve is used to create SP-curves on the adjacent surfaces, which are subsequently attached to the fins of the edge. The precision of the edge is to be viewed as a band of uncertainty within which all defining SP-curves lie. There will always be the following side-effects: . The original 3-space curve will be detached and deleted if possible. . The precisions of all vertices on the edge will be increased if necessary so as to be greater than or at least equal to precision. The point on the vertex will be recomputed. . It will be impossible to make the edge "exact" again by using PK_EDGE_set_precision. Once this routine has been used on an edge, it will continue to be represented geometrically by means of SP-curves attached to the fins unless PK_EDGE_reset_precision is called. Additionally, the following may occur: . It may not always be possible to compute one SP-curve from the original curve and the relevant face surface. This will be due to G1 discontinuities (in the surface parameter space) which will have to be represented as extra vertices. The edge may therefore be split a number of times, once for every surface singularity or discontinuity which lay on the original curve. Any new edges created by this process will be returned to the user in new_edges. It is an error to set a precision on an "exact" edge when the 3-space curve is not present. It is an error if the edge is shorter than twice the given precision. The action for edges already possessing a precision is as follows: The SP-curve(s) already present on the fins of the edge will be unchanged. The precision of the edge will be set to precision. The precisions of vertices of the edge will be increased if necessary so as to be greater than or at least equal to the supplied precision. It should be noted that reducing the precision value on an already inexact edge is not recommended, as the existing SP_curve(s) will not be replaced in this case. Hence such an edge may fail checking.