NX二次开发 PK获得圆弧边缘数据 PK_CIRCLE_ask
//边缘和曲线操作 UFUN速度可以了 这种只是当参考 速度比ufun快 但是 不稳定 搞不好就出现内存错误了
bool PKPK_AskArcEdgeData(const PK_EDGE_t pkEdge, double centre[3], double vec[3], double& diam)
{
PK_CURVE_t pkCurve = 0;
if (pkEdge
&& !PK_EDGE_ask_curve(pkEdge, &pkCurve)
&& pkCurve)
{
PK_CIRCLE_sf_t pkCurve_sf;
if (!PK_CIRCLE_ask(pkCurve, &pkCurve_sf))
{
double magnitude = 0.0;
centre[0] = pkCurve_sf.basis_set.location.coord[0] * 1000.0;
centre[1] = pkCurve_sf.basis_set.location.coord[1] * 1000.0;
centre[2] = pkCurve_sf.basis_set.location.coord[2] * 1000.0;
UF_VEC3_unitize(pkCurve_sf.basis_set.axis.coord, g_angle_tol, &magnitude, vec);
diam = pkCurve_sf.radius * 1000.0 * 2.0;
if (diam > 0.0)
{
return true;
}
}
}
centre[0] = 0.0;
centre[1] = 0.0;
centre[2] = 0.0;
vec[0] = 0.0;
vec[1] = 0.0;
vec[2] = 1.0;
diam = 0.0;
return false;
}