PLM之家PLMHome-国产软件践行者

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

  [复制链接]

2014-5-21 23:33:18 6091 2

KKuN 发表于 2014-5-16 10:48:19 |阅读模式

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() % r) f* L3 R3 I+ L
  2. {
    . n+ B3 c" @+ ]8 K9 g; f' S! w( s  Y$ [
  3.         // TODO: Add your control notification handler code here& Z$ L" d& v" {7 z+ f$ {
  4.         char cue[] = "please select a face of body";; n0 u3 c0 m" x  J
  5.     char title[] = "select face";
    ! I: u( N) e3 W
  6.     int response1;
    $ e( ]5 A+ r* Q, D9 R! S/ J/ ^
  7.     tag_t  view,temp,temp1,point;
    ; Z: |2 G5 t1 j' [, p9 \2 W
  8.     double cursor[3],matrix[9];
    # c' ^4 Q$ s% W
  9.         int ret=0;2 f2 \- r: o/ \0 s

  10. * c9 M0 S) H5 E% A
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    + ]& O  Z+ O' L& p6 `5 [3 }
  12.         char message[] ="please specify a position";
    $ m/ I! Z2 `2 e7 G7 V6 o/ u
  13.         int response2;2 ], p$ Z0 L" _) N
  14.        
    ; i& G; P& C4 _5 ^- J' |
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;# t' C2 B/ U) g' T% I
  16.         int num_geoms;//几何体数量
    ( H2 j" P- x9 U' Z2 [
  17.         tag_t geoms_p;//几何体
    ! g% ]  Y' t' }( z& U4 ?4 [4 E/ r
  18.         tag_t mesh_tag=NULL_TAG;
    4 }0 D$ Q/ k$ r3 s( i, N+ \4 e8 a
  19.         tag_t scenario=NULL_TAG;
    : D- ~! |& M0 Z
  20.         tag_t display_part_tag;, ^3 J- y8 j9 t/ }, r# b& _0 D
  21.         tag_t proto;4 T6 X. v) u: D
  22.         //最小化当前对话框
    ; X: \* v( b) z- p3 L3 Y# e- @
  23.         ShowWindow(SW_HIDE);4 B" L' p. E% l" [5 O4 |7 w
  24.         int num_bodys=1;
    ) H4 @. E0 _6 h( L
  25.         tag_t body_tags=NULL_TAG;2 Q0 f+ h4 F" u  o" L: i- f1 V
  26.         int num_desc_lines=1;
    2 W6 S, `" l+ H, t( B4 w, j; j
  27.         const char *description="";1 d7 t' U( I+ _
  28.         tag_t new_fem_tag;
    - Q. k, g6 {9 n' t* f4 @
  29.         display_part_tag=UF_PART_ask_display_part();
    6 U) B0 L8 l4 |
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    ; g* S% o' l: d) X- ^

  31. - S: H6 m4 t6 e% C- W% c0 E* P) }. Y
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    * w1 z( n" M+ C3 z% y" l' T
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    - s8 E+ T8 S" e- c7 F, S+ M
  34.          mesh_parms.element_size=1.0;
    6 f( X+ @& T' V! V
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ 1 {2 {) t7 |9 ~, j% G9 q  x- i/ ^
  36.          mesh_parms.edge_maTCh_tolerance=0.508;; a* l" w  J5 E' g7 }4 I
  37.          mesh_parms.format_mesh=true;; t9 [* L( ^$ p7 Y9 c! x2 _
  38.          mesh_parms.attempt_quad_mapping=true;% J. o1 S" y' Z0 r: l0 w
  39.          mesh_parms.split_poor_quads=true;: Y& a( S+ {% i- _! K: H
  40.          mesh_parms.maximum_quad_warp=5;
    3 K' T. m) C! B
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    & @  x% U# v8 [# ?/ h. \4 A9 D' w2 s
  42.          mesh_parms.maximum_midnode_jacobian=5;: B1 x' u0 C/ k6 H6 F9 `' e
  43.          mesh_parms.minimum_face_angle=20;# d8 k3 T- l  I+ U
  44.          mesh_parms.surf_mesh_size_variation=50;9 W3 Z( A5 h- I/ V& t1 d# ^8 u
  45.          num_geoms=1;
    : h4 X0 b' L5 ]" D/ C1 Q. F
  46.          geoms_p=NULL_TAG;
    4 N6 B* Y* e9 ~: o6 P. B
  47. ; J. i8 t8 o( x4 e! m" w$ O

  48. ! D1 a4 Z$ G) @- A

  49. / r( y( `% q, V9 g4 B4 @
  50. ; T- g( l/ J: E2 x
  51.         //把控制权交给UG
    + o& m9 y3 n" |5 O/ q2 O
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);, C9 c* ]  l) i! `# \2 G  P2 p8 Y  N! W
  53.         if (ret != UF_UI_LOCK_SET)6 L; x% q* q" A/ _3 ]
  54.     {6 {! \0 o- L2 u0 t" d6 ^4 q
  55.         UF_UI_set_status("Could not lock Unigraphics");0 H# {: b( i% W- ?0 e6 Z
  56.         return;
    2 Y- A  K0 c) R4 _( y, F1 H; A. B* r
  57.     }
    - N3 P& d: {4 M% K/ b: C
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    " Z7 V% o6 L! c+ ~
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    5 a! c5 C+ F  w% T8 T
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    9 r" Q: c9 n, P& O9 C3 f' B) p
  61.         " Q1 g2 f/ s* z  M
  62.     ( g8 M9 A& K, Z
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    " O, \; r9 S/ h
  64. ) H" ]  g5 y1 I: z
  65. int count=0;
    9 Z4 ^+ N) g2 R3 c7 N0 B
  66. 2 h0 R2 u  f6 @3 B7 w
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        / y! B, N( }( k1 j: e
  68.     if(!ret)( ~/ R! l+ O8 I. j7 b( _: ~6 c6 [
  69.     {
    * [, m- [1 i: O! q
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||- V6 U) g) s2 [. D$ c
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    6 B7 L4 g( q4 R5 M3 y% l# B
  72.         {
    ) Q2 e0 k) l2 i
  73.                         num_geoms=1;0 D& r  s! F# h/ D5 M! z
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    , n' w+ s  m1 |  g& {: {' x
  75.                          if(error!=0)
    $ X) B/ a8 {. B
  76.                                  AfxMessageBox("划分网格不成功");8 n6 I# M" o" I3 Y8 u
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    ' S* Z7 |  s9 _: J+ H) S9 q% }1 f: p
  78.                 }+ w! E% y0 A+ T3 }; [/ w/ H
  79.                         8 M" J9 _0 P$ ?9 a" j( k
  80.              , k# k8 o6 t/ {/ ?5 p4 x
  81.                                 ! |4 V- o3 I3 C) F) X
  82.         }        . B  p- b* S! Z" S$ H
  83.         //UF_free(geoms_p);
    : N4 r7 ~8 G4 E9 v
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);5 T. k' Z8 W5 {* o/ I4 |9 w* ~- Y1 ^
  85.    ShowWindow(SW_NORMAL);  m" s$ \- _# _' o1 @, g  p
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
% ^! i+ X9 m: G特此前来求教错在哪里了& \0 F6 I; e) Y) L7 ?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复2

admin 发表于 2014-5-16 12:23:45

admin 沙发

2014-5-16 12:23:45

你先不用 MFC 的方式试试 2 S/ M. ]" s2 c
3 J# w, M# B* k
直接在NX 里面 划分网格看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

KKuN 发表于 2014-5-21 23:33:18

KKuN 板凳

2014-5-21 23:33:18

admin 发表于 2014-5-16 12:23
# F9 O" I" r- G你先不用 MFC 的方式试试 * |! `8 z, V+ `7 B
2 W) {9 ^7 d' r: F) h
直接在NX 里面 划分网格看看

- J* ?! b  }9 @% x* @# V0 z直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了