查看: 6366|回复: 2

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

  [复制链接]

1

主题

2

回帖

19

积分

新手上路

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

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

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

×
  1. void CMainDlg::OnMesh()
    4 m0 k8 m1 H* o: ?
  2. {9 D1 l4 G4 L$ o* a; b- Z, Q$ ]
  3.         // TODO: Add your control notification handler code here+ y1 F* ]: ^' r' w: V; s
  4.         char cue[] = "please select a face of body";  ~9 l9 ~# ^, J  @0 u
  5.     char title[] = "select face";5 j3 i3 L/ g0 E6 n  t0 \9 X. h
  6.     int response1;/ R4 D* s2 s3 W; w
  7.     tag_t  view,temp,temp1,point;- f0 c$ o& v; @( L
  8.     double cursor[3],matrix[9];0 ?& Q! |( I5 Y+ k" }( @4 |' N* ^
  9.         int ret=0;
    $ I! G0 v- O; K* F$ A; c
  10. 3 g- P% p  |" {& B- |  u
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    % r; y- y6 I8 @. z2 {2 Z1 f  y5 n" N! S
  12.         char message[] ="please specify a position"; : w' i( \7 z( ~2 k
  13.         int response2;$ g; k. h$ W+ C1 I
  14.        
    ! k5 M) u) g# @6 S
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    ; s  A- l" _2 l+ Z
  16.         int num_geoms;//几何体数量  F# p! J& a/ U. F. W3 ~
  17.         tag_t geoms_p;//几何体
    1 C: w) ?* }+ A6 T# I$ b9 m
  18.         tag_t mesh_tag=NULL_TAG;
    0 z. r1 Z4 O" p; X2 n9 f8 ^
  19.         tag_t scenario=NULL_TAG;
    4 W* ^: K- p# H: t
  20.         tag_t display_part_tag;6 c* ?3 R2 {: a5 N
  21.         tag_t proto;5 u; [1 I9 Z: m' D+ r0 w9 q
  22.         //最小化当前对话框
    8 J  a; y: @7 C) U3 o( Z4 `* T; p8 c0 l2 C
  23.         ShowWindow(SW_HIDE);
    % }& [# L0 }1 k& N8 \/ d. S
  24.         int num_bodys=1;. o0 `; r6 B) T, B8 T
  25.         tag_t body_tags=NULL_TAG;" h* \9 Z" \& P7 j( W
  26.         int num_desc_lines=1;
    / @! e7 M0 J+ g& e
  27.         const char *description="";6 E1 n0 ?: h; _, @
  28.         tag_t new_fem_tag;4 ?; m$ C- J& ]( t2 {; d# B' l
  29.         display_part_tag=UF_PART_ask_display_part();
    . \; w8 o+ l5 f& ^" a9 _
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    " @, H; G& Q  f! n) b

  31. + d2 G+ z& Y# N9 }8 j( I% V7 p& l
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;: \# z, U, d; d0 `
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    9 M$ ~3 [  O& q! V8 B. _
  34.          mesh_parms.element_size=1.0;" p- R; v5 ^  ^/ v# l2 ?6 h  Z+ ^1 o
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ 4 C# {/ D4 o/ {( o
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    , `# \( ^1 T3 Q" ]* r$ l
  37.          mesh_parms.format_mesh=true;; u4 X$ ]. r% [
  38.          mesh_parms.attempt_quad_mapping=true;
    7 }3 V, R. v6 \9 ^% W. \! I
  39.          mesh_parms.split_poor_quads=true;) v, N, g) W% ^: v& t
  40.          mesh_parms.maximum_quad_warp=5;4 O% a7 Q) _2 N! P: ^0 A4 H
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//' M4 s; l0 Z  `3 r" j9 u4 p" Q6 q
  42.          mesh_parms.maximum_midnode_jacobian=5;% U4 O( ?  {7 c$ G1 L
  43.          mesh_parms.minimum_face_angle=20;3 q8 h5 j4 E9 R# [1 e7 ?# |
  44.          mesh_parms.surf_mesh_size_variation=50;( o% ?7 t& ]+ w+ d/ F
  45.          num_geoms=1;8 L/ _1 }9 h: H! y: m# r: g# d3 t# X
  46.          geoms_p=NULL_TAG;
    - Y9 q, `; z5 z3 I6 v+ K1 N

  47. - P# l: h: q: I

  48. 4 J% `5 }; R7 i

  49. 0 F% t* n0 z, ]: _3 W
  50. , a, z6 B( [" _& M* J
  51.         //把控制权交给UG* ?7 w; r6 k' @4 [0 G1 @- N7 N
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);4 Y/ \# \) Y% i1 }
  53.         if (ret != UF_UI_LOCK_SET)
    % o) k" @  w$ e  a
  54.     {0 L" h0 p0 D  D6 L0 b
  55.         UF_UI_set_status("Could not lock Unigraphics");* J/ j/ L, e8 u3 q2 j6 D( d
  56.         return;
    ) L3 L  |+ w3 E6 Z
  57.     }3 M3 i( z0 Z7 e+ P
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    9 s" y2 W- h  y
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,! d6 [$ O) d& @4 W6 u
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    * g1 U! z3 g% H: p  m
  61.         , j: C6 G& d4 K
  62.    
    7 H) g9 i$ r$ W
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);- ^$ D- Z& p4 x) ^8 M) \0 c

  64. + q' R6 Z( L( C" J0 _$ n, F  D8 M
  65. int count=0;
    5 c  L, _  P+ T( e# ~- ~
  66. 4 V4 A* [' X3 g
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    9 Y$ ~8 Q, x; I# H) E6 n" R* N
  68.     if(!ret)/ w9 N* z+ f! _% o
  69.     {" h& M+ o/ M- f% C- c
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    9 H  y7 G1 w" V2 I6 S( _- I
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    ( W+ ^/ k: T9 |3 L$ I
  72.         {0 a/ \) x  H! Y4 |) x. ~5 V; d
  73.                         num_geoms=1;
    # ]. [0 p, @% N& A$ N
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    # d4 L0 U, M; e/ J& f1 L7 c
  75.                          if(error!=0)
    . f) Z5 @8 {6 o1 {( `
  76.                                  AfxMessageBox("划分网格不成功");
    / D: J, V& D- X8 J  {# C6 w9 Y2 E
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    $ i; x' R+ v. {9 }2 s. y
  78.                 }
    . }8 m- P- c  V8 f4 S& h$ M
  79.                         7 A% q& Z3 l3 r2 E5 i( u3 R. p
  80.             
    & i/ c( {1 j, x' Z/ [
  81.                                
    ! G8 m( X4 y' ~$ B
  82.         }        ) B9 R. P+ K5 |0 b; A+ D
  83.         //UF_free(geoms_p);  V8 t) \3 K5 W7 a4 W8 B! b2 _
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    7 {9 \8 x. U; E6 J
  85.    ShowWindow(SW_NORMAL);
    + |7 B3 ~5 u2 e7 v
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,& ?) X* n$ ~! e2 |/ \8 w: _
特此前来求教错在哪里了
! w1 _1 C' K9 N5 a9 a8 W8 v
上海点团信息科技有限公司,承接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 的方式试试 $ u/ H) R1 j) F- q1 T$ T

% i- ], L/ w, z/ C# p直接在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( @  A* f' ^) E2 f: x2 O5 I% ?1 F
你先不用 MFC 的方式试试
" T0 f& s( m0 I) }8 ]9 W4 @/ J2 E- l+ g5 p  P3 J
直接在NX 里面 划分网格看看
& T# ]% O0 I" w- H* `
直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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