查看: 6537|回复: 2

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

 火 [复制链接]

1

主题

2

回帖

19

积分

新手上路

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

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

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

×
  1. void CMainDlg::OnMesh() 3 a4 n9 U0 l" k6 q( d+ S
  2. {
    8 o0 U/ ^8 g8 ?- m5 R3 X8 T
  3.         // TODO: Add your control notification handler code here0 m3 Y' H8 g; n/ B3 s7 L- t) c
  4.         char cue[] = "please select a face of body";
    0 e  J. `' [- z( Y. S8 ^$ p, h
  5.     char title[] = "select face";- F8 V4 n2 O9 p! c  H1 B/ y& w) r
  6.     int response1;
    : B7 E9 G* r$ U
  7.     tag_t  view,temp,temp1,point;
    6 ~5 F! @8 _' C* c% K$ ^0 \- M
  8.     double cursor[3],matrix[9];9 W: ~" i* m& W- Q* \- D
  9.         int ret=0;# z% T1 [& D4 u9 A

  10. & k9 D' x; M& q) I4 A
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    - j% g4 C0 Z( e' i- N
  12.         char message[] ="please specify a position";
    ( \" j5 l3 j6 d
  13.         int response2;
    + r$ u7 W6 ?- F- y) t3 z
  14.        
    + k& g. @# }% W& A2 b2 c7 @% h
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    : J4 g( J0 k1 p$ d9 L$ C( v+ }9 Z, A2 H
  16.         int num_geoms;//几何体数量
    + L; o8 h+ m6 M9 b  R, F
  17.         tag_t geoms_p;//几何体
    2 z# C7 F5 x; y* S1 U8 B
  18.         tag_t mesh_tag=NULL_TAG;
    . @& m2 F. v. U3 K' E$ o% W
  19.         tag_t scenario=NULL_TAG;( P  K) o& v# F! n' C; C. K
  20.         tag_t display_part_tag;
    ' F$ d3 D( V2 y3 q/ H9 V1 V, L
  21.         tag_t proto;8 a+ n4 g, {( x
  22.         //最小化当前对话框1 e# q8 a6 z: Y6 ]3 k7 D' b
  23.         ShowWindow(SW_HIDE);
    8 q# z# Q: X* `! k# D, c
  24.         int num_bodys=1;- n8 v4 x. R+ s7 ^, s9 p- ^; P
  25.         tag_t body_tags=NULL_TAG;: x" u0 j* L, H4 H0 Z
  26.         int num_desc_lines=1;3 n$ V6 p  G- a7 t. V% ^
  27.         const char *description="";
    # a! c+ ^) m% G. h6 f0 c: i8 T
  28.         tag_t new_fem_tag;
    & [  C. c* G7 X* t% `) [, r9 `
  29.         display_part_tag=UF_PART_ask_display_part();
    - O- a% f9 Q0 {4 a! r
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    . ]4 B7 J8 X7 b

  31. ' L9 R: J" t. M5 G; K
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    # m( p/ \9 z  H
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    9 Y6 M# L+ [5 S* R- ^# U: x( n
  34.          mesh_parms.element_size=1.0;
    * o+ p* g8 Z; y, r& |) n
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    9 D* F7 u* W1 \5 _& ?# ^, P
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    " L# x$ w! u! b# V1 |9 M
  37.          mesh_parms.format_mesh=true;) n* o% e" ]  f# ?. A
  38.          mesh_parms.attempt_quad_mapping=true;' R4 z8 w# y5 Z" Z; \2 t8 _3 h% E
  39.          mesh_parms.split_poor_quads=true;$ Q! [8 ^' z" S. B' I
  40.          mesh_parms.maximum_quad_warp=5;
    ; Q* v2 U5 B1 q6 U" @& _
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    : Q/ M. D# h" R9 U
  42.          mesh_parms.maximum_midnode_jacobian=5;
    6 B) a; K# A, \& [
  43.          mesh_parms.minimum_face_angle=20;, d) X8 q- h* P) p
  44.          mesh_parms.surf_mesh_size_variation=50;
    . v% S3 {3 s4 o& H, [( N; ]
  45.          num_geoms=1;/ h/ j& z8 r: H8 {. w1 J# I% M( q
  46.          geoms_p=NULL_TAG;+ C! s+ @6 T8 d2 X* _- Z6 a

  47. : V4 p* ]6 X. A/ O
  48. ( N" a* C; ?0 y

  49.   K& u& C& `" k  d0 ]) U
  50. * q* B& F$ r3 I+ ~8 R* [- V
  51.         //把控制权交给UG
    " Q: R: C5 i* J  W+ }/ ?( k
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    5 O! v! A6 Y; {/ Y/ T8 X% @
  53.         if (ret != UF_UI_LOCK_SET)
    0 J; T, Z; W9 b( T  q* u5 j; s
  54.     {# H% h( e5 W6 t1 F! @
  55.         UF_UI_set_status("Could not lock Unigraphics");
    ' ]" |; E% g0 [
  56.         return;
    8 D2 b. r; z2 J
  57.     }
    9 E' G+ M9 V# U: R- V* ?
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    ! _6 I3 z0 w& \% m: X2 ~
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    2 i; n9 P$ f' m
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    + C" ^+ D& l$ _  e* e6 r
  61.         * e& o+ g/ {2 k: w. F" X8 j
  62.     + J) ?, A4 C( E. v/ }$ s! P
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    $ ?0 W, D) r  V( \: S  m

  64. ; J4 y% Z  A* b4 ]. k! b
  65. int count=0;
    % B& b, T$ `' H# f+ t7 a; K

  66. 1 P3 R0 K! C  @, K' u) k* \
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    * q! t$ N! O! }4 ~; S* d8 \! P( m; k
  68.     if(!ret)
    ' c2 S/ P( [/ n0 I6 U6 T% I/ I! A' x
  69.     {
    1 d$ w4 ]; O) R# t- W1 O: Z
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||' J1 o) J1 @# T$ r, C
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    6 Z0 Q+ F8 e, d3 D) D
  72.         {
      ?8 S- v# z+ l$ E) B5 [
  73.                         num_geoms=1;" a3 f& a; S% u
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    % T& Q5 ?% Q+ y, K) K6 X/ O: Y
  75.                          if(error!=0)- _, i7 G: v" w. F, B
  76.                                  AfxMessageBox("划分网格不成功");
    " d7 L  X& c! W/ I. r
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    * h4 Q' h2 M* v& ^
  78.                 }2 W" m- u9 A) p6 n( h
  79.                        
    ) P, n; K% @5 K/ l! x
  80.             
    * i8 `7 ^- }  `- y5 I/ o" ?
  81.                                 3 Y6 p- A% `8 Q; x3 C9 L4 Q: i
  82.         }       
    6 P4 L. K+ |) Q8 D
  83.         //UF_free(geoms_p);
    - Q; L8 \1 {& W, p; n1 F9 n- i
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    ( ]# z! b+ S# }- U1 h! O* O3 f
  85.    ShowWindow(SW_NORMAL);
    . g, F2 n" Z, G. N+ ~2 n3 n
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
' k. v7 d8 V9 V特此前来求教错在哪里了
: L: M0 ~, ], O! i! n
上海点团信息科技有限公司,承接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 F$ b8 c2 i1 l
4 {$ F0 p7 \  @& R
直接在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" K1 O* ~* j* O* \" y( {( o" F$ `
你先不用 MFC 的方式试试 3 v6 y' S3 N( A# v5 O, {; P

% u1 k$ f# x% E) a直接在NX 里面 划分网格看看

0 Z0 l! z0 Q6 }6 Y9 Q; g直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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