PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

1

主题

2

回帖

19

积分

新手上路

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

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

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

x
  1. void CMainDlg::OnMesh()
    , C( U% J" T; {* b
  2. {
    . n+ T7 Y) W4 ]$ s0 y. o# v# ]: \
  3.         // TODO: Add your control notification handler code here
    ) i% z& I2 I% a; ^0 P3 c
  4.         char cue[] = "please select a face of body";
    % }5 X# _; H9 b/ l
  5.     char title[] = "select face";
    0 S2 j6 e& {# R( w( E! ^$ @
  6.     int response1;- c' P! @. k  q$ U# a& l
  7.     tag_t  view,temp,temp1,point;
    7 W' S* |9 }, o6 a. _% e3 G
  8.     double cursor[3],matrix[9];
    6 p! k2 E$ E# B# V8 J8 e2 [
  9.         int ret=0;$ Q6 p& [9 @0 k3 B( w

  10. 8 ^3 `* j% S7 s4 [; Q% b2 F* t% H
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    # w5 Z( J! |4 l2 {# \1 z
  12.         char message[] ="please specify a position";
    / ], x/ m2 m  B# m+ N
  13.         int response2;
    . R8 u/ h- J( j3 N9 _
  14.         1 H9 e! C% [7 \2 k' ^+ i, i
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    7 w& ]1 j9 u! K2 h. F/ x4 O( M, N8 }
  16.         int num_geoms;//几何体数量
    & L2 f  ]2 ]$ j7 @) g- u4 h
  17.         tag_t geoms_p;//几何体2 m! }4 S$ Q! r( `
  18.         tag_t mesh_tag=NULL_TAG;/ Z: k, ~# c5 O
  19.         tag_t scenario=NULL_TAG;5 Z) H7 O) I9 C/ }8 ^0 {
  20.         tag_t display_part_tag;4 S1 ~) b, _+ A1 L( F
  21.         tag_t proto;. c3 g8 ]  a4 a% s( E( m( ^
  22.         //最小化当前对话框; z) _; m' v, C( J7 {0 ~7 o
  23.         ShowWindow(SW_HIDE);! F) A5 }* Q7 {* j6 M
  24.         int num_bodys=1;
    6 H; H+ ~& A/ j# m  c3 D8 Z
  25.         tag_t body_tags=NULL_TAG;4 A+ R7 K) ?3 V: b+ I% d
  26.         int num_desc_lines=1;
    + F6 A- S" x9 [- K2 W4 O2 D4 \
  27.         const char *description="";5 _. P; _7 n7 z  k) m
  28.         tag_t new_fem_tag;5 k' z- t4 r; Z9 c3 w
  29.         display_part_tag=UF_PART_ask_display_part();6 E  ~1 d! r4 n9 d0 Z
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();2 z  x5 Q8 F/ a% F' \, q2 w

  31. 9 R  N$ A* l8 Y1 A
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    ( Q% v" m% h7 j- ^; h
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;+ |4 [6 P" v: }
  34.          mesh_parms.element_size=1.0;
    9 v! @& K6 _: I5 O8 s0 f2 z% f
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    4 h9 \6 a* g! G+ x5 _: q
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    / R; s: J. f8 |$ c
  37.          mesh_parms.format_mesh=true;
    3 v* W: i: W) {$ q7 c% r- g
  38.          mesh_parms.attempt_quad_mapping=true;% a# x( F; l6 P/ f) v, H4 `
  39.          mesh_parms.split_poor_quads=true;
    * n( v6 t4 S, A# N
  40.          mesh_parms.maximum_quad_warp=5;
    1 m, g1 \* q* d. p. P1 _- p
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    # i& v" T1 l# \+ B& h) w5 M3 M
  42.          mesh_parms.maximum_midnode_jacobian=5;7 L- h& w' v; c, P. @
  43.          mesh_parms.minimum_face_angle=20;
    - R. Z5 O) O0 q- g2 n+ ?5 x: y4 ]2 X
  44.          mesh_parms.surf_mesh_size_variation=50;
    0 i. M/ F( ?4 p6 G1 p+ o
  45.          num_geoms=1;8 P. G) w: N  @( A
  46.          geoms_p=NULL_TAG;3 Q" k# F7 T+ C. O3 ], r" `6 e# z; Y9 \8 |
  47. : _+ ^5 A. @. e$ C8 v. {7 U9 R! Q

  48. 1 t* S; H1 l0 u& G3 |( T2 x

  49. + ?1 K! V' h: q) n

  50. # u3 q+ `& B( r& W5 X6 n
  51.         //把控制权交给UG
    ; y. a- p; w, ~9 p  \
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);* M  S2 I0 t+ q- J
  53.         if (ret != UF_UI_LOCK_SET)! t* B0 ~/ g8 ?. d+ V5 M
  54.     {- X* h4 ]" A0 T: A! J+ _3 I5 _* t0 d( V
  55.         UF_UI_set_status("Could not lock Unigraphics");
    5 g- l0 v" x; M  F! {6 i1 a
  56.         return;3 \  j5 ?  L- q/ z6 s
  57.     }7 i& X$ s' l  Q8 Y
  58.         ret = UF_UI_select_with_single_dialog(cue,title,- v' N2 V* q  m; l$ d8 [8 H
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    * `  w- y/ @5 ~; |7 ~4 P, U
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    . w; c3 N* O+ Y
  61.        
    , e: t# y" p6 h& N
  62.       m! `1 s- x# a- X3 y' l
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    : T# r; y' [6 c5 C! p

  64. ; C0 q3 f  Z& ]. `) p' F
  65. int count=0;
    ! T' X; H+ ?" K& R5 P$ o: Z' Z

  66. ; w) o' H5 b" \$ i9 G! s4 C
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    7 n% R4 e4 B% ~6 D, s$ q
  68.     if(!ret)
    # A' p+ {6 k6 V+ g* ?
  69.     {2 ]' t  s; A# O$ B# P
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    ) ?2 i" S! k- B4 d0 j) n, q
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    / i3 f+ {* @" v2 e
  72.         {
    4 d1 d+ H" K6 o* H2 L) W" j, X* c
  73.                         num_geoms=1;
    & Q, ^, B$ Y* i4 z' c, Q7 ]
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    ' U% G8 I  H  n. o+ h& v! X/ Z
  75.                          if(error!=0); D) {$ c& j; \2 X, j
  76.                                  AfxMessageBox("划分网格不成功");
    0 G0 w: \. z( d
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");" K% E6 I/ `& L9 |3 D
  78.                 }6 n9 ?7 P4 g. k. J
  79.                        
    1 w, |+ |) x6 Y/ [7 p: U: c
  80.             
    . Y8 F- @, X7 U2 ?9 B
  81.                                 3 I8 d) Q. f4 ^9 i
  82.         }       
    ; S' I7 B/ t* R
  83.         //UF_free(geoms_p);
    : y. R) j; K& @% D& W% n. X$ x8 D
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
      n5 ~  b, G1 ]/ e
  85.    ShowWindow(SW_NORMAL);" r* V5 {; X7 y5 A7 M) g* f. M, S
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,4 K( n6 C/ I4 R2 j9 a- i# f
特此前来求教错在哪里了/ t# s: g4 j- `( e' a+ r
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复2

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82168
QQ
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试 ; s4 r0 m; L- q  _9 e' t2 M& o& D! O

, I' Y0 O$ d' i$ B" Z直接在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
+ p1 ~7 |, C- M2 h* s2 m7 h. q你先不用 MFC 的方式试试 / o) L6 r; H; R- l! F8 T: o
' [% n1 r- [# ~: `
直接在NX 里面 划分网格看看
  O* N8 L4 @8 N! C/ a. s1 ]# J7 D
直接用nx划2d网格还是没问题的。我程序现在就差这一步就基本能全自动了,现在还需要手动划网格
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了