NX二次开发 PK获得体所有边 PK_BODY_ask_edges
bool AskBodyEdges(const tag_t body_tag, std::vector<tag_t>& edges)
{
int i = 0, num = 0;
tag_t ps_tag = NULL_TAG, edge_tag = NULL_TAG;
PK_EDGE_t* pkObjects = NULL;
edges.clear();
if (NULL_TAG == body_tag
|| UF_PS_ask_ps_tag_of_object(body_tag, &ps_tag)
|| PK_BODY_ask_edges(ps_tag, &num, &pkObjects))
{
return false;
}
if (0 == num)
{
return false;
}
for (i = 0; i < num; i++)
{
if (!UF_PS_ask_object_of_ps_tag(pkObjects[i], &edge_tag))
{
edges.push_back(edge_tag);
}
}
PK_MEMORY_free(pkObjects);
pkObjects = NULL;
if (0 == (int)edges.size())
return false;
//PK_AskEntityOcc(body_tag, faces);//如果是装配模式 需要把原型转换成occ 暂不提供
return true;
}
bool PK_AskBodyEdges(const PK_BODY_t pkBody, std::vector<PK_EDGE_t>& pkEdges)
{
int i = 0, num = 0;
PK_EDGE_t* pkObjects = NULL;
pkEdges.clear();
if