NX二次开发 PK获得面所有边 PK_FACE_ask_edges
bool AskFaceEdges(const tag_t face_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 == face_tag
|| UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag)
|| PK_FACE_ask_edges(ps_tag, &num, &pkObjects))
{
return false;
}
if (0 == num)
{
return true;
}
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(face_tag, edges);//如果是装配模式 需要把原型转换成o