NX二次开发 UFUN判断对象是否直线 UF_EVAL_is_line 曲线和边缘都支持
//VS8.0+VS2010
#include <uf_curve.h>
#include <uf_obj.h>
#include <uf_modl.h>
#include <uf_eval.h>
//判断对象是否是直线
bool AskObjectIsLine(const tag_t tObject)
{
logical is_line = false;
UF_EVAL_p_t evaluator = NULL;
if (UF_EVAL_initialize(tObject, &evaluator))
return false;
UF_EVAL_is_line(evaluator, &is_line);
UF_EVAL_free(evaluator);
return is_line ? true : false;
}
extern DllExport void ufsta(char* param, int* returnCode, int rlen)
{
if (UF_initialize())//初始化UFUN许可
return;
//UFUN函数创建直线
tag_t lines_tag = NULL_TAG;
UF_CURVE_line_t line_coords;
line_coords.start_point[0] = 0.0;
line_coords.start_point[1] = 0.0;
line_coords.start_point[2] = 0.0;
line_coords.end_point[0] = 10.0;
line_coords.end_point[1] = 0.0;
line_coords.end_point[2] = 0.0;
UF_CURVE_create_line(&line_coords, &lines_tag);//UFUN函数创建直线
if (AskObjectIsLine(lines_tag))
{
uc1601("对象是直线", 1);
}
UF_terminate();//结束UFUN许可
}