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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh()
    ! w, W: `. A; X, K# @! N/ e
  2. {
    ( l1 H! j8 {  R
  3.         // TODO: Add your control notification handler code here' L% K# Y+ Q& g1 T
  4.         char cue[] = "please select a face of body";
    4 A2 ?% y! L$ P* [4 ^% [* X- @
  5.     char title[] = "select face";
      d6 F* y$ Q: T/ R! N
  6.     int response1;
    ) j8 S( O/ Z6 T
  7.     tag_t  view,temp,temp1,point;( G% H# ?8 @3 m+ X- q' V" C+ H
  8.     double cursor[3],matrix[9];
    4 f8 ]' d' L2 B; r( M( I8 O+ R3 B
  9.         int ret=0;
    0 n3 s& ^: v! y* u7 a" X6 _$ n$ A

  10. 0 Q/ l( ]  s& }) f: `& T
  11.         //UF_UI_specify_screen_position()函数的初始化参数& r( Y' R+ @/ e; u3 c! V  T. E
  12.         char message[] ="please specify a position";
    ) C" e4 M0 @- g0 e! _
  13.         int response2;3 `  Z& ~* r4 x4 F
  14.        
    8 N5 n4 w- g2 G8 V6 V" v
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    $ P$ v. g# q( f2 T. w
  16.         int num_geoms;//几何体数量& n4 Q/ R6 K5 T
  17.         tag_t geoms_p;//几何体) X- C% X& m1 D
  18.         tag_t mesh_tag=NULL_TAG;
    & T4 t* ]6 Z2 g/ \
  19.         tag_t scenario=NULL_TAG;
    , D5 v( h! D. w" s" q
  20.         tag_t display_part_tag;
    2 g' O3 A6 n" D5 G( y- G9 j
  21.         tag_t proto;
    6 h' |  Y. d" C, q6 Y" z- W; t
  22.         //最小化当前对话框( |7 D$ T7 j4 {
  23.         ShowWindow(SW_HIDE);2 s; i" w. V" m& ?* J$ D
  24.         int num_bodys=1;- \; E( L. j. v& q! R5 |- M
  25.         tag_t body_tags=NULL_TAG;4 h# E+ v0 A) N3 J: ?  q$ @1 ~
  26.         int num_desc_lines=1;5 z5 ~( a( i! d2 g
  27.         const char *description="";
    ! [  G0 w& J- V4 T) o+ A
  28.         tag_t new_fem_tag;. K$ k' |. B# E& ~
  29.         display_part_tag=UF_PART_ask_display_part();
    0 `' e$ w, Z5 R. Z0 N
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    , v% ^6 ^# u/ n4 K2 @/ `0 F

  31. , F9 P& |: A  L4 _
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;! n  i0 G9 m1 c  K+ J# A
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;0 u" L; `7 E5 U/ w
  34.          mesh_parms.element_size=1.0;/ w, \' _. K2 _4 v# \1 |; ~+ W$ t
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    0 c3 p. a* m, l
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    - I# |, k# V) O1 z; ]
  37.          mesh_parms.format_mesh=true;
    . V  {$ Z1 X2 B4 T) f" c6 M
  38.          mesh_parms.attempt_quad_mapping=true;
    9 ]6 v1 E) b+ U$ r# ?2 F$ }( n: R% [% |" ~
  39.          mesh_parms.split_poor_quads=true;% E3 v( I, Y  m$ K: Y7 j0 x
  40.          mesh_parms.maximum_quad_warp=5;
    5 s/ r0 g# n4 o( Q0 j5 l3 D( r
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    0 ]: W$ \% x0 L3 E* J
  42.          mesh_parms.maximum_midnode_jacobian=5;( U3 F- M4 t' i: B; F8 w
  43.          mesh_parms.minimum_face_angle=20;6 n  v5 F' y( y2 c+ |9 |, V
  44.          mesh_parms.surf_mesh_size_variation=50;
    5 |2 j3 R- t7 V0 p& I9 S" u, F
  45.          num_geoms=1;
    : `6 @& q( n  N/ |7 \% g
  46.          geoms_p=NULL_TAG;
    0 ]  L4 Y! K4 v* m

  47. ! c6 g  `4 z$ v- v
  48. ) u2 y1 k' M0 d
  49. # `8 v* ?5 |0 o' K* l7 z2 S- \
  50. # Z7 S; C0 e6 `: c4 z+ z
  51.         //把控制权交给UG
    0 B- q, ?+ s; k7 B4 c
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);( }6 Q& i) }+ C. h
  53.         if (ret != UF_UI_LOCK_SET)
    8 K$ ]; |% [  [
  54.     {; G: u8 N/ z6 q( [! w. w/ m
  55.         UF_UI_set_status("Could not lock Unigraphics");5 ]& t& o- D5 Y' f9 }& A
  56.         return;1 C+ j/ a8 f: ~6 ~6 u
  57.     }
    3 \) b: E- \6 Q& W! c. F: e
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    5 |- t3 U: i: b% ?
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,/ E( O% U( K/ S- C  k8 e$ k+ h6 G
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框& H, }5 o* p) a) i
  61.        
    - O6 O( C5 Q8 w: u8 q3 E% G
  62.     % a' i. T0 c; j
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    - q2 h. I9 P9 K/ G

  64. ; M& H. q, _/ f
  65. int count=0;. ]% I$ V- z3 Y: ]% _' N3 j

  66. 6 m& p$ D% x. I& y% n8 @) u
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        - l) e2 h8 I& s- Z& ?6 q( u
  68.     if(!ret)( n" {* T4 \& j
  69.     {
    ) [0 ]+ K6 f2 N7 V
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    * I% I; O& |# h2 k: M- ]0 j
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)4 r+ T  V& ?8 [' W5 d
  72.         {8 F% ]$ Z. @; B/ e9 u
  73.                         num_geoms=1;
    : x+ s. s  q% y* y) D
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    4 @1 D' p% u4 {9 t# V( f6 V
  75.                          if(error!=0)
    % Q- L& P- S; p7 I5 J
  76.                                  AfxMessageBox("划分网格不成功");
    - k) Y1 l5 ?3 d( G/ z! `. \- @
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");* C; g( k" q+ ?! h
  78.                 }! C6 F. q* O7 I: h
  79.                         2 @/ _0 b2 c5 t! U% F* S, d$ N8 s. s: z
  80.              1 d' B; ]$ q. A3 Y" v# L( q
  81.                                
    ( H; l. x6 }% m9 x- q
  82.         }       
    & s3 D" O* P; C3 |6 ~9 [
  83.         //UF_free(geoms_p);5 p" `  _# r- d6 c0 `4 F6 p* g( d( e
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);6 ~% D  |2 [$ t" T+ ^3 E( `( Z+ H
  85.    ShowWindow(SW_NORMAL);9 |' B- z0 }+ {7 ?
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,# k+ M0 q7 D2 t+ ]' W
特此前来求教错在哪里了! p  l' R8 l! }) ?9 i
上海点团信息科技有限公司,承接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 的方式试试 7 @$ F& M! E; V0 e
+ K, r$ w, W+ l8 r, E
直接在NX 里面 划分网格看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

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

KKuN 板凳

2014-5-21 23:33:18

admin 发表于 2014-5-16 12:232 Z6 q) \: T6 m( Z9 o
你先不用 MFC 的方式试试
" u( t, g$ I2 {( }. [  Q  @! ?! m1 ?, N, d
直接在NX 里面 划分网格看看

8 W! d1 {" f* y# s9 O$ y3 ?直接用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二次开发专题模块培训报名开始啦

    我知道了