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

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

  [复制链接]

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

1

主题

2

回帖

19

积分

新手上路

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

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

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

x
  1. void CMainDlg::OnMesh() : l7 p0 c+ S+ k. W6 E- [+ G
  2. {
    8 E! a& u) |8 y7 L
  3.         // TODO: Add your control notification handler code here8 Y9 b: b) E, V2 I- J$ E6 J
  4.         char cue[] = "please select a face of body";( G2 x. @  A3 Y% @8 x0 w
  5.     char title[] = "select face";
    $ l1 I5 z" A  A+ J
  6.     int response1;
    6 {' A* A! {: C! O4 G
  7.     tag_t  view,temp,temp1,point;% E1 l, q+ B' g1 d
  8.     double cursor[3],matrix[9];8 ^+ A- y4 G5 ]+ U( y! @
  9.         int ret=0;
    2 D. @" q0 T# G

  10. : e9 D4 E# R) T/ ]
  11.         //UF_UI_specify_screen_position()函数的初始化参数; W8 \; v3 J' K* c
  12.         char message[] ="please specify a position";
    + Y+ y: w6 }3 O
  13.         int response2;
    4 j& z0 h7 {. z2 ~$ T/ [
  14.        
    " r4 V! ^1 D8 |8 N1 _# X9 V7 N1 w' j
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;0 x" K5 L6 e7 H8 o) R; U; O
  16.         int num_geoms;//几何体数量
    8 S/ ]  ?& @! c
  17.         tag_t geoms_p;//几何体
      a7 ]5 e4 L( W2 t1 ?8 ~
  18.         tag_t mesh_tag=NULL_TAG;
    ; e7 ~( O" ?+ A
  19.         tag_t scenario=NULL_TAG;( s+ x2 L: u) V" {( j+ R
  20.         tag_t display_part_tag;1 x/ M3 h6 y' I: a7 I
  21.         tag_t proto;
    & I6 q1 L+ w* J- Q8 a: w
  22.         //最小化当前对话框
    * S9 h, q0 s# u( ^* {9 L3 M
  23.         ShowWindow(SW_HIDE);
    5 E: s  p) @  i. b8 b
  24.         int num_bodys=1;3 [/ X, Z2 U7 e+ n3 f
  25.         tag_t body_tags=NULL_TAG;, J6 k0 U' h3 c0 t9 E3 y
  26.         int num_desc_lines=1;) ~9 b4 a, s0 I( b# D. {
  27.         const char *description="";! m$ a# F6 t  y2 ]* \) l
  28.         tag_t new_fem_tag;9 ^* ]; O$ q& S7 L
  29.         display_part_tag=UF_PART_ask_display_part();0 _6 E5 M" r' b3 T" M) q
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    ) Z- C( r2 B- T5 \

  31. # {$ h) \! X  N& o. P
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    * T4 s  y. Y! Q. V" j: L
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    ! B6 a! U5 p% @3 \( X
  34.          mesh_parms.element_size=1.0;3 p: I! @2 i  z
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */   Q# a3 X6 K$ c+ X' J
  36.          mesh_parms.edge_maTCh_tolerance=0.508;6 j) B; o0 ?/ h, t/ X# w2 p- S8 a
  37.          mesh_parms.format_mesh=true;
    7 x$ U$ d0 j0 s+ |& S& |7 k
  38.          mesh_parms.attempt_quad_mapping=true;# z+ ?1 X9 B9 ^3 J. i' |
  39.          mesh_parms.split_poor_quads=true;
    + C3 R' Q: U- J* r: {1 o
  40.          mesh_parms.maximum_quad_warp=5;- K9 u6 y: U2 t- V9 j1 A- X- X
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//* i* ?- s$ Y2 O( U! T) d2 K
  42.          mesh_parms.maximum_midnode_jacobian=5;& q/ K8 z/ t; \
  43.          mesh_parms.minimum_face_angle=20;- I! t) P2 V5 G; B& Z* i4 w! n
  44.          mesh_parms.surf_mesh_size_variation=50;
    1 m' `; \" E+ c  b8 D+ v
  45.          num_geoms=1;0 H2 J) ^0 n" z+ R1 c! t
  46.          geoms_p=NULL_TAG;
      I/ ]+ A+ a  e1 A/ h, R! d$ Y) Z
  47. 3 i9 X9 j9 Q4 `0 R2 J" p

  48. . Q% F" G# b  Z% ~, p8 p' I
  49. ) R1 i) W  x; w4 U

  50. 2 g( X+ s: w! Q" P( h8 n& W
  51.         //把控制权交给UG5 @/ Q+ m) {8 {2 P% I3 U% w/ k/ f, m
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);8 Z+ c' i" [" ~; D' ~
  53.         if (ret != UF_UI_LOCK_SET)
    : O0 \: M) n6 c3 o2 r$ Y  k
  54.     {
    4 a- F. E) e) L! l0 r: Z
  55.         UF_UI_set_status("Could not lock Unigraphics");- r/ b% [. f( ]# X: i8 u
  56.         return;
    & s- l! j: Z  `/ _$ a& Z3 G
  57.     }
    0 M8 B' j( K" H8 F6 h
  58.         ret = UF_UI_select_with_single_dialog(cue,title,( I, _( H+ q0 r4 q  A; |2 m: V
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    + r6 @- ^7 E/ y  `
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    $ x2 D0 H. V' F: T# S
  61.         , H  \$ S8 L" L8 q
  62.       _& j" q  j6 ]+ n1 F. t6 n
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);  m; L# Q, V+ Y
  64. $ S" m8 S; p: l2 b& S: B
  65. int count=0;
    8 q& X+ s) p  m

  66. " M# G" `0 e0 _# d
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);       
    - S+ k% t. N4 t1 X, I. K8 P" \" d  D
  68.     if(!ret)8 y% ^& z1 }0 R0 q
  69.     {
    0 G7 m  e2 |  f7 s
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||' D- ~( g: J: C% l. G5 K9 Q, R
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)8 l) b* X' c% {8 d( ?
  72.         {% H* y+ b% b4 G2 p1 i7 i& v( x: D1 w
  73.                         num_geoms=1;
    7 u/ o  b+ _# Y9 Q' n$ a
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);/ n2 }0 P7 }( d9 y7 {
  75.                          if(error!=0)
    , J/ K8 ?7 G3 J
  76.                                  AfxMessageBox("划分网格不成功");. Q$ @2 `% ~( y/ W# T- V4 ~1 h/ E9 t
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");7 ?3 W" B4 r4 X, Q5 O- W
  78.                 }
    2 z) k: b9 t  o0 h/ a# P
  79.                        
      J, y, I: M' J* \& ?# u/ T& A" E
  80.             
    2 b+ E6 z7 {' B
  81.                                 , c, b) {, d/ @( C
  82.         }        1 y' t: Z9 t" V! G% D) E
  83.         //UF_free(geoms_p);/ i( U- O. }! b; \0 \
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    ; B$ V/ j" P! V" Z( E6 B, t6 |
  85.    ShowWindow(SW_NORMAL);
    - Z5 S+ F+ ]0 j" m' B1 X
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确," L5 @2 y' r0 r1 B) q* `9 \
特此前来求教错在哪里了9 w/ u. a( ?, @9 g) q( p" ?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复2

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82166
QQ
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试 * N" Y" r. Z2 h+ r) z0 i

8 Y" @- `3 W% l直接在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
4 u/ {0 h0 D2 }" b' b你先不用 MFC 的方式试试   P, j' {" u# ?3 @: W' A
! Y2 k6 _5 a2 {) h0 h
直接在NX 里面 划分网格看看

5 R- b" ?3 Z; O直接用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二次开发专题模块培训报名开始啦

    我知道了