查看: 6383|回复: 2

[求助] 求教一个网格划分的问题

 火 [复制链接]

1

主题

2

回帖

19

积分

新手上路

积分
19
发表于 2014-5-16 10:48:19 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×
  1. void CMainDlg::OnMesh() & X2 @* w, K( L. K: t
  2. {
    3 o7 c. N- k; {7 i' j2 D- ]- s. u, r, j
  3.         // TODO: Add your control notification handler code here
    ) q/ F0 B5 a) P2 z
  4.         char cue[] = "please select a face of body";! u$ u: y+ z0 t+ ^2 N1 b
  5.     char title[] = "select face";
    + ~) @  m* h- P2 Z! i
  6.     int response1;* ^$ J# D* t$ i; T* U% W% K
  7.     tag_t  view,temp,temp1,point;% ]! b/ s( D9 X4 K8 j$ Z" x
  8.     double cursor[3],matrix[9];
    2 N1 q, \: G& p! @+ n8 B* o
  9.         int ret=0;) f! Q( r' W" B! W. g' t/ S
  10. 5 l' |) W2 h+ Y9 c& @3 e
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    4 J9 {9 T" @$ e& G' f: m; p
  12.         char message[] ="please specify a position";
    + o3 W3 \8 L- F1 T  v2 h# X  r$ |# |
  13.         int response2;
    8 Q8 Y2 N' _: \5 D8 w1 k
  14.         $ J, H5 u, N& d
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    1 Z9 s1 m  y8 {1 K$ a' ?
  16.         int num_geoms;//几何体数量
    " \* c; |+ v* J$ C+ @$ W
  17.         tag_t geoms_p;//几何体9 R# O2 M* }# M0 {
  18.         tag_t mesh_tag=NULL_TAG;. M0 N7 L, B# Z! I' E" I. P& y. m6 g
  19.         tag_t scenario=NULL_TAG;  \& o+ i( e9 Z
  20.         tag_t display_part_tag;
    ' V" u& {' ~6 d" \# e. H
  21.         tag_t proto;
    ' B1 j$ B8 Y0 Y8 E7 b- K2 v/ f7 n" H
  22.         //最小化当前对话框
    ! y0 `! U8 k2 d
  23.         ShowWindow(SW_HIDE);+ w! \. z9 V" `$ S
  24.         int num_bodys=1;
    ' }" u1 M- S& E+ }! I0 e  ]
  25.         tag_t body_tags=NULL_TAG;, T$ T( I$ m% k1 t3 ]% k: a0 H
  26.         int num_desc_lines=1;
    6 S. s9 e9 F/ T2 J
  27.         const char *description="";! p& E, L" ?2 w! g
  28.         tag_t new_fem_tag;% _8 ^+ D# T6 L' D  I
  29.         display_part_tag=UF_PART_ask_display_part();
    ; m! x- B/ t: [8 Q1 H! r
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
      f7 L8 E. \5 @$ ]& P8 m& V  g

  31. 2 {" t$ m! B0 O$ i+ V8 G: ~) ]* M7 ~
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    : O" P7 {0 w* d! T' F
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;1 R" W+ Z3 [9 m- v
  34.          mesh_parms.element_size=1.0;
    ! x! `, ?. O4 C: y1 W
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    : ~7 p+ ^, t- w" _% V
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    - ~  W: W3 F+ O# k! D( G
  37.          mesh_parms.format_mesh=true;
    ) o+ n& q( ~( Y# J
  38.          mesh_parms.attempt_quad_mapping=true;" v- q9 c- c( Y
  39.          mesh_parms.split_poor_quads=true;9 m* f* `# B2 y5 N
  40.          mesh_parms.maximum_quad_warp=5;
    & K+ {  U9 s2 w5 ]+ R7 ]0 Q
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    * b8 O1 u% b6 r" y  |% G
  42.          mesh_parms.maximum_midnode_jacobian=5;$ \. e# R0 @/ s
  43.          mesh_parms.minimum_face_angle=20;
    0 a" D5 J# W2 v8 m4 J  C  X( k# L2 l
  44.          mesh_parms.surf_mesh_size_variation=50;) o( [( z  m- p0 Q3 l5 ^# @* i
  45.          num_geoms=1;. h$ l( w+ H0 `' b- l4 L6 n
  46.          geoms_p=NULL_TAG;
    ! t0 }. ]- r3 P, `/ D
  47. 0 A( [% t7 S1 W+ w( P& y+ U, `! G4 o

  48. - J& ~1 r$ K' t; D: O

  49. . ]2 D% N8 c  N: w

  50. 8 R5 w! @5 S7 q' Q$ x
  51.         //把控制权交给UG
    8 w' c1 @% u, }' F6 R
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    6 I% w4 u' C1 s" y9 H$ G6 I3 `% m
  53.         if (ret != UF_UI_LOCK_SET)) n+ t" I  [6 ^/ E7 h7 p
  54.     {
    * T" k! g  T7 |+ e
  55.         UF_UI_set_status("Could not lock Unigraphics");% R% I, V3 f" k1 B7 n/ x
  56.         return;
    + G% I- c) F: \; ~' u
  57.     }6 a4 V5 S% Z5 x2 U! O: h
  58.         ret = UF_UI_select_with_single_dialog(cue,title,1 I$ y0 @* ^4 p% V, ^! k' F
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,9 M! u& c9 U2 T- A$ I3 z- H
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框% E* v  m* }' x# _, V
  61.         4 B+ q0 c7 S1 R6 A
  62.    
    + A2 m" J5 p3 k$ R  \' R; P3 F
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);7 d. `, |$ J* v% G' n, b
  64. 2 J9 Y/ f: p, q" P5 b9 m
  65. int count=0;+ v4 ^, l& n- l7 [/ C2 T9 [1 U

  66. ! d' L. e6 S: z9 [2 ?
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        ' z3 z& D7 f, K2 M# h0 j
  68.     if(!ret)7 m1 \: i9 h' X4 u7 f- ], }
  69.     {
    1 L. r) n6 S" u# _, C3 M
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    7 l" t# s) Q5 Z9 f0 A- C
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)' ^3 p1 K; C: J3 J
  72.         {# k9 n8 \! o  F0 q# J% |& i$ a; q
  73.                         num_geoms=1;! ^  y* h/ R+ x3 ]8 w: Y4 z
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    8 v% y/ g+ r+ ?% C3 d& [- c
  75.                          if(error!=0)
    - }1 a* x( z0 I( `4 A. l1 P
  76.                                  AfxMessageBox("划分网格不成功");
    8 |/ z6 Q( B* R% A% }- s8 m0 e
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    8 b2 j& y( W( z( U# ~
  78.                 }. Y$ u4 O( y0 e
  79.                           k  M; i( ?4 E) \+ K
  80.              , z" Y2 z3 a( p8 b; Z
  81.                                 " W. T4 d' L! u: ^4 F! i
  82.         }       
      S8 z. P! ~# V: l5 ?$ @
  83.         //UF_free(geoms_p);/ L- d9 [3 l9 n# }
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);7 K" K' b0 `- N; e3 Y" ]
  85.    ShowWindow(SW_NORMAL);
      B6 f/ w/ W4 \4 a
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,& N. o5 z0 ]! i/ [) I2 W' j
特此前来求教错在哪里了1 |0 B, d' s2 A* V9 w" Q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

6

主题

4

回帖

60

积分

管理员

积分
60
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试
1 s; X8 b! y, D3 A& s( k
+ V# X& @: Y8 Z/ b: l直接在NX 里面 划分网格看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

1

主题

2

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2014-5-21 23:33:18 | 显示全部楼层
admin 发表于 2014-5-16 12:23( ^6 |9 B" I) J3 D' C, |% y# A1 B
你先不用 MFC 的方式试试
1 w2 f# a" V# q2 P4 d# h
# C9 N( \5 s6 {3 a8 g直接在NX 里面 划分网格看看
1 q, e# @8 @$ Q$ d, p! H! D7 R' B
直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部