![]() |
PK_BODY_section_with_surf |
PK_ERROR_code_t PK_BODY_section_with_surf ( --- received arguments --- PK_BODY_t target, --- Body to be sectioned by surface PK_SURF_t surface, --- Sectioning surface [PF] const PK_BODY_section_o_t *options, --- Sectioning options --- returned arguments --- PK_section_r_t *const results --- front/back faces/bodies ) This function sections the target body with the tool surface. This function offers partial support for facet geometry [PF] Specific Errors: PK_ERROR_contradictory_request Bad combination of options or data for type of boolean PK_ERROR_missing_geom Target or tool has incomplete geometry PK_ERROR_wrong_surface Surface not a plane or cylinder PK_ERROR_wire_body Tool is a wire body, or target is a wire body and general topology is not enabled PK_ERROR_partial_coi_found Boolean failure due to to partial coincidence PK_ERROR_non_manifold Non-manifold result PK_ERROR_boolean_failure Inconsistent arguments, or internal error PK_ERROR_general_body Tool is a general body, or target is a general body and general topology is not enabled PK_ERROR_bad_combination A mixture of facet and classic geometry has been supplied Introduction The given target body is sectioned with the given tool surface. If the 'target' has classic geometry, the tool surface may be of class PK_CLASS_plane or PK_CLASS_cylinder; if it has facet geometry, the tool surface may be of class PK_CLASS_plane or PK_CLASS_mesh. When the section surface intersects with the target body, the body will be split, by the section surface, into two or more parts. The resulting bodies are split into two lists, those in front of the section surface and those behind it. These bodies are returned in the 'front_bodies' and 'back_bodies' arrays of the 'results' structure. All new faces associated with these bodies which lie in the sectioning surface are returned in the 'front_faces' and 'back_faces' arrays of the 'results' structure. The front of the section surface is regarded as the side to which the surface normal points. Target bodies, or disjoint components of the target body, that do not clash with the section surface will be left unchanged. It is not defined whether they will be returned in the front_bodies or in the back_bodies array. The operation of the surface sectioning function may be controlled via an option structure passed to the function as an input argument. This function operates similarly to the 'PK_BODY_boolean' function, especially with regard to the phases of the boolean algorithm, rules concerning tag persistence and error reporting. Refer to the 'PK_BODY_boolean' documentation for information about these subjects. Section Options The function can be instructed, via the 'fence' option, to : o Only calculate the bodies and faces in front of the section surface. o Only calculate the bodies and faces behind the section surface. o Calculate the bodies and faces in front and behind the section surface. Returned Arguments Refer to the 'PK_section_r_t' documentation for information about the arrays returned in the 'results' structure. Sectioning with Generalised Topology Enabled If generalised topology is enabled, Parasolid will perform sections on a general target body and will allow any resultant body or bodies to be general. When a target face is coincident with the section sheet, its behaviour depends on the solidity of its neighbouring regions. If one of the face's neighbouring regions is solid and the other is void, then the face will appear only on the side of the section where its solid region lies. But if both of its neighbouring regions have the same solidity (i.e. they are both solid or both void), or if the face is surrounded on both sides by the same region, then the face will be copied. If the normals of the target face and the section sheet are parallel then the original face will appear in the front body and the copy will appear in the back body. Otherwise (if the normals of the target face and the section sheet are antiparallel) then the copy will appear in the front body and the original face will appear in the back body. If a component of the target body is not sectioned by the surface, a PK_REPORT_r_t will be produced, with report record(s) of type PK_REPORT_record_1_t. The report status will be PK_REPORT_1_cut_no_clash_c. Option Restrictions The following options within the input 'options' are ignored by this function : o 'check_fa' o 'default_tol' o 'max_tol' o 'tracking'Generated on: Fri, 04 Oct 2024 12:17:11 GMT