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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh()
    ( j. [6 }1 a9 O
  2. {/ L' z* ?; A+ V, |7 @; b
  3.         // TODO: Add your control notification handler code here
    " K2 y9 N1 i" ]& H0 R
  4.         char cue[] = "please select a face of body";& i9 X- j* F& x8 ^: E! p: n8 E6 N
  5.     char title[] = "select face";
    ; g( X  }; H: q- K
  6.     int response1;' z" l# h0 q! k4 k1 O- t! J
  7.     tag_t  view,temp,temp1,point;
    1 E9 w7 Y( P8 }1 d% E
  8.     double cursor[3],matrix[9];
    * u" r: I4 z7 S# t
  9.         int ret=0;  J8 [" T. i# c5 O9 \

  10. 7 g  b. R* O  w8 V0 C! c% ?
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    / e$ u2 A% y# k1 P% v
  12.         char message[] ="please specify a position"; ) C3 G2 r' I3 c# H) O: X) E& [3 k
  13.         int response2;6 [6 K0 R$ y/ c2 ~" ]
  14.         . Q0 |+ P: }. k" @. W' i
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;% w& z0 r0 N, n5 W2 P
  16.         int num_geoms;//几何体数量
    ' s* U1 }' p  y' ?) \
  17.         tag_t geoms_p;//几何体
    1 S/ t' g% f6 b. B& R& `! T/ J
  18.         tag_t mesh_tag=NULL_TAG;7 P% F+ v. ^( U- @
  19.         tag_t scenario=NULL_TAG;
      b9 ]" e( d! Y, K# A5 S4 A) X& h. L
  20.         tag_t display_part_tag;
    , o6 y8 J3 d) w, s1 w
  21.         tag_t proto;
    - W! d8 f; Z4 L1 |+ ]
  22.         //最小化当前对话框
    6 `+ @$ Z$ e, o
  23.         ShowWindow(SW_HIDE);" u1 p3 c, q7 r! e1 f/ k0 A
  24.         int num_bodys=1;
    * M2 f; `  q6 c8 C6 _' T+ x3 Y1 B
  25.         tag_t body_tags=NULL_TAG;: p1 E0 p5 `5 J
  26.         int num_desc_lines=1;8 x& @$ z, l0 @! `! m
  27.         const char *description="";7 D2 h: r& a" l
  28.         tag_t new_fem_tag;
    & F/ P8 q! L* Y9 I8 R1 s
  29.         display_part_tag=UF_PART_ask_display_part();" ?% e; f% U( E; @3 ]
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    * t; N  R7 n4 `. m* y

  31. 5 x; A- {: o# t. i5 H8 b
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    6 z9 i9 {$ |& E8 i) F
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    1 w% X% f9 {. ?4 X0 g( q9 o4 [
  34.          mesh_parms.element_size=1.0;
    & `4 J5 K6 g$ R& R
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    1 [& ?9 C" E0 @. s" U: Z! [1 a7 l- l
  36.          mesh_parms.edge_maTCh_tolerance=0.508;; }1 G; f8 r# f0 n; K4 N
  37.          mesh_parms.format_mesh=true;
    ) L  G# h4 }! H
  38.          mesh_parms.attempt_quad_mapping=true;
    , {1 _2 u/ t, l5 k; c: J) ?' [4 l
  39.          mesh_parms.split_poor_quads=true;
    * z5 ^6 w1 U& _# _4 g# ]3 z
  40.          mesh_parms.maximum_quad_warp=5;; T2 c1 C+ S0 A4 c" G
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//) O3 D- Q2 [0 z( F- ?" J" Q
  42.          mesh_parms.maximum_midnode_jacobian=5;
    / S& m" \6 Z" Q( H, ]+ `4 U# x- S
  43.          mesh_parms.minimum_face_angle=20;
    / V: I8 H! {; C  H5 I6 u9 M5 f
  44.          mesh_parms.surf_mesh_size_variation=50;# G" T3 [. @  C, N
  45.          num_geoms=1;2 B4 q4 j( a3 v: A
  46.          geoms_p=NULL_TAG;- q* W4 O# Y8 E
  47. 7 p; q0 b& k7 X9 P4 B# U
  48. . t3 B( s  H1 h' N5 s. Z
  49. : i- j; L: y7 Q, K  B9 `. @6 Y
  50. 4 p! x7 {4 b3 `/ |4 C
  51.         //把控制权交给UG; t; T$ H( M8 h8 w
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);9 p. g1 v- E! U# g. M% c
  53.         if (ret != UF_UI_LOCK_SET)8 Y( j, {% f" J6 V1 ?' X
  54.     {! q: q. }. h$ x
  55.         UF_UI_set_status("Could not lock Unigraphics");9 X4 l/ [. X  s
  56.         return;6 X; @0 L: S0 W0 }& P
  57.     }
    % `( v2 y1 V) \! t  t& B% p
  58.         ret = UF_UI_select_with_single_dialog(cue,title,) S9 J: V* e/ ]; G3 j0 _
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    $ q, [" G- F( ]% c+ O. Y
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    % x7 |8 N  _/ I! Q7 ]) `; ^
  61.         6 I- J! D3 w1 m8 }! z) W
  62.    
    - p. d- A/ V0 z, c% i
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    ( s3 T! Z' [$ @0 y
  64. , B$ P' c" l! n, U6 X
  65. int count=0;
    # j" E/ c2 D! e! }& {) r

  66. 4 u, t& f3 U7 E$ d
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    9 I* P8 Z: y% U4 z- x
  68.     if(!ret)
    * J& e, X- U  Z4 g6 y; o
  69.     {
    4 P9 r3 a  [3 z; b
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    % a& v8 ^, w# }0 _/ n/ E8 Q/ M9 R
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    ! L2 C: l' W: ^" o+ `" f# t
  72.         {
    5 P5 i- a5 z! o* C9 |
  73.                         num_geoms=1;
    4 j" ^$ P9 w4 t( W/ i- E" I
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);+ D$ k% O, f  k4 K( e4 Q) I
  75.                          if(error!=0)
    ' y( f. W, f% |$ P% e
  76.                                  AfxMessageBox("划分网格不成功");
    ! ~) W  T( @* |' \4 j
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");1 z( w1 \- U5 b+ {2 o: b! e; I% T+ Q
  78.                 }
    # h5 ]! M& ~2 e) I2 K
  79.                        
    3 B9 T% P- O) r) l% L
  80.              # ?& o0 h. A! c8 W* [5 w: ~: i
  81.                                
    8 q8 i" J$ b1 Q3 s; P6 F: T3 A
  82.         }        # z* j) v; F# b, w1 _
  83.         //UF_free(geoms_p);4 d: y7 z& A: T! D3 X
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);& r8 T! T" f6 O( C( V9 v5 b
  85.    ShowWindow(SW_NORMAL);( b/ A7 S+ j# h
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,/ w5 p% W. A7 d2 x& f/ k
特此前来求教错在哪里了, L% @% c5 `8 Q0 ?' N, D
上海点团信息科技有限公司,承接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 的方式试试
* d$ {  j' ~8 y! a% t* l  |2 K! R) S2 q* l8 @
直接在NX 里面 划分网格看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

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

KKuN 板凳

2014-5-21 23:33:18

admin 发表于 2014-5-16 12:236 A" W$ n/ N! Q
你先不用 MFC 的方式试试
; t( y( P; J3 z3 I% t- r
5 ^$ {1 a9 }7 e4 K4 ?9 J直接在NX 里面 划分网格看看
- F$ E2 N) x2 b) c5 w' [0 E" 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二次开发专题模块培训报名开始啦

    我知道了