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

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

  [复制链接]

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

1

主题

2

回帖

19

积分

新手上路

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

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

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

x
  1. void CMainDlg::OnMesh() ! H" Z& l  P- q; I
  2. {2 j6 Z* O. x1 m. C
  3.         // TODO: Add your control notification handler code here( k, l6 [+ S; [  T6 |' V$ N
  4.         char cue[] = "please select a face of body";+ A! \% f1 N" L+ J7 S, W1 o/ U: g
  5.     char title[] = "select face";
    . _% u1 B8 H# d) i4 O* ~& v7 A8 `' p* Y
  6.     int response1;9 M7 o% k; `) G
  7.     tag_t  view,temp,temp1,point;
    ' Q5 Q7 \) H5 o8 `% M
  8.     double cursor[3],matrix[9];
    , F- _; M! i0 o1 d4 M4 p2 n
  9.         int ret=0;
    " d) B+ J# J$ W. a

  10. ; w- {4 k' T' [4 W. Z3 V
  11.         //UF_UI_specify_screen_position()函数的初始化参数
    ' v; D6 g$ P6 T( t2 X& X3 |7 {# f
  12.         char message[] ="please specify a position";
    7 C2 `/ I  G7 p/ k
  13.         int response2;
    : R3 }9 ?, T; `* g
  14.        
    % p4 ~. _) w( n3 q' k) l8 x
  15.         UF_SF_UGs_2d_mesh_parms_t  mesh_parms;! y, W) d( v& Y# w8 j
  16.         int num_geoms;//几何体数量
    / G( r# g1 J: a0 T! m' H2 o" N: i
  17.         tag_t geoms_p;//几何体
    - S" Q) v/ V' ?# Y2 Z! P0 Z
  18.         tag_t mesh_tag=NULL_TAG;
    0 U; B" c+ e4 F0 p: C8 J7 p  h* S
  19.         tag_t scenario=NULL_TAG;7 d3 o7 }8 a/ S3 E
  20.         tag_t display_part_tag;0 E& C. q# z3 V2 p0 U8 w+ ^2 O1 z
  21.         tag_t proto;+ B0 F3 ^) y+ A9 n% Q5 z; P3 {
  22.         //最小化当前对话框4 W2 u, g. A& G3 ?" _% t6 b1 q
  23.         ShowWindow(SW_HIDE);
    $ Q% r2 c& f( L3 E- z. I2 m
  24.         int num_bodys=1;' M# t( ~) l  x. e" J
  25.         tag_t body_tags=NULL_TAG;) w9 _7 _& V' P  z8 @
  26.         int num_desc_lines=1;1 {6 L) M8 J5 |& m
  27.         const char *description="";
    $ w" i1 z+ q$ ]3 Y1 [5 p0 C
  28.         tag_t new_fem_tag;8 u$ v& w7 O; X) e* R6 G0 A0 d3 B6 L
  29.         display_part_tag=UF_PART_ask_display_part();& m# Q$ U" c& T9 ]7 r
  30.         tag_t work_tag=UF_ASSEM_ask_work_part();3 i; B, H9 U! E1 w

  31. : B- d) h- [0 E) c& t4 m& Z& H
  32.          //mesh_parms.format_mesh=UF_SF_UGS_MESHER_tri3;
    1 r5 m0 |8 t" P8 ?$ M3 d( R
  33.      mesh_parms.format_mesh=UF_SF_UGS_MESHER_quad4;
    6 d2 Y% L3 k* K2 U, m( s
  34.          mesh_parms.element_size=1.0;
    ' U' {" g$ X9 v$ \
  35.         /* mesh_parms.element_size=dDefaultElementSize;   */
    ( f; N5 u8 v1 J! O& g' q8 T( _- Q. x
  36.          mesh_parms.edge_maTCh_tolerance=0.508;
    0 e( ^, j  j  `) p- `5 }
  37.          mesh_parms.format_mesh=true;6 l9 D1 w% ?6 c
  38.          mesh_parms.attempt_quad_mapping=true;7 U* _/ e1 [$ k, Y2 s
  39.          mesh_parms.split_poor_quads=true;# O$ K: A% n& k& h" H& n+ Z1 t; S& a
  40.          mesh_parms.maximum_quad_warp=5;5 _  \4 t  H. f! E+ N- y+ }
  41.          mesh_parms.midnode_option=UF_SF_UGS_MESHER_mixed_midnodes;//
    7 H, g( A- x8 e: d
  42.          mesh_parms.maximum_midnode_jacobian=5;7 }, n9 M$ J; w5 \7 {
  43.          mesh_parms.minimum_face_angle=20;
    . M  w% s' O' i* ?+ }
  44.          mesh_parms.surf_mesh_size_variation=50;1 B7 ~+ I0 C# K% I% W0 v
  45.          num_geoms=1;5 A& I+ j- ^, U- C
  46.          geoms_p=NULL_TAG;
    3 |, h8 R/ H4 C7 p  F/ d
  47. ! d# d! w4 v" R; A! o; e" F
  48. # J) M# h2 S3 p' F* A" l2 K

  49. 3 h7 g3 B3 V) o" P+ v# h$ l

  50. % m% x! h5 ~5 N$ i
  51.         //把控制权交给UG
    0 f: H% A+ X5 F# p
  52.         ret = UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);: b. b( h* n8 e
  53.         if (ret != UF_UI_LOCK_SET). J. L3 ?# \& b6 R2 U
  54.     {
    5 m! k8 l! K+ c  g
  55.         UF_UI_set_status("Could not lock Unigraphics");! M- Y3 {- D" h* F
  56.         return;
    ( r5 p* n5 H7 S! j7 o6 K
  57.     }
    ; |# Y% _8 o; R4 A: ~9 ~: i9 A
  58.         ret = UF_UI_select_with_single_dialog(cue,title,
    ! x9 a3 C, _* S1 y6 Y
  59.                 UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,4 f; ?/ C5 s7 h' T) K- l: u" H3 X
  60.                 &response1, &surf, cursor, &view);//调用面选择对话框$ x* U( T. z6 |2 Q: B9 f; ^
  61.        
    # }' k8 T: U) ^  x- Z8 F: N
  62.     - a, A& ^5 N  i- r' T% F  Y
  63. UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);; W  r" e# W# G

  64. 0 t+ u: B8 A# ^
  65. int count=0;% }0 ]! Z4 o) T8 A5 c  j. \9 D

  66. % y) [( z5 F8 U5 |- N* B- _1 k' c5 s
  67.   //UF_SF_open_scenario("Scenario_1.sim",display_part_tag);        - w/ y3 k/ T( F$ p* M
  68.     if(!ret)
    9 a  w. n1 B' G) X3 f8 _
  69.     {
    8 o7 Z/ @7 L& H3 \, W" z  ~
  70.         if (response1 == UF_UI_OBJECT_SELECTED ||
    0 P  O2 n0 [2 u
  71.             response1 == UF_UI_OBJECT_SELECTED_BY_NAME), _- S- K" S# q
  72.         {
    0 j/ }$ U  i: E$ a- x5 h* ^) q- D0 V
  73.                         num_geoms=1;
    + s- U' l+ J: [" ^) B2 N0 _8 `2 E. N
  74.                                  int error=UF_SF_create_ugs_2d_mesh(&mesh_parms, num_geoms, &surf, &mesh_tag);
    ) V0 U# h; l* v' p
  75.                          if(error!=0)
    ) P9 U% w+ s/ i$ ]  j1 S$ f
  76.                                  AfxMessageBox("划分网格不成功");% Z# p& }9 y; O/ }
  77.                          if(mesh_tag==NULL_TAG) AfxMessageBox("未生成mesh_tag");
    0 \2 _  h. b+ M& O% [6 v
  78.                 }+ C4 ^) B1 \; w
  79.                        
    ( \# G$ N! T5 y
  80.             
    + _0 b' O6 _, N/ ?& r2 B! @
  81.                                
    5 E8 {" t# ]! B, I; ?9 g
  82.         }       
    . `1 j3 D& l- h0 F' a& y
  83.         //UF_free(geoms_p);
    $ x5 R1 k8 M2 S+ l0 k8 c2 S4 g
  84.         UF_DISP_set_highlight(surf,0);UF_SF_display_mesh (mesh_tag);% |! k4 {. B2 ~; e! Y$ S2 g
  85.    ShowWindow(SW_NORMAL);
    7 R& J/ r* v2 d) Z1 {
  86. }
复制代码
这段函数 在ug高级仿真环境下, 对*.fem文件选中面之后,无法对面进行2D网格划分,UF_CALL提示对象不正确,3 i2 N+ q7 F- q- Y( H( T8 b! S
特此前来求教错在哪里了
3 ]' z8 M+ p, H7 m, U! t3 [
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复2

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-5-16 12:23:45 | 显示全部楼层
你先不用 MFC 的方式试试
2 L/ \' F  m4 t, F; d5 |8 J2 I6 d, t) Q1 n& w
直接在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' A+ o5 B& A0 K1 r# G7 r6 A
你先不用 MFC 的方式试试
4 Q" V% o8 m' y1 s- P
/ I5 x) c0 T- O  A$ i( ?/ f& f直接在NX 里面 划分网格看看

& O" i& `9 g, m- C* ]  b直接用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二次开发专题模块培训报名开始啦

    我知道了