open c UF_MODL_create_simple_hole 识别放置平面 UF_MODL_ask_face_data

本文详细描述了如何在BLOCK对象上创建一个简单的孔,包括获取特征体、处理面数据、确定放置面并最终使用UF_MODL_create_simple_hole函数创建孔的过程。
摘要由CSDN通过智能技术生成

在BLOCK上创建一个简单孔

	UF_FEATURE_SIGN sign = UF_NULLSIGN;
    double block_orig[3] = { -25.0,-25.0,0.0 };
    char* block_len[3] = { "50","50","30" };
    tag_t blk_obj;
    UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);

    tag_t body_obj_id;
    UF_MODL_ask_feat_body(blk_obj, &body_obj_id);//获取特征所在体

    uf_list_p_t face_list;
    UF_MODL_create_list(&face_list);
    UF_MODL_ask_feat_faces(blk_obj, &face_list);

    int facecount;
    UF_MODL_ask_list_count(face_list, &facecount);

    tag_t placement_face = NULL_TAG;
    tag_t thru_face= NULL_TAG;

    for (int i = 0; i < facecount; i++)
    {
        tag_t face_obj_id;
        UF_MODL_ask_list_item(face_list, i, &face_obj_id);
        
        int type = 0;
        double point[3] = { 0 };
        double dir[3];
        double box[6];
        double radius;
        double rad_data;
        int norm_dir;
        UF_MODL_ask_face_data(face_obj_id, &type, point, dir, box, &radius, &rad_data, &norm_dir);

        if (type == 22)
        {
            if ((dir[0] == 0.0) && (dir[1] == 0.0) && (dir[2] == 1.0))
            {               
                placement_face = face_obj_id;
            }
        }
    }
    UF_OBJ_set_color(placement_face, 100);

    double location[3] = { 0, 0, 30 };
    double direction1[3] = { 0, 0, -1 };
    char* diame = "20";
    char* depth = "10";
    char* angle = "120";
    tag_t hole_tag;

    UF_MODL_create_simple_hole(location, direction1, diame, depth, angle,placement_face, thru_face, &hole_tag);

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值