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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh()
    0 \) I. d9 R  w
  2. {( e& w- u% U$ |; \; Q, c3 }& B
  3.         // TODO: Add your control notification handler code here
    # C2 B. K9 F5 U2 z6 j+ I( z9 j
  4.         char cue[] = "please select a face of body";9 ~3 O# \; P" W6 a4 O, g, U2 Q! A
  5.     char title[] = "select face";& y2 o/ `" }6 H$ o+ u: q  j
  6.     int response1;
    : s! H* V; L# v6 `) l
  7.     tag_t  view,temp,temp1,point;
    ! D: E  R+ q9 g# \' f* W0 ?
  8.     double cursor[3],matrix[9];
    4 @3 I2 ^: J7 z% ^3 ]3 ^; q
  9.         int ret=0;
    4 l; t$ K7 d9 o4 N( x. d& M

  10.   E; k8 l' y" Y: S1 f. Y
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    : j/ P; u9 t2 `9 I8 K9 h) n
  12.         char message[] ="please specify a position";
    , W2 @( V4 L9 C; \  Q
  13.         int response2;! m6 F, Z8 t0 ^: N; J0 X4 P  _
  14.        
    9 E) A. s$ |3 z8 J$ S! f7 N& |/ V
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;# D  k. p2 e! o; i" k- [" v4 E
  16.         int num_geoms;//几何体数量
      B$ v5 M0 |9 u. ^3 \8 N4 Y% q! T
  17.         tag_t geoms_p;//几何体. a5 n* R8 k( B, a, h! M! e6 e
  18.         tag_t mesh_tag=NULL_TAG;
    , A9 M4 A8 a/ ~! Y
  19.         tag_t scenario=NULL_TAG;5 C0 q- v+ ^% {7 ~- L8 z$ Y
  20.         tag_t display_part_tag;& _  v3 r) p0 p* E/ y; d: L# i
  21.         tag_t proto;
      r5 r  M9 v! p$ ^1 `
  22.         //最小化当前对话框
    3 u4 b; k+ Z& W/ R$ j
  23.         ShowWindow(SW_HIDE);7 Q* n1 I- ?1 C
  24.         int num_bodys=1;* B2 `: J) @* z- B
  25.         tag_t body_tags=NULL_TAG;
    / n4 I& z6 X1 d
  26.         int num_desc_lines=1;
    1 s  `3 S+ D; s4 H1 {8 s; _: D2 g' L
  27.         const char *description="";
    4 L- b; p+ ~1 R' `9 R2 v: s
  28.         tag_t new_fem_tag;
    4 S4 }" u: E! G) [% C
  29.         display_part_tag=UF_PART_ask_display_part();4 X3 e5 ^6 k6 W9 U9 ]6 _
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();, d" e1 N- f  F% x3 z

  31. % Y! K+ X' D& ^7 v- F! J9 L! E/ F
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    9 g8 _7 B5 T* J! q) L. I1 ]8 H
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;* n# R# X, W0 E  \
  34.          mesh_parms.element_size=1.0;
    5 [( J" p6 Q, u, e2 T
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ 9 ?; Q- e+ b; @$ M  O8 h; Y% _- e, U
  36.          mesh_parms.edge_maTCh_tolerance=0.508;; `7 k, a1 }/ _
  37.          mesh_parms.format_mesh=true;
    - f' G4 U* P' U8 K9 i: f+ B/ f0 p% s
  38.          mesh_parms.attempt_quad_mapping=true;  j, C) k$ A: U+ e
  39.          mesh_parms.split_poor_quads=true;
    9 w' G5 U1 A6 ^) d% T" m
  40.          mesh_parms.maximum_quad_warp=5;
    ' t. i/ Q" x) A4 v) u' ]
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//7 H9 D: R. A  J* a1 T- B
  42.          mesh_parms.maximum_midnode_jacobian=5;
    ! f0 O; ]* @+ A1 W) T2 z' g$ ~1 H5 t
  43.          mesh_parms.minimum_face_angle=20;
    1 ?$ j% P; O1 E& @
  44.          mesh_parms.surf_mesh_size_variation=50;1 d8 m, I) q) B# c
  45.          num_geoms=1;$ U. e2 @) U% I6 N3 S
  46.          geoms_p=NULL_TAG;# u; _( f: R0 h7 \0 L; R: l, M" E
  47. ; t, k+ z2 q' R$ F
  48. . K0 C# X5 P+ j% ]# L0 R
  49. ' e  ]7 g5 t. ~8 {

  50. $ F1 k0 Y2 z3 K6 R
  51.         //把控制权交给UG/ `1 p; D2 T; |1 X
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);  q  r: _9 \6 ]  M. _5 Z( M
  53.         if (ret != UF_UI_LOCK_SET)
    1 w2 W! N8 V% |0 H1 l
  54.     {, S# k. [' x) v& @+ x7 B/ J& w
  55.         UF_UI_set_status("Could not lock Unigraphics");
    3 h5 b0 \8 i/ J1 b7 M
  56.         return;3 @; B- n) R$ o+ U$ w  u
  57.     }
    2 @* o3 d# S( J- Q' F1 Y
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    1 q$ f0 c/ i' R+ i8 v
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,. k. o5 }/ p5 _6 y; L
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框) b* C/ y0 J# Z$ ]9 y8 q
  61.        
    4 Q2 c. n0 F$ H* R' i7 X9 T* b: w6 _
  62.     ( T6 r* W, H# H
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);; c2 E2 y2 x4 j2 @2 \* H1 }

  64. * u: A  B" X1 z3 B
  65. int count=0;
    2 N( _' b5 e( i" P( `) D

  66. : q; c$ r; J/ f
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        % x  A. S; U  M9 R
  68.     if(!ret)/ ~, s" d4 k/ X1 ^; ?
  69.     {
    $ x& z  P7 c8 f& t
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||  }: u5 }) |) b+ i  ]. F2 d
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)) F0 N& }2 A; j6 w  J
  72.         {
    * g: s6 ]# ^/ G2 N
  73.                         num_geoms=1;
    0 A' A- N* e; T  N# `7 n* ~8 ~: t
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    . p/ b3 v( l7 g! R; M  V
  75.                          if(error!=0)! m$ z. u9 y, ~9 o
  76.                                  AfxMessageBox("划分网格不成功");: x- Y) R, ~2 k5 ?0 u) U
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");" q8 Q! T# a" i
  78.                 }0 I3 ?/ h6 P- e$ w: K
  79.                        
    % X/ R8 v( ?+ t6 m# g
  80.             
    ) h+ m# m8 ]9 X4 K' m& k5 @
  81.                                 7 L. r  R- B7 Z+ U. `! n0 Q
  82.         }        9 `  [$ O6 O. L& P5 Y9 Q0 V* }
  83.         //UF_free(geoms_p);1 N: `) x4 e. S
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    : a1 g8 z. p! S- u( t7 q
  85.    ShowWindow(SW_NORMAL);
    * C5 N' l" \' R6 ?, ~, D; T
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,* L9 a8 i0 A! G8 @3 F% _8 u$ }1 M% k
特此前来求教错在哪里了( a8 x: `4 X& P
上海点团信息科技有限公司,承接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 的方式试试
6 C/ p, K9 F) w) Z5 u
9 B" ?: m# [9 `+ @- ^, u2 R  J直接在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:23
3 |& f$ u/ Y) `你先不用 MFC 的方式试试
  x, e' U. \: C$ f
0 ?% n0 J' o2 C7 g& w- k& K  B, ~直接在NX 里面 划分网格看看

3 O) ~4 g. T3 z+ t& F3 A直接用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二次开发专题模块培训报名开始啦

    我知道了