购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
//生成关联基准面、关联基准轴
#include <uf_curve.h>
#include <uf_modl.h>
#include <uf_sket.h>
double point[3];
double direction[3];
tag_t dplane_tag;
point[0] = 0.0;//参考点
point[1] = 0.0;
point[2] = 0.0;
direction[0] = 1.0;//法矢方向
direction[1] = 0.0;
direction[2] = 0.0;
//生成固定基准面
UF_MODL_create_fixed_dplane ( point, direction, &dplane_tag );

●●●请先
登陆 或
注册 后查看●●●
origin[0] = 20.0;//圆柱基准点
origin[1] = 0.0;
origin[2] = 0.0;
direction_cyl[0] = 0.0;//圆柱方向
direction_cyl[1] = 0.0;
direction_cyl[2] = 1.0;
//生成第一个圆柱
UF_MODL_create_cyl1 ( sign, origin, height, diam, direction_cyl, &cyl_tag1 );
tag_t cyl_tag2;
height = "50.0";
diam = "30.0";
origin[0] = 80.0;//圆柱基准点
origin[1] = 0.0;
origin[2] = 0.0;
direction_cyl[0] = 0.0;//圆柱方向
direction_cyl[1] = 0.0;
direction_cyl[2] = 1.0;
//生成第二个圆柱
UF_MODL_create_cyl1 ( sign, origin, height, diam, direction_cyl, &cyl_tag2 );
int count, norm_dir, type;
double center[3], dir[3], box[6], radius, rad_data;
uf_list_p_t face_list;
tag_t face_id0, face_id1, body, face;
//获取第一个圆柱的圆柱面tag号
UF_MODL_create_list(&face_list);
UF_MODL_ask_feat_body( cyl_tag1, &body );
UF_MODL_ask_body_faces( body, &face_list);
UF_MODL_ask_list_count( face_list, &count );
for(int i = 0; i < count; i++)
{
UF_MODL_ask_list_item(face_list, i, &face);
UF_MODL_ask_face_data( face, &type, center, dir, box, &radius,
&rad_data, &norm_dir );
if( type == UF_cylinder_type )
face_id0 = face;
}
UF_MODL_delete_list(&face_list);
//获取第二个圆柱的圆柱面tag号
UF_MODL_create_list(&face_list);
UF_MODL_ask_feat_body( cyl_tag2, &body );
UF_MODL_ask_body_faces( body, &face_list);
UF_MODL_ask_list_count( face_list, &count );
for( i = 0; i < count; i++)
{
UF_MODL_ask_list_item(face_list, i, &face);
UF_MODL_ask_face_data( face, &type, center, dir, box, &radius,
&rad_data, &norm_dir );
if( type == UF_cylinder_type )
face_id1 = face;
}
UF_MODL_delete_list(&face_list);
int num_refes = 2;
tag_t object_tags[3];
int point_select[3] = {0,0,0};
int which_plane = 2;
char angle_string = NULL;
char offset_string = NULL;
int num_dplanes;
tag_t dplane_tag_relative[2];
object_tags[0] = face_id0;
object_tags[1] = face_id1;
UF_MODL_create_relative_dplane ( num_refes, object_tags, point_select, which_plane, NULL,
&angle_string, &offset_string, &num_dplanes, dplane_tag_relative );//生成关联基准面
int num_refs_daxis = 1;
tag_t obj_eids[3];
int point_select_daxis[3] = {90,0,0};
tag_t daxis_feid;
obj_eids[0] = face_id1;
//生成关联基准轴
UF_MODL_create_relative_daxis ( num_refs_daxis, obj_eids, point_select_daxis, &daxis_feid );