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

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

  [复制链接]

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

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

KKuN 楼主

2014-5-16 10:48:19

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

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

x
  1. void CMainDlg::OnMesh()
    0 N! `2 b& R4 P: F! X
  2. {& u: c9 M0 z7 `( P1 E2 y" o" `
  3.         // TODO: Add your control notification handler code here
    2 w2 q" k8 d, ~' ]
  4.         char cue[] = "please select a face of body";  @2 b3 Z8 F3 M! o' X* f
  5.     char title[] = "select face";+ r/ v9 r" K: s& J
  6.     int response1;  Y& `9 W( u1 O; o' X
  7.     tag_t  view,temp,temp1,point;1 q- ]7 k, z) j
  8.     double cursor[3],matrix[9];" u6 @0 {+ g6 _* d2 E
  9.         int ret=0;
    - Q/ a% ^4 |/ a; _! m! p

  10. 6 |7 o( I! U1 [3 ^  r
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    4 Y) q. u- }* ^2 @7 m
  12.         char message[] ="please specify a position"; , k) V) {0 `/ l: k/ r2 [1 u
  13.         int response2;
    ; c3 x1 a. _# m# y4 D# j$ C
  14.        
    5 e& @" t0 \: l
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;
    , w3 J& p2 g" S$ W# ]5 Q
  16.         int num_geoms;//几何体数量
      f; v4 S. }. f. P
  17.         tag_t geoms_p;//几何体$ b5 v$ J2 e0 P" L
  18.         tag_t mesh_tag=NULL_TAG;( c+ h! Q" P+ B4 x
  19.         tag_t scenario=NULL_TAG;
    ' `+ E0 ]; U, v6 ?5 q
  20.         tag_t display_part_tag;
    & _: \- q0 d$ I4 }" Q1 D& J
  21.         tag_t proto;
    & e+ K  |6 W3 [/ ~
  22.         //最小化当前对话框
    : z6 L8 D3 V1 J! ]
  23.         ShowWindow(SW_HIDE);% X7 w  z( w: P2 `& @1 N; `
  24.         int num_bodys=1;! {3 l: i4 v3 ?) V$ Z8 s
  25.         tag_t body_tags=NULL_TAG;% H+ X. |8 A7 g) s% T: F+ T
  26.         int num_desc_lines=1;
    ! |8 I' ^, N0 p9 ?+ x* j) K2 w
  27.         const char *description="";
    5 E4 U7 k) G* J% N; d
  28.         tag_t new_fem_tag;- F. }- \  a  Q+ z
  29.         display_part_tag=UF_PART_ask_display_part();5 b& m0 r# l" H! p
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();
    $ I1 `2 X2 j1 V5 z
  31. ' e! ~2 a8 N, n2 ]4 v& j
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    $ S/ ]) C$ W2 i+ ?" O- @
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    % o6 Z! j# O9 n5 e: z8 C# R
  34.          mesh_parms.element_size=1.0;
    * V5 a  a5 I9 B% f7 ]: O
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */ , g/ e0 V- z1 E! K3 O- c
  36.          mesh_parms.edge_maTCh_tolerance=0.508;7 l) K3 @& ^4 _" {  v2 K* N" r
  37.          mesh_parms.format_mesh=true;
    4 Z$ c2 I! G; y1 e9 P: `7 M
  38.          mesh_parms.attempt_quad_mapping=true;1 y' U: \* j0 |5 O! M4 @7 {
  39.          mesh_parms.split_poor_quads=true;
    5 l& r0 k: k* f) `7 a- m7 S* ~
  40.          mesh_parms.maximum_quad_warp=5;6 `' w7 L/ }, E6 `8 D! {3 K+ x
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    9 W! l* j4 A5 W0 O7 w
  42.          mesh_parms.maximum_midnode_jacobian=5;
    # e! j* u$ r- g, N
  43.          mesh_parms.minimum_face_angle=20;
    . K: A0 i# A( {+ Z/ \3 W
  44.          mesh_parms.surf_mesh_size_variation=50;
    0 h7 Y8 S* Z! ?! `4 L, N9 ?' S* G
  45.          num_geoms=1;
    0 I2 i' a! j7 y- u! v; i
  46.          geoms_p=NULL_TAG;
    ( I/ J3 V9 A7 P4 I- O( v/ S

  47. : D4 w; L% i5 N9 k! d$ I( K# |7 v
  48. - I) W4 i2 j$ L- |9 g
  49. / d6 Z( ]6 X4 q4 e0 G* `- B! Y

  50. - @: W+ _. V6 c6 i( B
  51.         //把控制权交给UG( r$ I3 ~' K8 v, W  k3 X" q
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);# n0 W) F. F& W( s
  53.         if (ret != UF_UI_LOCK_SET)
    * t0 _* f5 u0 \+ @9 s' c3 h
  54.     {+ {* F! q3 `1 C) s/ G. {! D, S
  55.         UF_UI_set_status("Could not lock Unigraphics");' b$ M  ~; M- Q9 \! ~+ R" a2 a
  56.         return;
    + ?3 v+ M7 q, K% F. ~, \; n8 q
  57.     }
    / S& o8 @' L$ C5 o& n/ a, f( M
  58.         ret = UF_UI_select_with_single_dialog(cue,title,+ Z" L7 Z' S' Z2 R2 q& n
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
    / |/ Y2 B2 \2 ?0 x) p' [
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框
    + M/ u% o$ g: r) q/ _3 D- v
  61.        
    . t- r1 \3 F4 n4 ?
  62.    
    , c: r/ f4 j$ E. u! e. n' ?- y
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);3 l' u9 z4 M! n5 i* P9 C& A
  64. . Y( @# F& B, f9 I7 p
  65. int count=0;
    0 ^1 v1 z. n2 C8 k
  66. ) f$ C- F7 m# m+ ~9 S- V
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        % x  q" W( r* p4 t) u# v9 e) u% U
  68.     if(!ret)0 f' S* y. @9 ~6 m& l* |) d  o
  69.     {
    ) e; }2 Q2 T5 y% |. |  A
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||! n: a* X4 A) |5 m% m" k
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME)
      ~3 H4 {+ P+ X: G' U4 t3 t, i
  72.         {; j, F+ `( C; b) k* N2 j# A. \
  73.                         num_geoms=1;
    " z$ @$ N( f/ h1 Z& c- A" j5 _) B, @
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);" W" o# w1 ]3 A. v) x
  75.                          if(error!=0)
    ( d3 ?$ J7 h, b3 B
  76.                                  AfxMessageBox("划分网格不成功");
    5 O) o8 }+ s3 y% k9 {3 |) F$ T
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    # ?2 d! j( h8 `) h* d  w  ?
  78.                 }4 x5 r# O9 Q( ^) I3 Z; u2 X& L
  79.                        
    , n" x8 a9 w' j8 A' }
  80.             
    * p3 Q7 K0 t5 u6 o- w
  81.                                
    $ ^9 k" _) M+ F* B9 l
  82.         }        7 Y2 J" m9 S" \7 e9 W
  83.         //UF_free(geoms_p);0 a$ @+ m' T4 F2 V/ z" \5 G+ [2 S
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);
    5 e4 x4 x9 I. V# i/ ^$ v5 @, s
  85.    ShowWindow(SW_NORMAL);
    + `* j* X: H! L) F# S& J
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,2 b0 a  G+ U" X( U
特此前来求教错在哪里了% ^5 A/ R: P  ^1 f# v
上海点团信息科技有限公司,承接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 的方式试试
1 m% B& s, L5 O$ h. M* h( b, T" ]
3 W/ t4 ^9 p7 ?直接在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
( V* }* K/ k' C! G6 |你先不用 MFC 的方式试试 $ i) Q0 U3 w; n4 ]

3 [6 Z% w: `4 V7 I直接在NX 里面 划分网格看看

/ b* z# o; c0 u6 i5 L8 b+ h直接用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二次开发专题模块培训报名开始啦

    我知道了