KKuN 发表于 2014-5-16 10:48:19

求教一个网格划分的问题

void CMainDlg::OnMesh()
{
        // TODO: Add your control notification handler code here
        char cue[] = "please select a face of body";
    char title[] = "select face";
    int response1;
    tag_tview,temp,temp1,point;
    double cursor,matrix;
        int ret=0;

        //UF_UI_specify_screen_position()函数的初始化参数
        char message[] ="please specify a position";
        int response2;
       
        UF_SF_ugs_2d_mesh_parms_tmesh_parms;
        int num_geoms;//几何体数量
        tag_t geoms_p;//几何体
        tag_t mesh_tag=NULL_TAG;
        tag_t scenario=NULL_TAG;
        tag_t display_part_tag;
        tag_t proto;
        //最小化当前对话框
        ShowWindow(SW_HIDE);
        int num_bodys=1;
        tag_t body_tags=NULL_TAG;
        int num_desc_lines=1;
        const char *description="";
        tag_t new_fem_tag;
        display_part_tag=UF_PART_ask_display_part();
        tag_t work_tag=UF_ASSEM_ask_work_part();

       //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
   mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
       mesh_parms.element_size=1.0;
        /* mesh_parms.element_size=dDefaultElementSize;   */
       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=5;
       mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
       mesh_parms.maximum_midnode_jacobian=5;
       mesh_parms.minimum_face_angle=20;
       mesh_parms.surf_mesh_size_variation=50;
       num_geoms=1;
       geoms_p=NULL_TAG;




        //把控制权交给UG
        ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
        if (ret != UF_UI_LOCK_SET)
    {
      UF_UI_set_status("Could not lock Unigraphics");
      return;
    }
        ret = UF_UI_select_with_single_dialog(cue,title,
                UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
                &response1, &surf, cursor, &view);//调用面选择对话框
       
   
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);

int count=0;

//UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    if(!ret)
    {
      if (response1 == UF_UI_OBJECT_SELECTED ||
            response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
      {
                        num_geoms=1;
                               int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
                       if(error!=0)
                               AfxMessageBox("划分网格不成功");
                       if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
                }
                       
            
                               
        }       
        //UF_free(geoms_p);
        UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
   ShowWindow(SW_NORMAL);
}这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
特此前来求教错在哪里了

admin 发表于 2014-5-16 12:23:45

你先不用 MFC 的方式试试

直接在NX 里面 划分网格看看

KKuN 发表于 2014-5-21 23:33:18

admin 发表于 2014-5-16 12:23
你先不用 MFC 的方式试试

直接在NX 里面 划分网格看看

直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
页: [1]
查看完整版本: 求教一个网格划分的问题