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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh() , }8 o# r8 @6 G5 x- \) _
  2. {2 @# g5 Q: R. Q8 R+ B/ n
  3.         // TODO: Add your control notification handler code here' e" J+ d2 C! M; W% E7 N
  4.         char cue[] = "please select a face of body";
    ' u: L( F) T, l# F
  5.     char title[] = "select face";
    : k( N9 E0 e$ u9 O( P* D8 `2 p
  6.     int response1;
    8 P" h5 C9 f( ]
  7.     tag_t  view,temp,temp1,point;
    4 F: p) Y, B0 P; O, q! A
  8.     double cursor[3],matrix[9];/ M1 _8 }2 ]' I! O; `  o
  9.         int ret=0;5 p2 t2 q5 N& e' j+ u* z

  10. ! P% B. l# Z, F7 H5 u
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    8 _* \: ^: i& `# Y( k0 p
  12.         char message[] ="please specify a position"; % d; b  h' y: }1 e4 y
  13.         int response2;
    ; P( l7 Z) w# S' Z2 o
  14.        
    - j: v! m' n# q  m5 O- T- v2 }. ]
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;) J! c2 `( Y9 |8 R: c
  16.         int num_geoms;//几何体数量
    * a/ z! y& r2 k+ J% Q( P1 [4 x
  17.         tag_t geoms_p;//几何体+ e8 v' |( `/ D$ c4 Q/ H
  18.         tag_t mesh_tag=NULL_TAG;
    , t6 f7 A, v$ N+ S
  19.         tag_t scenario=NULL_TAG;. X% n3 y) b4 M1 j, y- I1 Y$ t4 c
  20.         tag_t display_part_tag;! H; }" }8 L; l
  21.         tag_t proto;
    : p: u0 \% D% }. Q
  22.         //最小化当前对话框
    ! I% M/ ?* S1 o7 e8 K% M* h5 p. `6 x
  23.         ShowWindow(SW_HIDE);
    ! _/ f+ A# P. ?$ g% r* v1 T" d
  24.         int num_bodys=1;
    9 u: \/ V4 H$ _" R
  25.         tag_t body_tags=NULL_TAG;
    7 ^/ H7 D- r( o* p
  26.         int num_desc_lines=1;
    $ c% O6 r+ m% k
  27.         const char *description="";7 D7 m7 U4 N0 M8 \+ \/ b0 O
  28.         tag_t new_fem_tag;
    . b% d. Q4 ~/ M2 I
  29.         display_part_tag=UF_PART_ask_display_part();
    . ?9 h& G; {) }* U
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    9 F$ r. d4 A8 Z6 ?9 x' U
  31. - M& X- a9 Z6 y- |& K
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;2 B9 b4 S7 O5 Y: v. N+ L
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;2 x. ~- `# |7 a8 O% ?
  34.          mesh_parms.element_size=1.0;
    " [) X) x3 d5 [1 f0 O2 R% ~2 w
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ 2 |: C& v9 w, d+ F/ |6 m. Z. J
  36.          mesh_parms.edge_maTCh_tolerance=0.508;. d3 ]/ v, w: y
  37.          mesh_parms.format_mesh=true;
    : t/ K1 n& P/ v5 R4 ^/ L
  38.          mesh_parms.attempt_quad_mapping=true;
    * J" m- |$ ~5 P7 \7 Q- y# P! l
  39.          mesh_parms.split_poor_quads=true;; N. f1 f8 n# w. B! }2 H
  40.          mesh_parms.maximum_quad_warp=5;* Z& I: y2 d' P) y5 J
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    2 J' a" z( J# }) v$ w6 r  A' L: b5 j
  42.          mesh_parms.maximum_midnode_jacobian=5;
    ' w! s5 U( h9 C
  43.          mesh_parms.minimum_face_angle=20;/ y( B- c: }" @: j
  44.          mesh_parms.surf_mesh_size_variation=50;
    - _' |1 }& k% O
  45.          num_geoms=1;& w9 i! O  Y' H2 ?7 @% g
  46.          geoms_p=NULL_TAG;
      E& r4 c/ U+ s( ?: T8 p& o

  47. ( ^9 d& S% Q2 N; U, w+ {7 D- r

  48.   F. H# ?" f9 y5 x

  49. ! ^! u1 K0 ^, K6 O+ @
  50. 5 \6 M, U% y% k" [4 l$ W' R$ J
  51.         //把控制权交给UG% Q& A1 J- ?' g" {+ R
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);; L+ \; V$ \. v6 i( ?& ~+ L/ @
  53.         if (ret != UF_UI_LOCK_SET)
    9 U- D- x' p8 V
  54.     {
    4 V3 w1 n0 Y$ L2 W8 o/ I
  55.         UF_UI_set_status("Could not lock Unigraphics");
    / |: w" I6 ~* A7 a  ~, z
  56.         return;
    $ E0 O* k, C, F, a  w9 d
  57.     }+ T4 G- U- O) n
  58.         ret = UF_UI_select_with_single_dialog(cue,title,/ J2 |9 ?7 m2 m5 i" D' a
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    ' e2 i: q& G; ^% L$ c/ K" N, f9 g  U
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    ) R9 s* F) h& `: K1 u
  61.         $ u: P% Q2 ^3 O+ H% o4 W8 D& r) [
  62.    
    , V* d: p5 m+ t# m2 w" M  ]
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
      W$ {) q0 P: o+ q

  64. $ k1 R; f& ^! ^2 i. A" P
  65. int count=0;
    0 L1 f; l. Q7 p* o4 A! `) v! B

  66. , ?1 D% d2 o! g" o- L
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        # r$ T0 _2 `8 z$ S0 X2 u3 N
  68.     if(!ret)
    ; q7 k" Y, ?. }6 s
  69.     {
    % Q; C% T3 e& U/ \. [8 E9 |
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    . F7 x- Y0 e, K0 g9 X7 A5 N2 ~* I# H9 q
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
    6 n4 @+ @/ P. B5 D% V9 a/ H& Q
  72.         {
    # V- E6 V' v- ?' e! F( P0 a1 [) m
  73.                         num_geoms=1;1 s% O. ?! O9 c. T
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    % W. ?" c5 A  ?
  75.                          if(error!=0)
    ) S, q% N5 q1 S) j
  76.                                  AfxMessageBox("划分网格不成功");& j- V; x0 ?9 }+ Q' |
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");: z, @" k( `7 r8 r! f6 t; Q4 N
  78.                 }
    # {5 x" o2 H% m9 r+ _
  79.                         . t% M+ R4 t1 u) c1 R3 h" F
  80.             
    : v0 _0 g0 K8 \; v
  81.                                
    - T8 T8 W+ p' R  Z- }2 X2 ~# P
  82.         }       
    * w) K; m7 {! l3 m
  83.         //UF_free(geoms_p);
    % |8 D. j+ ~- C5 W) a$ y8 d, z
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);9 }/ Z; s2 Y9 P: F. K- C
  85.    ShowWindow(SW_NORMAL);
    - `% P3 Q# B1 K1 Q. v
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,
$ z7 S9 p$ {7 _特此前来求教错在哪里了9 |  C7 K- Q& H+ u: v* M7 v1 P- L
上海点团信息科技有限公司,承接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 的方式试试 ( z# |7 |4 |( R8 n' k% x

) `) a/ M: A8 H" S$ d直接在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
9 I, C1 V, m# ]0 y2 y- Z1 `" k' b你先不用 MFC 的方式试试 * S7 G) y5 v+ A: R
+ t. S' D# z# k0 _6 ?
直接在NX 里面 划分网格看看

. i3 e5 R( W- J( 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二次开发专题模块培训报名开始啦

    我知道了