NX二次开发 UFUN获得圆心和半径 UF_EVAL_ask_arc 曲线和边缘都支持
//VS8.0+VS2010
#include <uf_curve.h>
#include <uf_obj.h>
#include <uf_modl.h>
#include <uf_eval.h>
//查询圆心和半径
bool AskArcCenter(const tag_t arc_tag, double center[3], double &radius)
{
logical is_arc = false;
UF_EVAL_p_t evaluator = NULL;
UF_EVAL_arc_t arc_data;
radius = 0.0;
center[0] = 0.0;
center[1] = 0.0;
center[2] = 0.0;
if (!arc_tag)
return false;
if (UF_EVAL_initialize(arc_tag, &evaluator))
return false;
UF_EVAL_is_arc(evaluator, &is_arc);
if (is_arc)
{
UF_EVAL_ask_arc(evaluator, &arc_data);
UF_VEC3_copy(arc_data.center, center);
radius = arc_data.radius;
}
UF_EVAL_free(evaluator);
evaluator = NULL;
return is_arc ? true : false;
}