PK_ERROR_code_t PK_BODY_subtract_bodies ( --- received arguments --- PK_BODY_t target, --- Body to receive message int n_tools, --- Number of tool bodies const PK_BODY_t tools[], --- Tool bodies --- returned arguments --- int *const n_bodies, --- Number of resultant bodies PK_BODY_t **const bodies --- Resultant bodies ) This function performs a boolean subtract operation between the target body and the list of tool bodies. Specific Errors: PK_ERROR_contradictory_request Bad combination of options or data for type of boolean PK_ERROR_same_tool_and_target Tool body is also target body PK_ERROR_missing_geom Target or tool has incomplete geometry PK_ERROR_wire_body Tool is a wire body PK_ERROR_duplicate_tools Duplication in list of tool bodies PK_ERROR_instanced_tools Instanced tool bodies PK_ERROR_mixed_sheets_solids Mixture of of sheet and solid tool bodies PK_ERROR_cant_unite_solid_sheet Attempt to unite solid and sheet PK_ERROR_opposed_sheets Attempt to unite opposed sheets PK_ERROR_cant_intsc_solid_sheet Cant intersect solid target with sheet tool bodies PK_ERROR_t_sheet Operation would result in a T-sheet PK_ERROR_non_manifold Non-manifold result PK_ERROR_boolean_failure Inconsistent arguments, or internal error PK_ERROR_general_body Target or tool is general body A boolean subtract operation between the target body and the tool bodies is performed. The target body is modified and the tool bodies are deleted, except in the case where the target is a wire body. In this case the tools are not modified. The resulting body or bodies replace the target, and are returned in an array. The target may be a wire body but the tools may not, and in this case the tools must all be solids. This function will accept general bodies in target or tools only if generalised topology is enabled. Refer to the PK_BODY_boolean_2 documentation for a more detailed description of booleans.