点击查看详细介绍

生成关联基准面、关联基准轴

xiaoliu8 9年前 3299 16

购买与咨询 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 );

1

最新回复 (16)
  • c1_wangyf 9年前
    1

    好东西一定要顶,加油!

  • leader_ld 9年前
    2

    学习,学习

  • liu177459528 8年前
    3

    想要一个垂直的面,应该也是关联面吧

  • wangaibohit VIP会员 8年前
    4

    好东西,值得学习!!!

  • slcy20 7年前
    5

    谢谢楼主分享再接再厉

  • 穿着隐身的 7年前
    6

    QQQQQQQQQQ

  • marsfox 7年前
    7

    好资料,要多多学习一下

  • Wangfj 7年前
    8

    UF_MODL_ask_body_faces

  • a1041402294 6年前
    9

    66666666666666

  • ddcs2008 6年前
    10

    好东西一定要顶,谢谢楼主分享!加油!

  • 终生 6年前
    11

    厉害了,楼主,强强强

  • cheengbin 6年前
    12

    想要一个垂直的面,应该也是关联面吧

  • Chenyw VIP会员 6年前
    13

    生命不息,学习不止

  • 王牌飞行员 VIP会员 5年前
    14

    ID王牌飞行员学习打卡-20200326 谢谢楼主分享!!!

  • chtan7882 5年前
    15

    好东西一定要顶,谢谢楼主分享!加油!

请登录后发表新帖