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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh()
      T$ [1 K) S- u- E- j! d3 |
  2. {
    ; F, ?5 d2 K. w# S7 k( G+ E
  3.         // TODO: Add your control notification handler code here
    9 K5 m# c1 _0 [1 K& W2 u
  4.         char cue[] = "please select a face of body";
    8 {" b5 P7 t" e* B& |
  5.     char title[] = "select face";. }, H1 k. L' r) w" }* x" Q, L" G
  6.     int response1;" k4 f9 T* P5 b. d& r1 g- n% S' V
  7.     tag_t  view,temp,temp1,point;
    . `7 Y* `- g# s$ g! J
  8.     double cursor[3],matrix[9];3 f/ G: R, P9 U
  9.         int ret=0;) ~* v. g; K: `# B; {

  10. : ?$ M" ^# z/ H4 _  s5 E
  11.         //UF_UI_specify_screen_position()函数的初始化参数' T, B: x; l, f3 o; N: u; T' v
  12.         char message[] ="please specify a position"; % S  D8 m- d3 y7 ~" d7 c. c
  13.         int response2;1 [! Q. h1 Y0 q5 e  `# D
  14.         4 X( _6 G* a. X; Y# `$ E
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    1 G$ u8 X9 H9 l3 _) K
  16.         int num_geoms;//几何体数量# E$ e  a( k+ D' D0 A9 I" I
  17.         tag_t geoms_p;//几何体
    ' @& a; A4 {* v. ?9 L
  18.         tag_t mesh_tag=NULL_TAG;# q& C5 R6 q$ x1 r. L. @9 k
  19.         tag_t scenario=NULL_TAG;
    1 G8 A# u& c2 r2 z$ T2 }
  20.         tag_t display_part_tag;
    ) I4 h& G- _' ^* G* J4 d' `# n  x
  21.         tag_t proto;
    1 \- |" o, y, m9 h3 n6 m9 E% g
  22.         //最小化当前对话框6 {/ J; l% e, }2 A4 M
  23.         ShowWindow(SW_HIDE);. T" D* n/ G6 L. m9 P
  24.         int num_bodys=1;
    ; j7 G& C- \7 F9 V" ^
  25.         tag_t body_tags=NULL_TAG;; X! d) }5 R7 P7 l9 ?- R& J( B9 |4 p
  26.         int num_desc_lines=1;+ o8 {8 S7 E0 h3 {7 u& |
  27.         const char *description="";1 u" a7 r9 h+ @; S5 H  V
  28.         tag_t new_fem_tag;
    5 l9 `1 j3 N) X. G; s5 E. D0 U* x
  29.         display_part_tag=UF_PART_ask_display_part();4 `; N1 N! ~4 c3 s% `1 l# C
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();# W* `0 y. v3 R( S: E3 s7 ?* h
  31. , K' ~, t) w. G3 z
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;: R" n$ H5 ^4 {  W; W+ T' O* E
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    ; U$ Q6 i/ \* [( T! V
  34.          mesh_parms.element_size=1.0;
    ' @& C' W5 l% k+ Q( Y+ s
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ 6 _0 y, c* e* S! E
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    7 P5 |* z# ?& n% _! b
  37.          mesh_parms.format_mesh=true;
    ! I: F  Z: J  i( S9 u# f
  38.          mesh_parms.attempt_quad_mapping=true;
    9 ^8 C- z' h) @: |/ G1 m
  39.          mesh_parms.split_poor_quads=true;
    & M" w; l) h6 e
  40.          mesh_parms.maximum_quad_warp=5;8 D7 _$ C$ A( q/ D8 }% q" s
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//( {4 i7 m8 }, [! D' }
  42.          mesh_parms.maximum_midnode_jacobian=5;
    3 J: E8 N( l# m# d8 J! F. i
  43.          mesh_parms.minimum_face_angle=20;
    4 C/ M* G0 l# E9 _- L- G
  44.          mesh_parms.surf_mesh_size_variation=50;
    . f) W% W% o% ?+ b% J# c
  45.          num_geoms=1;
    2 n! ?& n5 o/ f* a, F
  46.          geoms_p=NULL_TAG;
    " k  h- B; b! X- H5 a, i4 e2 L4 u
  47. % ~: f. i# h/ ^7 H
  48. + k5 R8 Y% j+ C
  49. 0 u* N4 S4 B1 w9 z- K

  50.   m* m+ K1 @& v5 G5 F5 R8 e
  51.         //把控制权交给UG3 r7 @; o" @( o" k
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);4 p4 D: h6 K. F4 D. d& D
  53.         if (ret != UF_UI_LOCK_SET)$ N. \( Z4 I. i4 |9 j
  54.     {
    1 ~, ]3 i! p4 K3 i
  55.         UF_UI_set_status("Could not lock Unigraphics");
    : b! ~7 q, v" P, N
  56.         return;0 r( L# Q/ j3 E, g2 v) c, H
  57.     }" T4 J, \) m( a' i
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    " Q  e  J9 _( v" ^! p
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,% y* b! i' _6 W3 F- l9 g
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    & Y" X2 C, J# F+ \  I; N7 M
  61.        
    ' T) T% |  j5 V5 T, }1 ]( p( V- q! H% D/ @
  62.    
    . m0 u( G8 T2 Z, c& ?5 x
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
    + k4 l/ e, Z1 x9 [% m

  64. , T3 e! E& }4 d, B# v- Q- r- W
  65. int count=0;
    5 f+ h; u2 }( {! p1 q: Z
  66. : r; N. t3 x+ z- F+ Q% g6 X$ F
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        # u; c1 \4 C9 a' ]- ?2 {
  68.     if(!ret)6 `. t' C/ O, i% s
  69.     {$ f4 i- w. w- o# B$ L" w2 F4 E
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    7 ?" {1 S, j1 k9 a2 l" F
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    2 g: }) q1 y. P+ n" b; _3 w
  72.         {8 Q. S3 q2 \2 d$ K6 w
  73.                         num_geoms=1;
    2 M& z. N4 o$ U% D
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    7 V6 p7 y7 }) G. N
  75.                          if(error!=0)
    ; b) I% r8 \7 |
  76.                                  AfxMessageBox("划分网格不成功");8 q$ B; E* U6 e4 C8 @9 P
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    # N) {& u3 ?" B. q0 b
  78.                 }$ w: g) b* A' s1 M/ Z& k' H$ z+ Z; p: {
  79.                        
    4 u, Y" |% M7 D. ?8 L5 q
  80.             
    ' y( c* k3 U6 `6 \( ?% B
  81.                                
    + T* y. Y% `. y7 ~. z8 Y5 j
  82.         }        5 a' Y% G4 d5 @3 D' a  b3 A& `
  83.         //UF_free(geoms_p);8 Z* b7 [9 Z7 s/ B( h$ ^: y
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
      W6 k; U0 W! k5 {3 s7 g
  85.    ShowWindow(SW_NORMAL);
    7 t* g# y/ q+ ^, _  Y
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
( R6 }4 `% t5 H, A1 p8 ?特此前来求教错在哪里了. o7 h7 Q0 M# n& U: T  |
上海点团信息科技有限公司,承接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 的方式试试
# O3 l) c1 Q' \! y
$ @8 G2 o9 _; V) L0 ^8 r直接在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
' x3 N2 g1 w/ ~- h8 @+ W, ]你先不用 MFC 的方式试试
% V, i0 K. o9 `& n8 g" l
$ x4 x8 B1 z, X7 s! E直接在NX 里面 划分网格看看
5 r& J& {: ~2 B( F! b
直接用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二次开发专题模块培训报名开始啦

    我知道了