查看: 6296|回复: 2

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

  [复制链接]

1

主题

2

回帖

19

积分

新手上路

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

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

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

×
  1. void CMainDlg::OnMesh()
    1 O; x; G$ W' i2 n0 I) W
  2. {- ^9 M6 i' s( z9 G, n
  3.         // TODO: Add your control notification handler code here
    . ^4 l% w8 n* q( H  Q
  4.         char cue[] = "please select a face of body";
    / A9 _7 M3 ]. k1 c6 r" ~3 W: T
  5.     char title[] = "select face";# S* L5 d4 V. @  Q; j# Q
  6.     int response1;. ]2 i# z( w1 K( |/ x3 ~0 n6 m
  7.     tag_t  view,temp,temp1,point;) B  l$ Z6 Z  g% N& P+ P2 |, W7 Q
  8.     double cursor[3],matrix[9];
    " k3 C& o6 ~$ s. C
  9.         int ret=0;. r* F9 G) \/ o% c- T  S) e
  10. % N; q; [$ |3 X
  11.         //UF_UI_specify_screen_position()函数的初始化参数( u! X% N- n$ f/ h
  12.         char message[] ="please specify a position"; - F5 c2 K" h* x4 a. f1 t! ^
  13.         int response2;
    8 V. O/ {+ G( z# U
  14.         4 u  \! d0 `6 F# D4 {# Z/ g6 L
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;: V6 c2 Y: o# p5 O8 p6 J4 t
  16.         int num_geoms;//几何体数量
    0 q+ C, ?; n$ ^3 I+ p3 o  K" g
  17.         tag_t geoms_p;//几何体
    # Y" ^/ D  T( h+ P
  18.         tag_t mesh_tag=NULL_TAG;
    5 F, L' x( Z! h0 e" n7 C* `
  19.         tag_t scenario=NULL_TAG;9 o3 X. y* h/ ?$ I6 D1 m
  20.         tag_t display_part_tag;
    5 r2 @1 B# t1 t% @1 X
  21.         tag_t proto;
    . M! K9 e0 {( x- o
  22.         //最小化当前对话框
    9 N$ a) w+ a6 t- O$ q1 \
  23.         ShowWindow(SW_HIDE);3 y! V- {# I' c/ x* V& ~, A+ u0 q* X: R
  24.         int num_bodys=1;
    ; t# w: ?5 s  n! Y2 m: r: R1 |
  25.         tag_t body_tags=NULL_TAG;
    ' l& a: L; H$ Q  F& k
  26.         int num_desc_lines=1;
    6 v! I$ ]5 v$ f- T0 S. f1 A
  27.         const char *description="";& a/ D6 S; S  j0 Z
  28.         tag_t new_fem_tag;* u5 _( t: h) ^
  29.         display_part_tag=UF_PART_ask_display_part();, {1 z) k5 S, o2 |  H4 a% Q
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    6 R% W, N' v' B$ j( T- v

  31. ! B0 _/ x& R( l, t. A: \3 j
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    2 Q4 U0 ~2 V1 }8 g- ?
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;( i/ O, B1 S/ `4 _) g
  34.          mesh_parms.element_size=1.0;8 s2 A5 x# L. X( p& J. I# g
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ # N' S+ D2 R0 H& m3 l* @+ G
  36.          mesh_parms.edge_maTCh_tolerance=0.508;( v' y& b& ]6 l$ Q( `% Q
  37.          mesh_parms.format_mesh=true;
    * Q# K0 k2 B: _4 c3 d- c
  38.          mesh_parms.attempt_quad_mapping=true;! x- d1 l. U0 @
  39.          mesh_parms.split_poor_quads=true;; q$ r( R) O7 u6 ~$ H8 \0 x# C8 g
  40.          mesh_parms.maximum_quad_warp=5;, f. R" ?6 F, J- |+ U- H
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//' D. a9 }( b- L2 l6 g
  42.          mesh_parms.maximum_midnode_jacobian=5;
    0 N4 D% h! @6 L+ O9 }* p
  43.          mesh_parms.minimum_face_angle=20;4 p3 [5 U! q. c3 W/ P: b) o
  44.          mesh_parms.surf_mesh_size_variation=50;+ a  n4 z- y1 s+ s7 g% _
  45.          num_geoms=1;- q* R% F8 D  F% i: S
  46.          geoms_p=NULL_TAG;( u  \- \( [6 C# c* p, Q/ ?
  47. & C4 S7 n2 l4 X/ X2 O( i* J9 m0 }
  48. 3 T5 K2 C6 {! s" c- E) `& t: [+ i
  49. + R3 w( g) S  ?$ u) t  o
  50. 2 A+ F# `/ I7 Q0 p7 S  `( R+ [
  51.         //把控制权交给UG
    # ?- a* R7 U6 r! b4 v
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);. d' |" L: T# D. O4 F
  53.         if (ret != UF_UI_LOCK_SET)
    6 p4 C2 y% Q  G: R, l) b/ O
  54.     {8 ~; ^/ c3 P' Z# {( O5 {$ a
  55.         UF_UI_set_status("Could not lock Unigraphics");
      d% d7 ~- D1 v/ T9 l) _2 e$ F0 t
  56.         return;
    * G  L1 `+ e6 k
  57.     }
    : A. w6 U7 l9 z/ Y
  58.         ret = UF_UI_select_with_single_dialog(cue,title,7 Q0 ~/ f9 T- }5 r+ O0 ~
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    3 H. ~1 r0 w2 }" q& _0 J
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框& b0 h$ ~. R% o9 i1 x* }9 a( B; g
  61.        
    , H+ D* {6 g7 C- L- Y2 n$ r- l5 A+ W
  62.    
      a0 u3 i+ w9 R1 s/ B
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    $ \; L; B# [, `8 e( q

  64. + a4 F/ C+ n4 u& o
  65. int count=0;
    ( L) S& Z' u1 Q+ `( I1 n9 Q( \: W

  66. % q1 X8 x5 c  a  G' }
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        9 _/ b2 R' t9 }. E0 G
  68.     if(!ret)
    2 P$ u1 w# {& L* @
  69.     {* }) V) p7 J+ ]# n( H7 ~/ n
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||% U3 ~' Q9 i2 |2 B1 x' |' Y7 r
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    3 B6 r! E) E1 d; V* q+ W  P
  72.         {( e" V7 u! \: A5 X6 H
  73.                         num_geoms=1;
    ( o$ a3 u8 e7 D6 b( I6 j0 N! Z
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);; q4 w* M  r1 @! t& R
  75.                          if(error!=0)1 I4 |1 |+ R* K+ G
  76.                                  AfxMessageBox("划分网格不成功");
    : m5 e& w% F# _8 z8 z0 N
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    . w. Y6 z8 Q& ], _
  78.                 }& ]  n% r9 H. k. Q8 ]& }
  79.                        
      v3 e( U! C$ ]' O# x
  80.             
    4 d# E( A' c0 Z# e
  81.                                 $ j; M; X, S/ F3 a; N0 \" ]3 `
  82.         }        & m3 X6 {$ a) r5 {  U
  83.         //UF_free(geoms_p);
    ( W! Z5 \; C4 T: q7 h, l- B& n
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    + N: H' Y- f& s- r; T5 b
  85.    ShowWindow(SW_NORMAL);; `& C; C' ?, _& I; d1 O3 `7 I+ [
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
8 Q2 r1 n' }% o/ i8 k3 c& z5 V% y特此前来求教错在哪里了" d+ H6 J5 q" F
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

4

主题

3

回帖

42

积分

管理员

积分
42
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试
/ X0 ^" ]8 m* H) h" S6 h- x9 [% Q4 X+ K* l" t- o% L, r$ M3 R1 t; M
直接在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:235 o/ K' C9 Q4 j- W$ f/ S0 _$ U
你先不用 MFC 的方式试试 ! d0 o- [- m( @
) u$ w( N* T# {5 {) I
直接在NX 里面 划分网格看看

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

使用道具 举报

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

本版积分规则

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