NX二次开发 PK布尔运算减 PK_BODY_boolean_2
//布尔减(不管是否成功,工具体都会被删除)
bool PK_SubtractBodies(const PK_BODY_t pk_target_body, const std::vector<PK_BODY_t> pkToolBodys, std::vector<PK_BODY_t>& pkBodys)
{
pkBodys.clear();
if (PK_ENTITY_null == pk_target_body)
return false;
if (0 == (int)pkToolBodys.size())
return false;
int n_faces1 = 0;
PK_FACE_t* pkFaces1 = NULL;
PK_BODY_ask_faces(pk_target_body, &n_faces1, &pkFaces1);
if (0 == n_faces1)
return false;
int i = 0, num = 0, n_faces2 = 0;
bool bRtn = false;
PK_FACE_t * pkFaces2 = NULL;
PK_boolean_r_t results;
PK_TOPOL_track_r_t tracking;
PK_BODY_boolean_o_t options;
PK_BODY_t* pk_tool_bodys = NULL;
num = (int)pkToolBodys.size();
pk_tool_bodys = new PK_BODY_t[num];
for (i = 0; i < num; i++)
{
pk_tool_bodys[i] = pkToolBodys[i];
}
PK_BODY_boolean_o_m(options);
options