概述
//生成关联基准面、关联基准轴
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 );
UF_FEATURE_SIGN sign = UF_NULLSIGN;
double origin[3];
char *height = "50.0";
char *diam = "10.0";
double direction_cyl[3];
tag_t cyl_tag1;
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 );
UG二次开发培训,可面授、远程视频指导、手把手教使用NXopen C++ 、UFun进行UG二次开发,入门开始,不懂C语言没有关系,但UG NX软件要会用,系统性的教,深度学会UG二次开发的原理与细节,让你完全可以独立完成复杂的项目开发。有意可联系胡君QQ:85585969
胡君UG二次开发技术论坛:
http://www.ugapi.com/
最后
以上就是稳重绿茶为你收集整理的生成关联基准面、关联基准轴代码_NXopen-UG二次开发_新浪博客的全部内容,希望文章能够帮你解决生成关联基准面、关联基准轴代码_NXopen-UG二次开发_新浪博客所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复