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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() , G  \3 X6 L" z$ G/ n
  2. {6 s0 ~! T# M) T. `, d' y& Q# S
  3.         // TODO: Add your control notification handler code here
    * i2 h5 Y% D, @
  4.         char cue[] = "please select a face of body";' L9 j/ `/ F2 [' X2 `# y
  5.     char title[] = "select face";! Z# u& ~6 T* `
  6.     int response1;7 T9 o7 n9 c4 p" G
  7.     tag_t  view,temp,temp1,point;5 s1 W% y7 s! t' }; m, d! o+ H
  8.     double cursor[3],matrix[9];
    3 R3 q7 v" k0 P. Y
  9.         int ret=0;
    # T1 g% ?. i/ |8 S
  10. / h+ z4 M  f7 M6 a4 F) t5 J
  11.         //UF_UI_specify_screen_position()函数的初始化参数  ]$ Y( r) K& ?# F
  12.         char message[] ="please specify a position";
    , F+ S2 L9 q8 s
  13.         int response2;- P/ {5 M6 v; p, z5 K$ j
  14.        
    3 X& p* f- p: v" ?! D
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    ) q5 C9 ^8 _9 [
  16.         int num_geoms;//几何体数量
    ( J1 t( N7 ^1 A4 M: `0 D
  17.         tag_t geoms_p;//几何体/ u+ X! ^3 T( U3 e% Y' I& t) |
  18.         tag_t mesh_tag=NULL_TAG;2 q$ k) t; e& m! x) K" v6 k8 c
  19.         tag_t scenario=NULL_TAG;# r* q; O; U+ g1 Y, M
  20.         tag_t display_part_tag;
    / ]# B" K! v" l& ]
  21.         tag_t proto;
    ; [7 \0 G. n! Y% E
  22.         //最小化当前对话框- X' _, U1 X+ }: E9 @! M
  23.         ShowWindow(SW_HIDE);
    1 t5 f" C2 ^" ~3 T  _- C
  24.         int num_bodys=1;
    4 O# n7 \. q; G# Q* b
  25.         tag_t body_tags=NULL_TAG;
    ! x# T% U5 P, Z" M  N* V
  26.         int num_desc_lines=1;( v* \. J3 k* E* g, b
  27.         const char *description="";3 a3 o: k& [: P: ]4 X
  28.         tag_t new_fem_tag;# T- k: }' L+ {' ?$ k- C
  29.         display_part_tag=UF_PART_ask_display_part();
    $ M. f% i* I: W2 h+ f5 g
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    1 A. S- Z4 V- u0 e

  31. + D' a3 u% n4 u: o/ y
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    ( w+ I, j) I' T& c
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    ) _" a7 v6 K. J: v4 n8 j/ z* D2 U4 `
  34.          mesh_parms.element_size=1.0;
    " P" v. w2 ~; m
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ + ~; Y; Z/ R! ]7 K7 E2 U' g3 E
  36.          mesh_parms.edge_maTCh_tolerance=0.508;8 _5 M4 o' B0 y
  37.          mesh_parms.format_mesh=true;( h- }6 `: z6 H$ \8 [
  38.          mesh_parms.attempt_quad_mapping=true;* A! g/ ?) ?; H) d* M
  39.          mesh_parms.split_poor_quads=true;
    7 ^3 G8 e( z; Y
  40.          mesh_parms.maximum_quad_warp=5;8 r0 c1 l: f; |
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//  o# F+ }7 x; E
  42.          mesh_parms.maximum_midnode_jacobian=5;
    4 p, o, V, J+ k; ]
  43.          mesh_parms.minimum_face_angle=20;# q, v) E) r' P! }, A, e
  44.          mesh_parms.surf_mesh_size_variation=50;2 ?6 b3 ^6 H2 N
  45.          num_geoms=1;5 w6 d2 K. M7 C2 ^1 z
  46.          geoms_p=NULL_TAG;
    / E  }- B8 C, w& s6 I* Y

  47. ; n/ _- |6 J+ N3 O
  48. 5 Z3 J  z4 d8 z8 v  W5 P' [( q
  49. / K+ l# g' A% D3 T+ B
  50. . c' z! B# ^2 _  W# b( X' ^' i
  51.         //把控制权交给UG
    3 S7 |9 ~. c( X8 @5 t
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);7 w* v5 C% ]8 L6 b
  53.         if (ret != UF_UI_LOCK_SET)! a4 ]) _* q- |: ?" G2 v
  54.     {% b8 l6 g, C; }4 u  q9 S1 @: G4 H6 |
  55.         UF_UI_set_status("Could not lock Unigraphics");
    8 A6 x% ]; e, i3 h$ ^+ w
  56.         return;
      P. p$ x$ f* e; f' B, ]; G
  57.     }' H$ D, {1 [$ J, J* S2 e- X7 A
  58.         ret = UF_UI_select_with_single_dialog(cue,title,- _8 L. u/ M' H( o  N8 U
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,- h2 E# I% f( X& a! `: L! l
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框7 X& j/ F& t- S! M2 k
  61.         ) M1 l- _2 G2 z
  62.    
    : w! K( K- S. K8 z2 Z
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);, V! }: d& y5 I3 S+ V

  64. * l. l1 e  f) M# Q" x$ D" X6 W& [7 B
  65. int count=0;
    5 p6 D6 P; Q3 y
  66. ; {) O5 A/ r% I' {4 }2 C; |" j6 Z
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        + B8 Z# Y3 A" s
  68.     if(!ret)* r0 ~7 r. k' S0 l. f& J
  69.     {
    - ^. r" `& x% F/ f
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||6 b" ^# K, ^, U+ K" |$ Y; L2 v
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    # C; V0 k. V  @! {9 D
  72.         {( L2 x1 \& e8 d( i
  73.                         num_geoms=1;
    7 e- k1 X/ [' R! F
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    5 f6 @# a+ q& [
  75.                          if(error!=0)# ?" f- b( A, V/ c) x
  76.                                  AfxMessageBox("划分网格不成功");* M2 l! n* E. m' t5 |" K
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    + `3 M6 e9 X; }0 y
  78.                 }+ k4 D& O' G, x, ~) I7 A3 l
  79.                        
    : H0 d* u, `; W1 _
  80.              ; q, D/ F7 y- U* h& D4 `
  81.                                 ; N% O# p2 v) j9 @1 H
  82.         }       
    ; z1 |$ G5 t) v- R; f
  83.         //UF_free(geoms_p);
    & m2 ^9 R1 x! R0 c4 {  H3 C
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);0 t+ k& v' w8 h6 L* M) F4 L4 M
  85.    ShowWindow(SW_NORMAL);
    / t+ G- r3 H# E$ L
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
) M6 [& l0 S# X/ h特此前来求教错在哪里了
* _, Y; H( L1 a' C0 k! ]( r/ v: n
上海点团信息科技有限公司,承接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 的方式试试 0 H& }% t# Y2 x* v3 ^) a
! |' v: S) b# _; T6 @* n' H1 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- _* q) A7 P8 Z* I: F7 ]
你先不用 MFC 的方式试试
' w- k0 N. N5 Z
7 r3 @! L2 t' k! B% x* V% P直接在NX 里面 划分网格看看
- Q4 `4 K) g) t6 p/ [: Q
直接用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二次开发专题模块培训报名开始啦

    我知道了