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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() 1 L+ ^8 q# Z  m  X+ `0 @; D+ a
  2. {
    ( M7 a/ D: E. q
  3.         // TODO: Add your control notification handler code here/ T! g4 Z# z! q! x5 A& F1 {/ f
  4.         char cue[] = "please select a face of body";
    1 N. d9 S5 q7 U6 v0 h. s$ J1 @. b, _  K! ?
  5.     char title[] = "select face";4 @) a1 k( @1 ]) y/ K
  6.     int response1;. z1 A' z8 u; }+ Y- Z2 B
  7.     tag_t  view,temp,temp1,point;6 ~9 C0 ~( B9 F
  8.     double cursor[3],matrix[9];
    . o6 H/ n8 Y1 B+ p
  9.         int ret=0;
    , D' [. i5 M, o  E# b1 d5 {

  10. - ]5 V7 _2 a0 h/ s  b" `( K( h
  11.         //UF_UI_specify_screen_position()函数的初始化参数' S2 @( A1 _1 L7 f2 c! g
  12.         char message[] ="please specify a position"; 4 j; s: J! s/ J: Q( X
  13.         int response2;
    " p- P1 Q; z$ }$ |* i
  14.        
    & G/ I, R* E) H+ @' n3 d  Q4 t
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    ; B+ k' n8 S6 s5 |3 b
  16.         int num_geoms;//几何体数量
    7 {% d9 |& ?8 ]& G/ d' k( h
  17.         tag_t geoms_p;//几何体
    7 U4 K$ S$ h% j; t
  18.         tag_t mesh_tag=NULL_TAG;
    0 a6 N4 `* W& C: ]' K1 a* w: W
  19.         tag_t scenario=NULL_TAG;5 v3 J+ z! y; G
  20.         tag_t display_part_tag;
    ( s$ P; X$ N0 i
  21.         tag_t proto;
    - ^3 C" \# I. G7 |
  22.         //最小化当前对话框
    7 d: v4 [" ^1 D" u/ Z" T- B7 A
  23.         ShowWindow(SW_HIDE);" _3 B: }  \1 G$ M, P2 U5 {6 T
  24.         int num_bodys=1;3 j7 |0 N6 I! m" `3 L* E
  25.         tag_t body_tags=NULL_TAG;
    ' g( }/ Z) Z" e; r; ]! O
  26.         int num_desc_lines=1;
    ) I. X" M! q* Z2 B; E$ m
  27.         const char *description="";' ~' x0 x9 a* T3 a" W' [( v
  28.         tag_t new_fem_tag;# s$ v- m5 k! f( Q
  29.         display_part_tag=UF_PART_ask_display_part();5 ~# t, l  q1 w: o& Z
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    ! E8 @2 p& g9 r9 c6 |
  31. ' d% T8 U  q% W
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;9 q: V0 ?: ^9 O3 u3 C: t3 r* D8 @* _% G
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    1 Q3 z% ]: t3 K& w% D2 C, |/ i3 w
  34.          mesh_parms.element_size=1.0;
    0 l! S( S2 o' }7 |
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    9 F0 ]5 Q6 j% K# a
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    # J0 r3 n" G5 z
  37.          mesh_parms.format_mesh=true;
    ; X3 B) ?' D3 G! G  ]
  38.          mesh_parms.attempt_quad_mapping=true;
    # n) \5 S- p2 T
  39.          mesh_parms.split_poor_quads=true;/ k7 ]: J" j; Q& D# t' l4 B. E) c
  40.          mesh_parms.maximum_quad_warp=5;. I( U  E# {- q+ ^! l+ N
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//4 E; I7 J. c" W) I2 i: d
  42.          mesh_parms.maximum_midnode_jacobian=5;! I2 f0 Z. F7 l7 S2 q2 I
  43.          mesh_parms.minimum_face_angle=20;
    2 [$ l. u' V6 y+ T% s  @8 c% p
  44.          mesh_parms.surf_mesh_size_variation=50;8 S0 I. |% W. N, n0 q% F5 x
  45.          num_geoms=1;
    / {# t* E- j! B& u
  46.          geoms_p=NULL_TAG;
    8 i0 b5 q4 V5 ^* u- l0 E

  47. ( T* ?3 H7 \" m4 H2 |7 k8 R$ z
  48. 6 ~, D: P# ^; ]% ?: H

  49. & B1 H' I) k- p% z: a0 r4 M( `0 X
  50. 2 @& @- g# _1 W1 y6 ~
  51.         //把控制权交给UG
    # V7 n- b* t+ T& ]; Z
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    9 D1 g9 y! u+ O- S7 D+ z
  53.         if (ret != UF_UI_LOCK_SET)7 Q% C+ l" q& l1 v, B& T3 \
  54.     {( E1 W8 Q+ G+ @" O& t, j+ L
  55.         UF_UI_set_status("Could not lock Unigraphics");* @: }  S4 r+ g6 m) {
  56.         return;8 j& }5 u: n+ @" a6 `' ]
  57.     }+ P+ E" k5 Q& D& U
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    - g8 S9 F2 Q6 P' B* r+ d; X
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    " F+ r9 r. d6 ]% w, h7 h
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    0 i  a' g. z7 p7 P, R
  61.        
    & J. c" S0 G% M' O: ~# T3 j
  62.     # c: d* D  t& u5 Y/ I: ?
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);" f, ~8 w7 k+ V  j% j  _# L
  64. & U; z. p2 X5 N, n3 \- R. ?
  65. int count=0;, a" d" c+ d( t6 R3 k, S" [  I" s

  66. % ]0 A5 ?& Y( p+ p! r! {( `- _
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    9 m" r% f3 s8 C& B% u
  68.     if(!ret)$ V% x/ m- h- g; W3 ~
  69.     {8 P' s1 I$ e9 ~$ c( Q& ]
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||1 U1 h$ v+ d7 Q# K) i3 F" r9 b
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)6 }: j2 U3 c4 @4 D' _7 v
  72.         {
    - R1 ]) ^9 `3 Y0 g( p* n6 ~4 U8 y
  73.                         num_geoms=1;
    $ k8 [: s* s* t0 I
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    1 P6 J* o& O  Y- s' l/ P
  75.                          if(error!=0)$ p' {6 ?( e, Y; D1 I; O
  76.                                  AfxMessageBox("划分网格不成功");0 ~' v/ P% e( Z- {0 ^
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    / {; V7 n& H7 H- u6 H$ t
  78.                 }# B6 U) v6 c+ o9 l7 M  y3 o
  79.                        
    * A7 O# y4 c. h. K
  80.              7 N( X! k/ r0 X4 Q' b( W
  81.                                 4 Y" W& l' ?: p3 ]  a$ E
  82.         }        1 @1 c8 X! D1 `
  83.         //UF_free(geoms_p);
    ! }5 g5 |8 J9 p9 y' K
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);4 d: h8 a/ {) @5 x0 Z0 T
  85.    ShowWindow(SW_NORMAL);
    4 C1 U$ j/ a3 m; ^& t/ b
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,% E% J( x3 }2 y6 w$ a9 R1 R6 P
特此前来求教错在哪里了
7 ^7 ]8 O# r: G
上海点团信息科技有限公司,承接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 的方式试试
7 v4 p, w# O) t% @  u2 _/ x
& ]0 y. z" _* g直接在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
  K2 m  C% \* {2 A) o, D, W' t你先不用 MFC 的方式试试 5 T( p( I9 \; w6 Z9 q
2 }, l. S- S1 E
直接在NX 里面 划分网格看看
$ A" l/ O+ @. p" v6 c0 c
直接用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二次开发专题模块培训报名开始啦

    我知道了