NX二次开发 UFUN判断点是否在体表面 UF_MODL_ask_point_containment
//VS8.0+VS2010
#include <uf_curve.h>
#include <uf_obj.h>
#include <uf_modl.h>
extern DllExport void ufsta(char* param, int* returnCode, int rlen)
{
if (UF_initialize())//初始化UFUN许可
return;
//创建长方体
double point[3] = { 0.0, 0.0, 0.0 };
char* str_edge_len[3] = { "100", "200", "200" };//设置长宽高
tag_t tag = NULL_TAG;
tag_t body_tag = NULL_TAG, body_tag1 = NULL_TAG;
UF_MODL_create_block(UF_NULLSIGN, NULL_TAG, point, str_edge_len, &tag);
UF_MODL_ask_feat_body(tag, &body_tag);
int pt_status = 0;
double point1[3] = { 10, 10, 10 };
UF_MODL_ask_point_containment(point1, body_tag, &pt_status);
if (1 == pt_status)
{
uc1601("点在体内部", 1);
}
else if (2 == pt_status)
{
uc1601("点在体外部", 1);
}
else if (3 == pt_status)
{
uc1601("点在体表面", 1);
}
UF_terminate();//结束UFUN许可
}