查看: 6287|回复: 2

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

  [复制链接]

1

主题

2

回帖

19

积分

新手上路

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

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

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

×
  1. void CMainDlg::OnMesh()
    4 o- C5 z+ y# s- l6 _+ Y
  2. {
    & z6 N  H' o+ H& F- L+ L& O. }# ^
  3.         // TODO: Add your control notification handler code here
    0 a5 b3 w9 o! b8 c: {) ?
  4.         char cue[] = "please select a face of body";
    ; j0 p* P2 C- q# G, X" r
  5.     char title[] = "select face";' m1 R, b# a* r* s
  6.     int response1;) f7 C3 \1 u. H% v! a) h
  7.     tag_t  view,temp,temp1,point;
    7 a( K; @( X2 Z7 {# E
  8.     double cursor[3],matrix[9];
    7 {, R( L1 Q9 ^% @2 j+ k; \
  9.         int ret=0;9 K  v' m, N% V
  10. . T  k4 f% a/ _4 F! C, k3 d
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    " A6 r$ _* V4 |/ @; P
  12.         char message[] ="please specify a position"; - m' n$ P9 ]: {' z; S( D: x' @
  13.         int response2;5 Y% \  F- i3 d( V4 @
  14.         / }$ u3 }, n+ I- \# h1 k) O
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;6 d& I: [6 c4 `3 l7 V* d4 A
  16.         int num_geoms;//几何体数量: [! _- [0 ~8 ^1 q# }
  17.         tag_t geoms_p;//几何体1 G* B; a& ?+ a% @
  18.         tag_t mesh_tag=NULL_TAG;
    4 R6 \" O5 M( \1 P
  19.         tag_t scenario=NULL_TAG;
    + K5 _+ u# s0 J
  20.         tag_t display_part_tag;
    : I8 B  _% I) \" S3 Y' c
  21.         tag_t proto;) K; n. B! ^" z  m1 P
  22.         //最小化当前对话框) M) |" W. T! d, f& K- N) z
  23.         ShowWindow(SW_HIDE);
    7 H; \1 b3 v3 e% N; }% J
  24.         int num_bodys=1;
    9 h: w3 o5 S( V$ Z7 U
  25.         tag_t body_tags=NULL_TAG;( D  G% z" s" R3 B' d0 U1 j0 Y; Y
  26.         int num_desc_lines=1;/ E* ^7 _3 L$ m, j3 K( }, \
  27.         const char *description="";8 d6 e6 ]+ Z% A* f1 D$ Z2 M
  28.         tag_t new_fem_tag;
    ' ~/ q6 t4 k1 F0 M. n  H$ f& J
  29.         display_part_tag=UF_PART_ask_display_part();! L) {- D& W8 T
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    / Q" B: \, g* u$ ?5 `4 J- ^* b

  31. 5 j  \% o' T! m
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    ) b# Z+ o6 U. m7 @$ G9 c( |' \
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    5 I$ P$ D$ ~; A) Z
  34.          mesh_parms.element_size=1.0;
    * q8 O! _7 F# m( x
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    $ K' S0 O+ [0 v
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    ( N/ L/ J% H# v
  37.          mesh_parms.format_mesh=true;# p' W2 I# i! W2 h" x) ]* N1 V
  38.          mesh_parms.attempt_quad_mapping=true;. G, o/ Z. |0 j  B; R
  39.          mesh_parms.split_poor_quads=true;% _2 e' j  g, G8 [
  40.          mesh_parms.maximum_quad_warp=5;
    7 n  d1 |* V+ j8 p" ]
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//2 O2 j9 @) E3 y0 C1 N( T
  42.          mesh_parms.maximum_midnode_jacobian=5;# f7 |  G8 _' s. ]- o- i
  43.          mesh_parms.minimum_face_angle=20;/ c& l: E9 u( j, g
  44.          mesh_parms.surf_mesh_size_variation=50;
    9 p' e8 C$ ^! t! `3 Z
  45.          num_geoms=1;- r. _4 h' f0 x3 ]: \0 v  e
  46.          geoms_p=NULL_TAG;
      J5 A2 W. X0 k0 N$ F6 ^

  47. % H# Y. _% s0 o
  48. 5 ~/ I8 f& S- X3 S9 z. `" v
  49. 7 o+ A0 C, ?  d: C" `" h1 v

  50. ) F$ @) o: F8 `' y
  51.         //把控制权交给UG
    9 Z' I8 C- T* g- Q" J. q# k3 `
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    % R3 x! t: e, y- D
  53.         if (ret != UF_UI_LOCK_SET)
    : d7 H; S6 D0 u  u9 q+ x/ [, h) [
  54.     {
    8 B/ |1 N7 Z% i$ L
  55.         UF_UI_set_status("Could not lock Unigraphics");
    $ }* Y; u5 b, U# `( A$ |
  56.         return;
    : `* W8 D' Y0 d( G0 `
  57.     }
    / Y0 f. X5 }& a1 S# W+ H
  58.         ret = UF_UI_select_with_single_dialog(cue,title,. r( m6 E  w* ^1 L* f4 b
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,$ Z, W4 x7 l8 n8 P
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    ' B9 x; E1 L  X7 U
  61.         " Z7 {. A, f6 p9 `& v$ H' x5 N# {- `
  62.     * a: w8 G3 |' G9 U0 p: n" X* s) J
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    8 ?2 z. y4 f  k$ ^1 m' F6 L# u

  64. ; j7 U* J- n# q# w
  65. int count=0;& L7 {9 \6 l0 w
  66. 5 ]& [& S' R" `' A( w; z
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    $ X6 K1 C4 D1 f4 W; p4 h6 T
  68.     if(!ret)6 t% Y) S. t2 i( d7 u( Q) |& [
  69.     {
    " L9 g0 S( f7 t5 O8 q
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    . n, n' L! N6 [0 s  D
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
      P5 X9 f* n$ y. `# m* P0 P+ K5 w% ]* }
  72.         {' ?5 @$ e2 J; c  O
  73.                         num_geoms=1;
    / w( ^0 M, C4 c/ d: S+ ~3 ]1 k, P
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    0 M7 Q: q8 g+ u4 s3 l/ l
  75.                          if(error!=0)* T( b$ B7 x' F8 X' }
  76.                                  AfxMessageBox("划分网格不成功");1 O. f  e- w& r- z8 e1 j4 R
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    / y% W) K3 q& @' G) ]
  78.                 }
    ; G5 g- H' X0 N
  79.                        
    & T$ i+ i- h9 M1 A- |# I4 p7 k' z
  80.             
    - O  Q* }9 B% I$ l0 W, a% i6 ]
  81.                                
    : {( N0 A) h, N' {5 i+ R& @
  82.         }       
    & p8 I6 L+ R2 l; D' Z0 ]* e
  83.         //UF_free(geoms_p);
    + ?5 J' w7 m9 @' u: b
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    & {. J# u2 i, O; B
  85.    ShowWindow(SW_NORMAL);
    4 O5 E9 W& [% c! r
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
5 f- x6 P: r4 r0 d% f特此前来求教错在哪里了
* s* p/ E/ {1 f  M$ S) x
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

4

主题

3

回帖

40

积分

管理员

积分
40
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试 ' \5 i. a6 _! h( M

3 O# P! _% S1 K直接在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
, G/ U, K$ ?' [0 b2 S3 I7 A你先不用 MFC 的方式试试
- R. m) Z1 {( i
/ V, j) w8 ]" K8 |( o+ k0 R直接在NX 里面 划分网格看看
: F0 f' Y% V/ H5 V
直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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