查看: 6367|回复: 2

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

  [复制链接]

1

主题

2

回帖

19

积分

新手上路

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

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

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

×
  1. void CMainDlg::OnMesh() ( _+ C6 w$ b1 G# e5 O7 G
  2. {* T* m2 N  g( x8 Q; p! D
  3.         // TODO: Add your control notification handler code here: U% _8 O: `' [! m+ o: R/ k
  4.         char cue[] = "please select a face of body";
    0 B/ ]) q5 b5 p% e5 _7 g
  5.     char title[] = "select face";
    4 W% T6 F5 g' ^& K) a7 F+ n
  6.     int response1;
    5 c4 o' `3 C9 E6 L  u
  7.     tag_t  view,temp,temp1,point;
    . P/ u4 L0 H. o
  8.     double cursor[3],matrix[9];. A) o. H0 h; h+ O3 t) ?  r
  9.         int ret=0;
    1 z2 Q$ o$ u1 w+ [" D8 c" h
  10. 6 z* Z$ z# ^9 n+ B& u- o* A
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    ' c6 T! }% F. q6 ~. r+ N5 `& H5 q/ e3 t1 y
  12.         char message[] ="please specify a position";   G9 J( l- [, I/ A- Q. d% u& o
  13.         int response2;# O% J1 G; [$ \
  14.         * J" L2 S/ @. p7 f8 ]! H" z( Q
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;: f; X) R$ S4 K
  16.         int num_geoms;//几何体数量/ y- ?/ [2 L6 V) z9 B
  17.         tag_t geoms_p;//几何体1 V4 ^) Y- G' }; A7 ]3 x, ?
  18.         tag_t mesh_tag=NULL_TAG;" N, M$ d; A6 A. ?+ W" K: w( i
  19.         tag_t scenario=NULL_TAG;
    " {, _5 r5 @& \/ a* ~: {; X& X( }1 K/ ]
  20.         tag_t display_part_tag;3 ^& R$ Y% o/ W
  21.         tag_t proto;: y2 ~( o: A) [/ ?6 d- J) W
  22.         //最小化当前对话框
    / c1 l9 O  A) \: t% C
  23.         ShowWindow(SW_HIDE);
    $ e" j5 ~. Q, i! i: Y% p: Y$ w# C
  24.         int num_bodys=1;
    ) L9 O! B3 n8 _& Z& K3 _! e3 m
  25.         tag_t body_tags=NULL_TAG;2 `: J' m. ^. O8 y- [1 E) `. [
  26.         int num_desc_lines=1;. b' ]0 c" O0 l/ I  q( u' Y
  27.         const char *description="";! _7 ]+ J0 l" e3 c1 u4 E
  28.         tag_t new_fem_tag;9 Q, j! {( n' X1 s. A4 l! Q
  29.         display_part_tag=UF_PART_ask_display_part();
    * {, P6 |! A2 u6 [
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();2 f6 z7 s( p7 _9 G
  31. : z( T5 X/ F' m2 ~+ F
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;6 o& n0 {4 l+ X8 e( P/ N
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;; Q8 [) ~0 A" n2 q
  34.          mesh_parms.element_size=1.0;
    4 _, I' y  V$ B9 ^. N$ ]7 s
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
      D, y6 P" I5 D/ j/ E7 J
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    2 S, _7 ^5 ?' ~: t' w. Q  o8 H
  37.          mesh_parms.format_mesh=true;1 z4 o9 e7 R) ~
  38.          mesh_parms.attempt_quad_mapping=true;
    " m+ N# u1 j* j% A5 i
  39.          mesh_parms.split_poor_quads=true;& I! o" R1 h7 L. d) c
  40.          mesh_parms.maximum_quad_warp=5;3 A  Z% s- G: j* p7 G/ P
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//3 }4 d! A4 W( Z( B) J5 [( Z4 R2 @, R
  42.          mesh_parms.maximum_midnode_jacobian=5;
    / N, k8 L) i" E4 @, j% z
  43.          mesh_parms.minimum_face_angle=20;
    8 z6 b8 L' R, ]7 G) A; C) ?* g" y
  44.          mesh_parms.surf_mesh_size_variation=50;2 s! I0 T7 H( \$ t1 [4 i# t
  45.          num_geoms=1;: `( l$ d! S; a5 \
  46.          geoms_p=NULL_TAG;! V& N% r/ L% l) u- p8 |  q
  47. 8 t* c1 S: H3 Q8 U5 Q. Y' T8 b  C

  48. 1 |8 k* Q: M7 E( N; n4 ^* b4 z
  49. 3 u* x' v) F; ~. A( M4 I9 R) Y

  50. 7 ^6 n. f, n' d6 F6 J
  51.         //把控制权交给UG
    # A6 A7 e+ j' O1 H* y6 y, _6 p
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);8 }; H4 @/ W: l4 h8 R/ X: s
  53.         if (ret != UF_UI_LOCK_SET)
    ) j& ]3 k2 ?6 f, J' ]
  54.     {6 W) l9 B- S8 e, o" v
  55.         UF_UI_set_status("Could not lock Unigraphics");
    8 Z0 @" e/ T: w3 w9 L( E
  56.         return;9 h+ @( p, w# N: Q! M- l) T
  57.     }
    5 J. E$ h- t" z3 E8 w
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    # R& G8 O1 Z. o6 g4 p5 V: j
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    & ~' O' U" }$ N6 x! }$ D1 @
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框. K) a3 Y8 m# a7 ~/ f3 R0 ~
  61.        
    $ e  ?; w7 S! ?
  62.     8 C  B. f2 j+ l. o! R/ _
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);4 J, s; ~  u" L0 q  N8 n0 `8 I
  64. 7 Q3 s; l. w; {* p) p# \0 \
  65. int count=0;
    4 r, W1 h- K5 q+ S5 R' a
  66. 2 t9 i: R; W. W; D( M
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    9 m9 _% q7 Q) F8 @2 ]1 h
  68.     if(!ret)& C* [6 u+ o) ^2 A; j! i9 x
  69.     {
    , ]1 G! Z. h' A) X
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||4 z1 g9 [6 e: j  m6 `
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME), W+ ^5 x$ U; u
  72.         {
    # Q& F2 |5 C% {& `+ l) H
  73.                         num_geoms=1;
    9 S4 ^3 ?3 [* V% N" f
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);1 ^  S2 b" r1 Z! l+ H
  75.                          if(error!=0)8 z' G2 Z' c9 A0 [3 r% h; T
  76.                                  AfxMessageBox("划分网格不成功");
    ( p/ t9 j6 O% |# o+ c
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");% |7 w9 O# ^, \* A8 ~. d+ u( ?
  78.                 }( _# c; G3 t) W+ E, `5 [% Q, d/ n# m- S
  79.                         / {4 A! v1 ]/ U0 \7 i) L! i
  80.              - m* I) s7 k" q" Y
  81.                                
    : W- `4 V  e% C) I- S
  82.         }       
    $ j! {, ]  O* V) W1 q: {0 l/ H+ _
  83.         //UF_free(geoms_p);
    4 E0 m. b$ b5 H
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);5 q/ y6 h7 Q0 |( Q( `* k) @
  85.    ShowWindow(SW_NORMAL);  s& V1 F$ l5 N) c5 I; e# I. w. D
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
1 u' ^' _+ k5 l+ \- R: ^特此前来求教错在哪里了6 |( x; K) q( _9 e$ u/ p. C3 m
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

4

主题

3

回帖

48

积分

管理员

积分
48
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试 : K, s: |3 @4 E7 b4 \
8 B% e) k7 V6 p; r- U3 Q
直接在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% M: a& _2 i& z" x: U; m; T
你先不用 MFC 的方式试试
  C3 i8 J- d0 X
- ?/ f( I% f5 `+ J! U直接在NX 里面 划分网格看看

3 {6 s& T7 ^) L/ }& P直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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