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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() " n; c& t9 F0 I. N; D  V
  2. {2 w6 F4 O/ a# Z
  3.         // TODO: Add your control notification handler code here
    0 W8 N$ q6 N: t8 ~6 L' S2 {: G* z
  4.         char cue[] = "please select a face of body";
    ( ^, P; }* u+ X1 |0 I& s7 m2 E( P
  5.     char title[] = "select face";, ^3 T8 g2 R! K! G
  6.     int response1;
    4 @, }3 a7 X# A* p" N
  7.     tag_t  view,temp,temp1,point;" s' T7 y+ k" G3 M  F. d- C
  8.     double cursor[3],matrix[9];2 Y) J6 V1 p+ n) @9 ^# \5 t: I! c
  9.         int ret=0;, c/ A6 k$ l- H- c% Q
  10. 5 y9 M. Y2 D! @
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    8 F7 _% F0 p' j* \, ?% b3 S3 S2 w/ C$ Z
  12.         char message[] ="please specify a position";
    ( C* {5 V) o  q
  13.         int response2;
    . K9 b, |7 z5 R1 d0 h* n
  14.        
    2 ]8 A3 ^: S1 a! i7 S
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    2 f) l+ X9 z6 T/ k8 v# l
  16.         int num_geoms;//几何体数量
    ' I2 O% p8 {9 F' p$ X1 X
  17.         tag_t geoms_p;//几何体
    / w( O. @7 `, D, z- M' G# Q9 k& T' Q8 l
  18.         tag_t mesh_tag=NULL_TAG;: ^, B- M7 ~. w; q
  19.         tag_t scenario=NULL_TAG;
      P* n. }! q) E, d
  20.         tag_t display_part_tag;
    1 b2 l  Q2 G& @6 Y2 u/ j% N
  21.         tag_t proto;
    % P) @% s! w- e7 N
  22.         //最小化当前对话框' i* N: z- m& {2 }$ Y$ `: h
  23.         ShowWindow(SW_HIDE);9 U& z3 w& X  Q( @( h, u+ y
  24.         int num_bodys=1;& D$ w  l: P5 t  m2 V
  25.         tag_t body_tags=NULL_TAG;2 }) m# _, Q; Y" q  f: f$ o: g, t; }
  26.         int num_desc_lines=1;( p( G# P; }* ~+ R3 A+ E
  27.         const char *description="";  ^6 _4 J: y1 i' U! `. S) P7 b
  28.         tag_t new_fem_tag;
    , X5 q4 q. t. u7 ?- [& U, V4 X
  29.         display_part_tag=UF_PART_ask_display_part();
    , o' Y$ Q4 l/ @* L& o
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    2 F: S% N4 c" ]/ ^3 }
  31. 4 }, X0 u- [/ Q( ^% R+ f
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    ! O. r; q8 W* j0 x6 V# i
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;' P+ q8 F. O; k
  34.          mesh_parms.element_size=1.0;4 V4 i  |% O. M8 Q" k3 g" }" s
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ + p! i  r4 t2 b6 r  P+ d: Q  R* w
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    ( ]; V, \! m0 c+ Z. Q4 m- V' a" w0 k
  37.          mesh_parms.format_mesh=true;2 |" j% P" k2 g7 J
  38.          mesh_parms.attempt_quad_mapping=true;
    & s2 b) E$ I- s
  39.          mesh_parms.split_poor_quads=true;
    ; {1 ?9 O+ ^# ]& y
  40.          mesh_parms.maximum_quad_warp=5;/ z0 h, P+ p' z
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    3 k4 j; ?! f2 D2 B3 q. W
  42.          mesh_parms.maximum_midnode_jacobian=5;5 |- I( g7 u& I1 F/ w
  43.          mesh_parms.minimum_face_angle=20;
    ( a. I1 u! e4 P( X
  44.          mesh_parms.surf_mesh_size_variation=50;
    0 g* T5 A, H9 d+ r% I" `
  45.          num_geoms=1;
    $ c# \% J5 A" i
  46.          geoms_p=NULL_TAG;! C1 h4 }! z  F9 J7 d% C7 `

  47. % B, ?% M5 z! z& S4 R7 Y
  48. 4 a6 J# L7 N9 T. y% r

  49. - Q! V, {8 }% O+ U1 t9 {2 P: S
  50. / N( o  m4 @: a
  51.         //把控制权交给UG
    6 ]8 }0 I4 v, }$ \
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);6 H% Y: t, d; ^  e* j
  53.         if (ret != UF_UI_LOCK_SET)2 }% W9 A: ?/ L- @- s
  54.     {
    $ p0 {4 c7 T1 e9 Q
  55.         UF_UI_set_status("Could not lock Unigraphics");
    1 P  l  @3 L9 t2 \( F$ C
  56.         return;
    ! e: T8 D; w! S# ?' z2 H
  57.     }4 o/ s: V7 ^! @  e3 h' x
  58.         ret = UF_UI_select_with_single_dialog(cue,title,$ p* k+ ~/ o5 b0 j
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    % B' W& z5 b1 |/ a
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    3 [' ^9 j0 E, R" T: O4 i/ u' c& e
  61.        
    + n$ D$ O6 }/ {; ~* i
  62.     * K- B/ d/ J$ X! A
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    / O8 v- {: \6 j4 b9 D
  64. ( D* F+ i- }0 x
  65. int count=0;  x7 ]5 a* `# q1 `
  66. & i8 R, F5 b5 T2 g5 v
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    1 K8 i/ \% \! r
  68.     if(!ret)& H. t: O% n& G
  69.     {
    7 N) W# Q$ f' j2 u' Z  X( [
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    + Y9 [$ Z5 l$ @
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    * D/ c# m9 U2 T$ k
  72.         {. c  P! K/ p4 m6 b* P6 q
  73.                         num_geoms=1;
    " T+ v  g# Q; T) x# d# a
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);4 b  z9 F8 A" A3 V
  75.                          if(error!=0)8 v' ?5 K5 ^4 E4 a8 k& M2 N* g
  76.                                  AfxMessageBox("划分网格不成功");$ O0 I6 u) p, Z7 W% d% M
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    ( ^0 [( d. P  @- ]" \- J! E, U& b
  78.                 }9 Y0 k0 H4 v, @: @& S% ^0 i( A
  79.                         % i2 [6 m! e, Y  X; v) \: C
  80.             
    ; j0 z6 r0 }" W) D8 t
  81.                                 2 E9 N( U' e6 C
  82.         }       
    9 w1 }/ M; l) l" k5 F
  83.         //UF_free(geoms_p);
    7 S: g' C2 @; W2 P) }9 h! v/ z3 I
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    ) M8 N6 a+ W- X& h4 M5 s% L! g
  85.    ShowWindow(SW_NORMAL);
    3 ~( C2 x% V( x2 l; A1 C  h* E( P
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
4 i: U1 ~1 k; r- u. u8 d" s: W特此前来求教错在哪里了
+ ]' k- p" M9 w' g1 O
上海点团信息科技有限公司,承接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 的方式试试
+ g$ Y3 X% o$ F. L- v( ~+ e; U! |& K- q) {3 m8 y
直接在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:23# O- x: E- B8 ~
你先不用 MFC 的方式试试 4 C% _  `0 W, T, _9 X

+ J6 A" ?2 `5 v" f3 E7 w直接在NX 里面 划分网格看看
8 p' s7 s$ Q2 H: M+ M8 r
直接用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二次开发专题模块培训报名开始啦

    我知道了