UG二次开发(ufun)- UF_MODL_ask_bounding_box实现包容块创建

    创建包容块,通过获得块的尺寸数据,然后将数据转换为字符型,然后再创建块,实现包容块的创建。

    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;
    /*sign3 = UF_POSITIVE;*/
    tag_t blk_tag1 = NULL_TAG; // 现在是指针类型     //创建块
    UF_MODL_create_block(sign1, block_tag, corner_point1, edge_len, &blk_tag1); // 不再需要取地址符号

    tag_t tagObj1 = body_tag, tagObj2; 
    tag_t object_tags[3];
    object_tags[2] = NULL_TAG;
    object_tags[1] = NULL_TAG;

//创建包容体

   //通过UF_MODL_ask_bounding_box获得尺寸再创建

//块,数值转换为字符型数据

    double box[6];
    char* edge_1[3];
    UF_MODL_ask_bounding_box
    (
        body_tag,
        box
    );//获得第一个块的极限尺寸(在绝对坐标系下的)

    edge_1[0] = (char*)malloc(256);//分配动态内存
    sprintf(edge_1[0], "%f", box[3] - box[0]);//把值转换成字符串
    tag_t blk_tag11 = NULL_TAG;
    char* edge_len1[3] = { "100.0", "100.0","100.0" };
    edge_len1[2] = edge_1[0];
    UF_MODL_create_block(UF_POSITIVE , body_tag, corner_point1, edge_len1, &blk_tag11);//创建一个同第一个块求和的块高200

    char* edge_12[3];
    double box1[6];
    UF_MODL_ask_bounding_box
    (
        body_tag,
        box1
    );

    edge_12[0] = (char*)malloc(256);
    sprintf(edge_12[0], "%f", box1[3] - box1[0]);

    edge_12[1] = (char*)malloc(256);
    sprintf(edge_12[1], "%f", box1[4] - box1[1]);

    edge_12[2] = (char*)malloc(256);
    sprintf(edge_12[2], "%f", box1[5] - box1[2]);

    tag_t blk_tag12 = NULL_TAG;
    tag_t body_tag1 = NULL_TAG;
    char* edge_len12[3] = { "100.0", "100.0","100.0" };
    edge_len12[0] = edge_12[0];
    edge_len12[1] = edge_12[1];
    edge_len12[2] = edge_12[2];

    UF_MODL_create_block(UF_NULLSIGN,NULL_TAG   , corner_point1, edge_len12, &blk_tag12);//创建包容块

    char bufc123[256];
    sprintf(bufc123, "\nMinimum z value: %f\n", box1[2]);
    uc1601(bufc123, 1);//输出这个块的z向最小值
    char bufc1234[256];
    sprintf(bufc1234, "\nMaximum z value: %f\n", box1[5]);
    uc1601(bufc1234, 1);//输出这个块的z向最大值

    
    // 释放内存
    UF_MODL_delete_list(&face_list);
    free(edge_1[0]);
    
    free(edge_12[0]); 
    free(edge_12[1]); 
    free(edge_12[2]);

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值