查看: 6538|回复: 2

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

 火 [复制链接]

1

主题

2

回帖

19

积分

新手上路

积分
19
发表于 2014-5-16 10:48:19 | 显示全部楼层 |阅读模式

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

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

×
  1. void CMainDlg::OnMesh()
    6 K- E( A" |* Z. c( W5 A
  2. {
    9 J2 K! [/ r6 e3 U
  3.         // TODO: Add your control notification handler code here, G+ b6 R) V' S  c! K; n+ |/ m
  4.         char cue[] = "please select a face of body";
    ! m4 B% s/ Y5 w* n* V
  5.     char title[] = "select face";
    - \/ [9 w/ w1 ?4 B$ O1 a5 K
  6.     int response1;
    ! F7 _" k* N' u; r
  7.     tag_t  view,temp,temp1,point;
    8 ]4 F/ i) u3 b, {1 F
  8.     double cursor[3],matrix[9];1 f; u7 n3 G% ]9 _1 @2 U* a+ N
  9.         int ret=0;
    : T4 ?3 V& d( Z( n* c

  10. $ q2 @6 E, z0 {
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    4 f4 F* c+ V+ b" y( A( U  ~2 h
  12.         char message[] ="please specify a position";
    9 J$ n: s5 y2 F; T: A
  13.         int response2;
      U$ a- v. m* T
  14.         # v4 j5 ~6 {' g
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    / e0 x( j0 Y, a7 a2 @
  16.         int num_geoms;//几何体数量" _2 @2 K; R3 w6 l3 }
  17.         tag_t geoms_p;//几何体8 w4 O, W, C8 j) f% a$ h3 P" K' m+ ^
  18.         tag_t mesh_tag=NULL_TAG;
    ! q2 k0 I. k/ f9 [6 O/ {$ a
  19.         tag_t scenario=NULL_TAG;
    2 w9 j2 ?& G2 F, j
  20.         tag_t display_part_tag;
    % S* E/ f6 z9 L6 J
  21.         tag_t proto;
    , w( K) C8 h2 z! {0 n5 w  _
  22.         //最小化当前对话框( o6 S- D( `# x: n% O
  23.         ShowWindow(SW_HIDE);) Y1 x/ _" ~. r- H# U
  24.         int num_bodys=1;" ~$ r# e( q, }, U# K$ N  {
  25.         tag_t body_tags=NULL_TAG;2 c; r8 t6 D% V+ N
  26.         int num_desc_lines=1;* M0 N! D/ _2 U7 k. R; D, n2 H7 e
  27.         const char *description="";+ ^( C2 |4 G5 b5 a# O
  28.         tag_t new_fem_tag;
    ( ~) E1 M; x3 S+ s
  29.         display_part_tag=UF_PART_ask_display_part();
    - n. F6 Q; n, H# |! ^$ ?
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    ' v8 a9 S$ o' s" ^7 r  a8 y3 v
  31. ' e, n$ C# T0 g/ L2 U- V$ @" \
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;/ B8 f$ H4 T5 e# K$ F) r3 v+ Q
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    ' N4 a8 d; ^% p4 U
  34.          mesh_parms.element_size=1.0;
    % r; w" l' \9 S
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    3 g$ N6 o3 {* O" n# v, b
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    0 P! V/ {; k% V
  37.          mesh_parms.format_mesh=true;
    , A' q& |1 ?$ ]2 c
  38.          mesh_parms.attempt_quad_mapping=true;! H& u5 D/ r  v) z7 O8 [( r
  39.          mesh_parms.split_poor_quads=true;
      N' r2 l' {. \! c. k
  40.          mesh_parms.maximum_quad_warp=5;- S4 a% L, @+ ^. S( ~
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//0 ?! m2 e  p) |9 r
  42.          mesh_parms.maximum_midnode_jacobian=5;
    , y& p3 i7 B4 C
  43.          mesh_parms.minimum_face_angle=20;: E0 a* L1 E4 V2 y  z' B
  44.          mesh_parms.surf_mesh_size_variation=50;8 z7 g0 I# e0 J# \& J! p& r
  45.          num_geoms=1;
    ' ?" {" _% x2 o9 n/ J/ H
  46.          geoms_p=NULL_TAG;# P8 f% U: F! _% Z9 v" T7 i* \
  47. : K+ z% e- m, e+ W* E6 B: J8 X

  48. 0 Y. C4 p# D3 k  b5 @: @5 |/ k, o
  49. ' y- x; @; }$ c* m( K! M

  50. 6 L9 s6 N7 _# f3 q' V0 |) t
  51.         //把控制权交给UG
    # L( l# I8 }+ j6 }; y1 ?% I
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);# g$ q) K- m: a$ x; \! _8 A% K
  53.         if (ret != UF_UI_LOCK_SET)" Q8 b+ X; }, R* g
  54.     {
    * l+ X% _2 P8 o/ H
  55.         UF_UI_set_status("Could not lock Unigraphics");7 _9 S1 U& J  r+ ?
  56.         return;/ B& a9 y& q2 m2 j: _
  57.     }
    ' J4 C/ o  a! y/ V
  58.         ret = UF_UI_select_with_single_dialog(cue,title,4 w  W9 }, @* n& S
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    : W! Q: x$ n/ R" P/ J8 k
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框+ k' E. _: v1 h8 u) L! R6 Q
  61.         ' ?& k4 t) Q# P2 S1 G1 q& c
  62.     2 I/ t: T# t0 F2 [6 W+ c! Z, D# w5 q
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    9 E7 C4 C7 ~, H2 a

  64. . L, p" t: x" O. J- V
  65. int count=0;
    # R9 K- ~. p- a0 h. s- W4 i
  66. # r! N" P, U% m4 X& h
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    0 n* ~2 L) x- [" r3 M
  68.     if(!ret)* M! U; s# ^. i' W3 q
  69.     {- L6 |$ y. R1 A" d/ F: Q$ K
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||( f# f& J; U) H/ Q& h. O9 \0 N. f
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    - y7 ^0 m0 x% ^6 P$ x! I6 n
  72.         {
    - ?# C7 D: g7 E/ \8 g) m# j
  73.                         num_geoms=1;
    ) y3 M& p) Q7 x/ k( D3 w
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);* T, M: A) k8 S7 K
  75.                          if(error!=0)
    ( h$ S6 h# a2 {  Y' a
  76.                                  AfxMessageBox("划分网格不成功");
    6 D" V/ U$ v3 m* A- O5 s! k" ^
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");/ z2 R6 A. r: |1 s& F0 ^
  78.                 }$ B' c% i9 e8 C) K
  79.                           F4 Z9 }7 R- Z. a) X
  80.             
    & K5 t1 Z( l" a) k0 s1 O% `
  81.                                 - e9 K7 e+ @% L
  82.         }        1 W4 H  u3 l* R" }$ n, {+ J6 M
  83.         //UF_free(geoms_p);
    7 s0 z7 w5 M6 Z$ p4 S& b0 B7 E
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);7 f6 K; p  `% \$ @/ d
  85.    ShowWindow(SW_NORMAL);
    " z1 O+ F/ Y% e! j  Z& i
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,& s) s" R+ v+ }5 i  N8 [# z
特此前来求教错在哪里了
* H: n- P" Y2 _; ^% i) ~& U
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

积分
82265
QQ
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试
5 G7 Y# e0 `6 v3 `  s: P6 K0 y+ y9 [9 ~# m) S. g) p/ u
直接在NX 里面 划分网格看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

1

主题

2

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2014-5-21 23:33:18 | 显示全部楼层
admin 发表于 2014-5-16 12:23; X. `; h, J4 @
你先不用 MFC 的方式试试 3 ]9 V$ w$ `1 V' v1 n

) W& q* o5 l  ~; q, S5 M) B8 y直接在NX 里面 划分网格看看
* L5 Q; D! j# H: L, ?5 C9 Y
直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部