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 5943 2

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() ; n1 r  {5 A4 |1 B" U6 b
  2. {' S& `& R5 _$ b& q# u6 Y7 w
  3.         // TODO: Add your control notification handler code here
    ' r/ f1 a1 d/ Y$ u) t! p
  4.         char cue[] = "please select a face of body";( Z. t( U3 K' W+ g
  5.     char title[] = "select face";
    $ U1 j/ b: t2 k1 W. i5 \( T
  6.     int response1;! G0 C& C: T) Y. \7 L6 W6 H
  7.     tag_t  view,temp,temp1,point;% [( G  h1 q& {2 w
  8.     double cursor[3],matrix[9];8 W( J) G! _" Y8 c3 H  k7 p
  9.         int ret=0;
    6 s" U2 t. [/ v& ~5 w6 d

  10. - _% O  T3 q7 s; F. r
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    7 q# I, Y# x- a  W' O
  12.         char message[] ="please specify a position"; 2 k! N- T" N" J1 z, N
  13.         int response2;
    5 w, m' Y+ k! Q" f# Q
  14.        
    & |! b# C6 `7 f% X) ^" n
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    6 G9 S- |* E5 q, z5 F/ n) q
  16.         int num_geoms;//几何体数量' S# A; Z2 e* E& K
  17.         tag_t geoms_p;//几何体6 W' W* ^: k' n6 D) \6 {
  18.         tag_t mesh_tag=NULL_TAG;
    , }3 R5 _+ Q' Y
  19.         tag_t scenario=NULL_TAG;
    3 R. e  n( p/ {, z# Z2 @
  20.         tag_t display_part_tag;
    0 u. w$ O" M6 z- D* v
  21.         tag_t proto;
    % U. Y4 Z# k) H5 f" L* @9 z, e$ N
  22.         //最小化当前对话框
    - Y* a" y: R5 j" e1 t
  23.         ShowWindow(SW_HIDE);
    8 t5 d5 n  t1 h9 `, _9 x; b1 a
  24.         int num_bodys=1;- b7 `# x; X0 I8 f  ^5 `, j; ?
  25.         tag_t body_tags=NULL_TAG;
    " i6 J9 N/ n1 B
  26.         int num_desc_lines=1;0 e5 G% `- ^  Q$ F7 @! M
  27.         const char *description="";
    9 O' P" g5 e3 l: |3 _3 V2 Z
  28.         tag_t new_fem_tag;; \0 e8 ?( W* L# I3 F' F0 k
  29.         display_part_tag=UF_PART_ask_display_part();" [8 l* w4 |5 R6 n4 h; w' m
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();4 {  o" G; I1 \
  31. , n/ R; j' ]8 [0 N
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    / f0 \- M$ F! s0 H5 T& E/ G4 J0 \
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;  X0 c- ~5 D8 }% Y, Z+ c) W( ]2 `
  34.          mesh_parms.element_size=1.0;7 ~$ z* T& q: E; R. g9 @
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    6 k3 v) P1 H' U3 @0 X' [
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    9 y" g+ i$ E+ [& F7 `5 Y. W+ U7 O
  37.          mesh_parms.format_mesh=true;
    ) c. ~3 W/ p1 g
  38.          mesh_parms.attempt_quad_mapping=true;5 G% R# Z+ r5 K+ D" H
  39.          mesh_parms.split_poor_quads=true;5 M( G: Y$ a: S
  40.          mesh_parms.maximum_quad_warp=5;
    1 ^) }9 m7 D& F- Z8 A$ N+ c* n8 {1 H
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//% `% q  @0 o+ J7 \" w, P
  42.          mesh_parms.maximum_midnode_jacobian=5;% k$ c. y9 E# n; Z& n2 X0 z
  43.          mesh_parms.minimum_face_angle=20;; l+ ~* \( @! T+ _! `7 r* }+ t
  44.          mesh_parms.surf_mesh_size_variation=50;6 @6 q- O" w: W
  45.          num_geoms=1;+ r' C) i  s0 z
  46.          geoms_p=NULL_TAG;0 I' J7 b$ M2 |: X" x
  47. 4 \! w( l8 P7 [' s# R4 }) P
  48. " O+ c2 R! [/ j2 V
  49. ; Y2 a7 S) U. I

  50. ' N) I! H& x4 i0 y- n% W
  51.         //把控制权交给UG
    4 @5 s+ X' I( v( J: Y2 N  z
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
    ) f2 }3 x: g, S* i5 U7 J. {- K
  53.         if (ret != UF_UI_LOCK_SET)& [+ I% P, F* v5 F3 o. n
  54.     {
    7 \' ~: w* t  B* ^
  55.         UF_UI_set_status("Could not lock Unigraphics");: T3 G2 k/ I  H9 @
  56.         return;
    " R& |- p" g; H. ?4 M8 b# _
  57.     }
    9 ~. a- s0 f8 ^7 `5 T
  58.         ret = UF_UI_select_with_single_dialog(cue,title,8 a0 S) g+ H* P& m# {/ L/ i
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,% H( ~- E- q; U( F$ l( ]
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    : y. ?. ]$ u( M& d/ i
  61.        
    8 |& O0 k' Y- l
  62.    
    " `1 A" W; z; E  H
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);' f) R6 L' C8 I: x" d1 F9 D3 g
  64. & B2 [  Q. a* h% C& v! b
  65. int count=0;
    5 V9 `7 |) e! H. Z( F
  66. # E, A" _. w5 T6 j
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    ' e; n' E& H4 W
  68.     if(!ret): G, r: H7 d6 C& v+ r
  69.     {9 q% P& q6 E4 y5 s
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    3 b+ b9 y/ m0 ~
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    , e8 C' V+ x& u( ^" k( d- w
  72.         {6 A1 N' }6 l( N! S; t6 W
  73.                         num_geoms=1;, z8 U) O" N+ G0 e: D/ [7 J) p8 F
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    6 a4 _( t8 k1 G. }3 }
  75.                          if(error!=0)
    7 {% J$ x3 @" n4 k+ v# ?* \7 o
  76.                                  AfxMessageBox("划分网格不成功");) e0 @* X) T+ f; q4 {
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    / ^: w8 I4 B4 N& p3 g; _2 B
  78.                 }0 w* V) J7 l/ D1 a/ V% p. M* X
  79.                         : ?+ r! _, [* Q1 F" V7 J
  80.              5 B! N# r2 G/ N6 M
  81.                                 / R# Y$ d% l" Y( ^; j4 O
  82.         }        ) l4 y' a& }3 u# f3 G
  83.         //UF_free(geoms_p);1 t+ |- Z+ r  J4 q# z: \0 \* V
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);( F& |9 m  h- o2 H% [8 e* `
  85.    ShowWindow(SW_NORMAL);- Z( a9 k% ]7 C7 `
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
  r( D0 D2 w" i4 v! {; b. g/ ~. u特此前来求教错在哪里了
$ k9 L6 f$ a% E) T2 d4 h! g
上海点团信息科技有限公司,承接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 的方式试试 8 i6 H& d/ |5 ^1 |& g, f' V
1 M5 s, a$ e/ V4 `# V
直接在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:239 @0 r0 I1 ]5 r! r' w8 _
你先不用 MFC 的方式试试 : }) s- }' u+ @- O% m
1 Y- t2 b9 a6 X: b
直接在NX 里面 划分网格看看
  Q- t: z7 c8 O& P$ X3 U; T7 c
直接用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二次开发专题模块培训报名开始啦

    我知道了