【NX二次开发】基准特征

创建基准特征
UF_MODL_create_fixed_daxis 创建一个固定的基准轴特征,方向由点1指向点2
UF_MODL_create_fixed_dplane 创建一个固定的基准面特征,输入点和方向
UF_MODL_create_relative_daxis 建立一个对NX对象相关联的基准轴(后面有例子)
UF_MODL_create_relative_dplane 建立一个对NX对象相关联的基准面(后面有例子)

查询基准特征
UF_MODL_ask_datum_axis_parms 获取基准轴的原点和方向
UF_MODL_ask_datum_plane_parms 获得基准平面的原点、方向、偏置距离和偏置角
UF_MODL_is_datum_axis_reversed 查询基准轴的方向是否反向
UF_MODL_is_datum_plane_reversed 查询基准面的方向是否反向
UF_MODL_ask_daxis_size 获得基准轴的长度
UF_MODL_ask_datum_point_and_direction 获得基准特征的点和方向,没有则返回NULL

编辑基准特征的函数
UF_MODL_reverse_datum_axis 将基准轴反向
UF_MODL_reverse_datum_plane 将基准面反向
UF_MODL_convert_to_fixed_datum 将基准转换为固定基准
UF_MODL_edit_datum_direction 用新的方向对象标识来修改基准特征
UF_MODL_edit_datum_point 用新的点对象标识来修改基准特征

例子

extern DllExport void ufsta(char *param, int *returnCode, int rlen)
{
    UF_initialize();
    
    //创建关联的基准轴
    int num_refs_daxis = 1;
    tag_t obj_eids[3];
    obj_eids[0] = 45021;//圆柱面
    int point_select_daxis[3] = { 0 ,0,0 };
    tag_t daxis_feid;
    UF_MODL_create_relative_daxis(num_refs_daxis, obj_eids, point_select_daxis, &daxis_feid);

    //创建关联的基准面
    int num_refes = 2;
    tag_t object_tags[3];
    object_tags[0] = 45021;//圆柱面1
    object_tags[1] = 45318;//圆柱面2
    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];
    
    UF_MODL_create_relative_dplane(num_refes, object_tags, point_select, which_plane, NULL,
        &angle_string, &offset_string, &num_dplanes, dplane_tag_relative);

    UF_terminate();
}
原文地址:https://www.cnblogs.com/KMould/p/13612618.html