NX二次开发(UFUN)-使用块的面创建基准面使用相对的基准面UF_MODL_create_relative_dplane

本文介绍了如何通过编程在CAD模型中对块的各个面创建基准面,并使用集成方法进行偏置操作。代码展示了UF函数的使用,包括创建块、获取面、设置颜色和创建相对偏置平面的过程。
摘要由CSDN通过智能技术生成

   做基准面,通过集成方法实现

对块的各个面都做一个基准面,通过偏置该块的各个面得到基准面。

具体实现代码如下:

    UF_FEATURE_SIGN sign1;
    tag_t block_tag;
    block_tag = NULL_TAG;
    tag_t body_tag = NULL_TAG;
    double corner_point1[3] = { 0.0, 0.0, 0.0 };
    char* edge_len[3] = { "200.0", "100.0","100.0" };
    sign1 = UF_NULLSIGN;
    tag_t blk_tag1 = NULL_TAG; // 现在是指针类型
    //创建块
    UF_MODL_create_block(sign1, block_tag, corner_point1, edge_len, &blk_tag1); // 不再需要取地址符号

    //遍历面
    UF_MODL_ask_feat_body(blk_tag1, &body_tag);//获得块的标识号,通过特征获得

    uf_list_p_t face_list;//定义链表变量
    UF_MODL_create_list(&face_list);//初始化链表
    UF_MODL_ask_body_faces(body_tag, &face_list);//通过体特征获得面的链表
    
    int pt_select[3] = { 0,0,-1 };
    double reference_point[3]= { 0,0,0 };
    char * angle_string = "0"; char * offset_string = "20.0";
    int num_dplanes=1;
    tag_t dplane_tag[2] ;
    tag_t object_tags[3];
    object_tags[2] = NULL_TAG;
    object_tags[1] = NULL_TAG;
    int i = 0;//面链表的序号值
    tag_t current_face = NULL_TAG;
    UF_MODL_ask_list_count(face_list, &i);//获得面组的总数量
    for (int j = 0; j <= i - 1; j++)//通过循环遍历面并改颜色
    {
        UF_MODL_ask_list_item(face_list, j, &current_face);//获得具体面的标识号
        tag_t face_tag = current_face;
        object_tags[0] = current_face;
        UF_OBJ_set_color(face_tag, 1);//设定面颜色
        char buf[256];
        sprintf(buf, "已选择的整数变量的值为%d\n", i);
        uc1601(buf, 1);
     //创建块的面的偏置基准面   

     

   //生成基准面,参考块的面,用偏置方法实现,注意把点坐标参数设为空,以及将角度也设为空。不需要的参数设为空即可;

     UF_MODL_create_relative_dplane
        (
            1,
            object_tags,
            pt_select,
            0,
            NULL,
            NULL,
            offset_string,
            &num_dplanes,
            dplane_tag
        );

    UF_MODL_delete_list(&face_list);
    /* Terminate the API environment */
    UF_CALL(UF_terminate());
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值