NX二次开发 UFUN获取几何对象的维数 UF_MODL_ask_obj_dimensionality
//NX8.0+VS2010
#include <uf.h>
#include <uf_ui.h>
#include <uf_curve.h>
#include <uf_modl.h>
extern DllExport void ufsta(char* param, int* returnCode, int rlen)
{
if (UF_initialize())
return;
//创建点
double point[3] = { 10, 10, 10 };
tag_t point_tag = NULL_TAG;
UF_CURVE_create_point(point, &point_tag);
//获取几何对象的维数
int dimensionality = 0;//物体的维度 -1 = object is not valid UF_MODL_POINT UF_MODL_LINEAR UF_MODL_PLANAR UF_MODL_THREE_DIMENSIONAL
double data[6] = { 0 };
//如果维数 = UF_MODL_POINT
//Data[0 - 2] = 点的坐标
//如果维数 = UF_MODL_LINEAR
//数据[0 - 2] = 直线上一点的坐标
//Data[3 - 5] = 直线的单位方向向量
//如果维数 = UF_MODL_PLANAR
//数据[0 - 2] = 平面上一点的坐标
//Data[3 - 5] = 平面的单位法线
//如果维数 = UF_MODL_THREE_DIMENSIONAL
//数据[0 - 5] = 未使用
UF_MODL_ask_obj_dimensionality(point_tag, &dimensionality, data);
if (dimensionality == UF_MODL_POINT)
{
//打印
char msg[257];
sprintf(msg, "点的坐标 X:%f, Y:%f, Z:%f", data[0], data[1], data[2]);
uc1601(msg, 1);
}
UF_terminate();
}