PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() 7 L) y9 w. z3 I' l( S
  2. {6 W1 G+ g' Z( t, N7 J& R; ~$ `$ z5 C6 j
  3.         // TODO: Add your control notification handler code here
    ( z/ f6 `2 Z. s9 N, @: Q; w
  4.         char cue[] = "please select a face of body";, m7 q8 R0 o) p7 b
  5.     char title[] = "select face";
      \5 X& P5 g9 n% J2 b- C
  6.     int response1;
      o$ W" V# F8 j# X2 e' X
  7.     tag_t  view,temp,temp1,point;& Q- P: Y$ F% k, Y
  8.     double cursor[3],matrix[9];; n' J& K' U3 x1 o
  9.         int ret=0;, A$ ?$ s; c( N; N* m

  10. + u: [$ a' G% i
  11.         //UF_UI_specify_screen_position()函数的初始化参数3 F; V  n% a! J
  12.         char message[] ="please specify a position";
    9 {4 a! k7 I1 D0 ^' d) f
  13.         int response2;! U$ B. y) `/ c1 C% I5 }
  14.         ' r$ e' t! W; v  U
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;; Y* R3 c, K' F+ p- p+ B0 S
  16.         int num_geoms;//几何体数量
    & G6 l: {% T, v1 f% K5 p
  17.         tag_t geoms_p;//几何体  v9 W+ F9 P  C; d
  18.         tag_t mesh_tag=NULL_TAG;+ {2 r5 y7 P! ?  f. g
  19.         tag_t scenario=NULL_TAG;
    5 N+ A# t' k8 u. j7 [4 z
  20.         tag_t display_part_tag;
    8 l: }5 g3 c) z3 [& _: R& g
  21.         tag_t proto;
    + t( B' n  S5 E! i7 J
  22.         //最小化当前对话框
    / t, B3 p) a- v$ O" T
  23.         ShowWindow(SW_HIDE);& q  A$ j4 \) Y  e$ N
  24.         int num_bodys=1;
    8 i! I' [: X4 m# P6 u  g3 J$ g1 w$ `
  25.         tag_t body_tags=NULL_TAG;
    ! B$ N  D  W( i8 V  |# }
  26.         int num_desc_lines=1;% l2 O! k$ f! @# Y
  27.         const char *description="";
    ' w' e/ q0 P$ ?( X$ f% E
  28.         tag_t new_fem_tag;
    % ~2 `% |0 Z# E' w
  29.         display_part_tag=UF_PART_ask_display_part();' {* }+ r: \2 {, A& P+ t+ H- \+ |; P
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();8 N; e; a( Q+ o4 n/ _
  31. 8 C+ e2 W5 `  @
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    ' ^7 F5 M, v) M% b
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    . t) B4 U% U& C# D5 l
  34.          mesh_parms.element_size=1.0;: s# H5 d8 j' o
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ 1 B* g% v- n, g. b% a
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    . }( E/ V: y# |# N# ^" L) C
  37.          mesh_parms.format_mesh=true;
      p! {1 n8 {1 H; O
  38.          mesh_parms.attempt_quad_mapping=true;( c9 K% @/ E) _/ I% \7 k( M
  39.          mesh_parms.split_poor_quads=true;4 w& Q  D+ w3 t! d
  40.          mesh_parms.maximum_quad_warp=5;% P1 ~* z/ ]( a: E
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    + F! C- j) l4 S% l! }
  42.          mesh_parms.maximum_midnode_jacobian=5;
    ) _+ }+ r1 n( D( G! p& f6 K9 {
  43.          mesh_parms.minimum_face_angle=20;
    " h" G$ b1 Z" F) E) x* Q- k1 r( D) ]8 K
  44.          mesh_parms.surf_mesh_size_variation=50;% d; q) g4 y/ a
  45.          num_geoms=1;4 _9 X4 ^9 j( X- P& [8 ^' k% G
  46.          geoms_p=NULL_TAG;
    ( o7 A# _+ Q' h; A0 f( s0 D4 Q: [
  47. ; @* P, t( v9 c; u$ S

  48. 4 h5 I" m( W  _+ x% {: m

  49. / H+ x9 R% l) b5 J
  50. & B- `8 S* y- n7 C
  51.         //把控制权交给UG
    % L7 _) X, q/ d1 _1 j: }
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    ! x$ B  e( B! a. F
  53.         if (ret != UF_UI_LOCK_SET)# |9 G4 c- w6 j
  54.     {
    ; w/ Q+ p6 S% w! l5 \- f( r% F
  55.         UF_UI_set_status("Could not lock Unigraphics");
    " `3 e; E4 l# T" j0 @' Z) q7 h
  56.         return;
      }1 e; |$ U9 o, n8 q
  57.     }
    # c5 \, W& Z0 A2 V0 X
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    5 ~9 S3 t4 S* g. L# b6 ~! k
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    % V: B  V- s- J0 B& o
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    ! G8 v! r% F; x9 ^
  61.         ! j  d# f/ U( v& f9 U# j
  62.     4 e$ d( i4 ]; h1 E
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);' `6 @* M1 V# q" q4 ?9 X
  64. 2 w0 W+ G* i+ h
  65. int count=0;
    8 z2 Y& V% `+ f3 D

  66. " G3 G, B* M/ Q! k: Q
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        2 g6 U1 _  J, A' M/ G7 D
  68.     if(!ret)
    * R8 R6 V3 T# v3 e$ W% m
  69.     {
    ( }% m; M" [8 p3 r
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    # ^+ M2 M! L" N9 b* E9 r: D" M
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)6 q0 ?5 m* T+ Y$ A5 @1 p$ U
  72.         {- k* H  p9 j1 n8 g1 @/ R; S9 ~; I9 H( T
  73.                         num_geoms=1;
    , L; u# ?4 b" _: C2 z
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);- u# U0 D3 `' \, B. P
  75.                          if(error!=0)
    $ A! G) n" S& [4 A
  76.                                  AfxMessageBox("划分网格不成功");
    / A! i. o9 l' s+ T
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    8 u2 q; C# B( A/ x3 z# U% V9 w
  78.                 }$ o1 o+ N# N+ ~1 A, x" D
  79.                        
    6 z: S1 A: @2 t8 ~2 ^) G! I
  80.             
      d0 @5 J. j9 b8 g  q
  81.                                
    & R; _5 Y4 f% W! Y4 J  R
  82.         }       
    ' l  [8 w8 x1 R0 ?
  83.         //UF_free(geoms_p);/ A6 v, H+ f; B/ f1 m1 S- K: G7 J
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);$ p7 C; u0 q' v! u" n
  85.    ShowWindow(SW_NORMAL);
    8 A7 q) C+ h& @5 }
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
9 n  O% a) q' W  i4 o5 ^特此前来求教错在哪里了& q1 i7 W3 E5 ~! W7 a; [
上海点团信息科技有限公司,承接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 的方式试试 6 @6 A  d0 G; f2 ~7 v% \, @
. \, l  \6 T! ~% H) K2 H- T7 f) J3 P
直接在NX 里面 划分网格看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

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

KKuN 板凳

2014-5-21 23:33:18

admin 发表于 2014-5-16 12:23
* Q& s8 g4 d4 H* n0 C你先不用 MFC 的方式试试 3 C5 i* H# d! i, i/ A! o7 `- Z
; y) m4 z7 y3 g: x! u
直接在NX 里面 划分网格看看
% ~- ]9 S9 p: Z- f# t: R; M
直接用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二次开发专题模块培训报名开始啦

    我知道了