NX二次开发 PK创建长方体 PK_BODY_create_solid_block
//创建长方体,创建方块,创建体
bool PK_CreateBlock(const double point[3], const double mtx_3d[9], const double size[3], PK_BODY_t& pkBody)
{
double x_vec[3] = { 0.0 }, y_vec[3] = { 0.0 }, mtx_3d1[9] = { 0.0 };
pkBody = PK_ENTITY_null;
UF_MTX3_x_vec(mtx_3d, x_vec);
UF_MTX3_y_vec(mtx_3d, y_vec);
if (UF_MTX3_initialize(x_vec, y_vec, mtx_3d1)
|| size[0] < g_dist_tol
|| size[1] < g_dist_tol
|| size[2] < g_dist_tol)
return false;
double size1[3] = { 0.0 }, x_vec1[3] = { 0.0 }, y_vec1[3] = { 0.0 };
double mm = 0.001, magnitude = 0.0;
PK_AXIS2_sf_s basis_set;
UF_MTX3_x_vec(mtx_3d1, x_vec1);
UF_MTX3_y_vec(mtx_3d1, y_vec1);
UF_MTX3_z_vec(mtx_3d1, basis_set.axis.coord);
UF_MTX3_x_vec(mtx_3d1, basis_set.ref_direction.coord);
basis_set.location.coord[0] = (point[0] + x_vec1[0] * size[0] * 0.5 + y_vec1[0] * size[1] * 0.5) * mm;
basis_set.locat