PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh()
    & t7 |  v) L9 O
  2. {( _; r  ~9 \. r2 ]3 I
  3.         // TODO: Add your control notification handler code here6 A, z9 ~! V8 f! c
  4.         char cue[] = "please select a face of body";! a* n( n  `0 w) F% L% a
  5.     char title[] = "select face";8 a6 h/ x7 O' J
  6.     int response1;8 m( q7 b  `0 f/ @( d6 y
  7.     tag_t  view,temp,temp1,point;
    9 d& N6 b( K& x, P% Q  D; e
  8.     double cursor[3],matrix[9];& u  Z/ g' J& t8 e5 w( }
  9.         int ret=0;4 Q) q: P; R5 h+ `7 B
  10. 9 O/ r* z# h- v! J* ]: K
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    , [6 t  k5 s3 b. h" g- ~
  12.         char message[] ="please specify a position";
    0 ?; B4 O$ J& D- ]2 z4 t  o' U( `1 _
  13.         int response2;
    1 S7 I$ U* `2 |9 M' H0 h: a
  14.        
    6 [$ K( ^3 X) s) D* T) t
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    , I2 h2 _2 o" B: Y* S
  16.         int num_geoms;//几何体数量
    $ Q+ C8 n" s- ~% d; `
  17.         tag_t geoms_p;//几何体
    2 Z0 k) Y5 K0 d  f
  18.         tag_t mesh_tag=NULL_TAG;
    & {' C! a0 W5 W5 e( G
  19.         tag_t scenario=NULL_TAG;
    * p" Q& ^! D# T+ ~5 ^" k( H9 i9 w  H3 K
  20.         tag_t display_part_tag;
    & U& r# k  W) S# b$ {" d
  21.         tag_t proto;$ ]; A) b. F/ F$ I2 F
  22.         //最小化当前对话框" _+ W; }5 n9 \) Y
  23.         ShowWindow(SW_HIDE);
    - n9 v7 e/ Q0 F
  24.         int num_bodys=1;* v; I& D4 d/ Y. E0 G, [( @
  25.         tag_t body_tags=NULL_TAG;! x5 M/ N( p3 R, v3 _. u, {
  26.         int num_desc_lines=1;/ C; @4 J* b- q
  27.         const char *description="";
    9 B' ~6 y# l8 b3 M" H
  28.         tag_t new_fem_tag;' l. ^0 n; `3 _
  29.         display_part_tag=UF_PART_ask_display_part();
      N  s8 B7 @: Q2 {' }5 L
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();, B* o$ s5 j/ X
  31. 0 h' L& |$ ^4 n" b+ ~" b
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    5 k6 h4 g+ |& h$ H1 W' K5 l) P; `
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    ( ?  R. b4 V) T$ B* o& m% e  j7 S
  34.          mesh_parms.element_size=1.0;9 b+ V- y( ~& f( ~4 w
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    : W2 [: _) J' U) ^5 Q
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    ; f5 @! }; l9 @2 _$ T8 ]: u; e
  37.          mesh_parms.format_mesh=true;
      S, I/ G: A0 }, N1 ~( N7 @9 P
  38.          mesh_parms.attempt_quad_mapping=true;2 g; `( ~, h* U, b1 m; R
  39.          mesh_parms.split_poor_quads=true;
      s( w7 O. ^2 x
  40.          mesh_parms.maximum_quad_warp=5;
    8 {9 ^: J) I8 _9 k1 ?% \5 z4 S
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//4 U3 E. \* \$ |* L9 L  z* S
  42.          mesh_parms.maximum_midnode_jacobian=5;8 h: j6 [" U+ X2 d- p  }
  43.          mesh_parms.minimum_face_angle=20;
    . K8 U; E8 X/ b0 ^
  44.          mesh_parms.surf_mesh_size_variation=50;, x, t) C* Y; u1 {2 Z7 E8 W, V# m
  45.          num_geoms=1;/ ^' `( ^3 ~+ w
  46.          geoms_p=NULL_TAG;) h" l6 ^  K8 R: c( t6 E
  47. ! B" G* _+ x5 Q9 ?# g
  48. / h4 L8 p% D# t

  49. 6 I) N* i6 q, Y
  50. 9 Y, \' u! a# |7 J3 I3 |% i
  51.         //把控制权交给UG
    # X4 _# x2 F# O8 R# ~
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    % n0 K* ]% _8 b
  53.         if (ret != UF_UI_LOCK_SET)
    3 s$ ~: L+ o% s
  54.     {
    / @/ z% A* `: K! U. w# B
  55.         UF_UI_set_status("Could not lock Unigraphics");9 K1 J4 N# Q3 w8 u! F0 R
  56.         return;
    % X4 z# ^( o7 w
  57.     }2 L# Q$ @+ k- i2 P. P; S0 r) E
  58.         ret = UF_UI_select_with_single_dialog(cue,title,/ b3 K- ^% a9 H$ P
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    8 u, U8 `3 U9 v) }& e' K
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框: |4 X; K& O3 b7 {( B8 x3 j
  61.        
    $ _( D1 D, t/ \* T& t4 r
  62.     9 S& v, {+ Y3 J2 c8 |
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    & M( m, N% T) B9 [( z. E  V- w
  64. , e5 @$ w% g! H0 V
  65. int count=0;
    2 `# H6 t" @0 c$ W, l! \/ t

  66. - N: h! Q0 M9 {" j% S( Y. m/ z
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    - [/ \% O# p% o6 o& B
  68.     if(!ret)+ ^- B* y/ r1 @  B$ N
  69.     {
    , W. a/ M( v; `0 C
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||6 w( D2 b& s$ [0 }
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    8 i5 j1 U, g- _+ c1 ~5 |5 i  Y
  72.         {& g% K6 T" V& {
  73.                         num_geoms=1;
    1 W5 R, U3 }) H& ]8 ~: D  @
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);* v7 s: _7 g2 h0 b9 U2 t( B. K5 s
  75.                          if(error!=0)
    $ L# R  C7 Z1 u# _
  76.                                  AfxMessageBox("划分网格不成功");
    5 e) }$ ^, I( E9 `, R
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");  E& S, ?( K. V& J
  78.                 }' [" h; t, ?+ X, |( g
  79.                         - H- i7 p2 v" [$ V* }2 m/ g5 M
  80.             
    ; [8 U  u2 I0 z) X
  81.                                
    ) z3 I! J# z  c% |
  82.         }        , ^# N% b  c0 ~) g
  83.         //UF_free(geoms_p);- o. }4 _/ U9 w8 h# M
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    9 F6 ~6 q1 m" n& B; T- ~
  85.    ShowWindow(SW_NORMAL);
    , j- s+ }' f! _; w
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
; s9 T7 }8 R8 A3 E- J特此前来求教错在哪里了
) ?& \6 y& |1 H7 Z0 ~! S! |
上海点团信息科技有限公司,承接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 的方式试试
$ \; S0 e$ \3 X1 X7 U. p# d! A  B" ?: O: w+ d8 ]; q3 O! ^
直接在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
- j5 r$ q2 P9 ?8 ]: Y+ v1 B/ z你先不用 MFC 的方式试试 ) ^( t- w. q/ f  Y3 W# U
! P- u" s# T8 H- a9 ~
直接在NX 里面 划分网格看看
! ~* f6 S- d6 z" L* d* X* L
直接用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二次开发专题模块培训报名开始啦

    我知道了