马上注册登录,享用更多网站功能!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用UF_SF_create_ugs_2d_mesh()划分网格
入口参数要求是 faces or sheet bodies 的tag
我是这样做的
设置了一个类选框
UF_UI_select_with_class_dialog(
cue, title, UF_UI_SEL_SCOPE_WORK_PART_AND_OCC,
init_proc, NULL, &response, &count, &objects)
在init_proc 中设置 UF_UI_mask_t mask_triples[] = { UF_face_type, 0, 0};
这样能选择得到的应改只有face的tag了
然后将输出 count objects 传入UF_SF_create_ugs_2d_mesh()中
部分代码如下:
(mesh_parms).element_type = UF_SF_UGS_MESHER_quad4; //UF_SF_ugs_2d_mesh_parms_t mesh_parms
(mesh_parms).element_size = 5; // 给各参数赋值
(mesh_parms).edge_match_tolerance = 0.508;
(mesh_parms).format_mesh = TRUE;
(mesh_parms).attempt_quad_mapping = TRUE;
(mesh_parms).split_poor_quads = TRUE;
(mesh_parms).maximum_quad_warp = 10.0;
(mesh_parms).midnode_option = UF_SF_UGS_MESHER_mixed_midnodes;
(mesh_parms).maximum_midnode_jacobian = 5.0;
(mesh_parms).minimum_face_angle = 20.0;
(mesh_parms).surf_mesh_size_variation = 0;
UF_SF_create_scenario("Scenario_1.sim", &scenario); //创建scenario环境
error = UF_SF_create_ugs_2d_mesh(&mesh_parms, count, objects, &mesh_tag);
if (error != 0)
uc1601("错误“,1);
UF_SF_display_mesh (mesh_tag);
UF_free(objects);
编译没问题 但网格总是出不来
通过调试 发现生成了mesh_tag
后来通过另一种方法来实现
使用 UF_OBJ_cycle_objs_in_part (tag_t part_tag, int type, tag_t * object )
UF_OBJ_ask_type_and_subtype (tag_t object_id, int * type, int * subtype ) 两个api
遍历part,将subtype为UF_solid_face_subtype的挑出来
然后同样传到UF_SF_create_ugs_2d_mesh() 参数设置相同
这样就可以得到网格
调试过程中发现两种方式传入的facetag值居然相同
但结果一个能行,一个不能行
由于后一种只能整体划分
不能实现选择面划分的交互 所以不能采用
请教高手 我的第一种方法到底哪里有问题
为什么网格出不来呢?
谢谢大家了 ^_^ |