创建包容块,通过获得块的尺寸数据,然后将数据转换为字符型,然后再创建块,实现包容块的创建。
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]);