PK_ERROR_code_t PK_EDGE_make_wire_body ( --- received arguments --- int n_edges, --- number of edges const PK_EDGE_t edges[], --- edges const PK_EDGE_make_wire_body_o_t *options, --- options --- returned arguments --- PK_BODY_t *const body, --- created body PK_TOPOL_track_r_t *const tracking --- tracking ) This function creates a wire body from a collection of existing edges. The edges may come from different bodies. Specific Errors: PK_ERROR_edges_intersect Supplied edges intersect or overlap. PK_ERROR_disjoint Supplied edges form disjoint body, but allow_disjoint set to PK_LOGICAL_false. PK_ERROR_non_manifold Resulting body would become general. PK_ERROR_cant_make_bspline Geometry approximation failed. PK_ERROR_bad_wire Failed to construct wire body. Edges may be passed to this function in any order. They may also come from different parts. However they are not allowed to intersect or have full or partial coincidence. Vertex tolerances are used when deciding whether edges from different bodies are connected. A non-manifold wire body may be created if session general topology is enabled (see PK_SESSION_ask_general_topology). More than two edges may be connected at a vertex of a non-manifold wire body. General wire bodies may not be suitable for subsequent modelling operations. A disjoint wire body may be created if the allow_disjoint field of the options structure is set to PK_LOGICAL_true. Other options allow for the approximation of curves which have dependent geometry and for using nominal geometry. This function returns information pairing the edges and vertices of the new wire body with their originating edges and vertices using the standard data structure PK_TOPOL_track_r_t.