PLM之家PLMHome-工业软件与AI结合践行者

[二次开发源码] NX二次开发中,其他一些有用函数的使用大全

  [复制链接]

2017-3-2 13:15:39 5191 1

admin 发表于 2015-3-2 10:31:39 |阅读模式

admin 楼主

2015-3-2 10:31:39

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

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

x
: |  _0 s% l. y3 F: y
7,裁剪片体
' g: O# S! F- `* }! p8 utag_t  *trim_objects;
- F3 q. @  _" G& I. |) ]1 ztrim_objects =new tag_t[count];
+ b( G7 l# {' z: I/ r2 W6 q8 t  jtrim_objects =bound_id;
" a* V  `9 x* x( L) }voidtrim_sheet()
" }$ p# J. {( a{
1 m+ L" v4 E' H+ R; C; I4 X- t
1 [/ z+ P8 U' n: |- x9 q      UF_MODL_vector_t projection_method ;
, y. f& o+ I  E6 C: O      projection_method.reverse_vector=0;: r  S5 t; Q+ h3 G; a
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
6 z) ~( `: G) S% v4 q5 {( k      UF_MODL_vector_defined_by_union_tdir1;# H- ?2 ^2 {0 p% T! C  K
      UF_MODL_vector_direction_t dir2;
5 T, a8 s# S( I2 S5 }. @# a/ w% f      dir2.xyz [0]=dir[0];
- p7 n  _* ^, A& D0 u      dir2.xyz [1]=dir[1];
* D* h! ^2 n: R) J( y6 F' x* Y      dir2.xyz [2]=dir[2];9 c' P& H% J/ }; ^
      dir1.direction=dir2;
6 C' n5 w* P- m; ^+ V7 q. P
; @2 f7 r! }3 Z2 y# e. p      projection_method.defined_by=dir1;" a' ]1 D2 n% C3 ^$ m4 ^

; T9 X4 P8 Z, y& J      double point_coords[3] ;, h8 A5 b3 ?  }' _2 x+ i2 W

- M$ V$ H6 y( }2 A; O" m; P! G      point_coords[0]=center[0];
/ }" \$ ~8 |6 o# w* {      point_coords[1]=center[1];. {% i2 Q5 t3 m( o! a
      point_coords[2]=center[2];
" K5 G' M' T8 M6 I) x9 R6 q, k1 G% J6 T3 O8 S9 y! Y$ [
      int gap_point_count ;. s' i- r; U6 w5 r. p" X
      double *gap_points;
% Y- L& R0 l+ M. J% w( y  ~* R      tag_t feature_obj_eid;
$ J# V7 i: p: I. V' n: k      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
& L) M0 M, [* a7 X+ C                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
' E4 Y  D7 v; h& Z2 @7 z, Q2 x6 o7 K' E% E# B- w5 e
}7 d9 M2 |9 N' K6 ?/ w
8,offset偏移  l* H8 {) }% K. {( p$ K

2 D0 }" {, y$ j2 _8 n! M6 {: Nchar   distance_str[] = {"10.0"};//偏移的距离  W3 A0 I4 t$ O: W# k1 g
$ J. u* ?% P  s, _7 k: I5 s& |3 l
int  num_curves;
- h3 y% `2 Y; X2 U  r) q# p8 {tag_t *offset_curves;
3 f; f. W* L/ ?9 ~+ JUF_CURVE_offset_distance_data_t  offset_distance;! t% ^: x( c. ]- S
offset_distance.distance= distance_str;  p* z7 F' s2 b! l- G' l
offset_distance.roUGh_type=1;
# b  k2 _2 a! a+ d8 GUF_STRING_t   input_string;2 \3 d# T% j; W8 X0 [3 `
input_string.id=curve_id;//加入想要偏移的线6 c& A0 Y7 A6 K
input_string.num=1; //偏移矢量方向数量3 C1 f- {3 R% i6 R+ i( I
input_string.string=&string_count;//偏移线的数量9 v6 \2 Y0 Z9 S. e$ O
intstring_dir=UF_MODL_CURVE_START_FROM_END;
0 E6 R/ c) a. minput_string.dir=&string_dir;
: C& q& i& |: z
$ v- _4 z  ~0 X8 N. J( `3 vUF_CURVE_offset_data_toffset_data;, k0 X/ H: n0 a6 N5 ?  X
2 G( `# L; m* w. n& N8 T3 a
offset_data.offset_def.distance_type1= &offset_distance;) c6 B3 V, I- x* Y; c2 z
offset_data.input_curves= &input_string;. H' Z2 }3 t" z6 t$ a8 [
offset_data.approximation_tolerance= 0.01;
- r& V4 D8 \7 xoffset_data.string_tolerance=0.001;! }& x# G) f3 z; J7 n
offset_data.offset_def.distance_type1= &offset_distance;8 E/ P: P& j' U; R, c( v2 y( S
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;* A$ K+ e6 ]* b, U: Y7 ]
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
. v: o  e6 d2 t&num_curves,&offset_curves));
0 w/ _! ~/ n& K" E; w: B9,创建平面
# Q& Z' w$ U7 A3 X3 HUF_STRING_tgenerator;. w. U% P6 z# j7 _1 ^" \8 r
UF_STRING_p_tge = &generator;
7 u6 J+ e: `8 Z  d' {
( G" `8 v0 X: q# LUF_MODL_init_string_list(ge);
6 V( ~5 V4 A: l4 [. T4 s. AUF_MODL_create_string_list(1,12,ge);
% ^  o- Y7 g- n# J  r; q2 d5 Y/ V
ge->string[0]= 1;
( j, X, a! O. ~5 f+ s, Xge->dir[0]= 1;//指定线从开始到结束
* @4 w! q* W7 v9 |* p; y- m% Uge->id[0]= arc_id;//指定边界的id( @7 V& b# p5 C6 v1 v  x
doubletol[3];/ ^" Q- d. H- H9 s" M/ H; f. J
tol[0] =.001;//直线公差# i4 w# L. [- f$ [' T
tol[1] = .5* (PI/180);//圆弧公差; E. i( X' F( |" q( N4 d
tol[2] =.02;//不起作用/ k* D) w/ ^) z. F, p; I( g- E
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));5 G" V" c6 M' Y0 h3 d+ a
10,选择+ Y5 e* x2 k) E" H
1),点选择4 ~. L+ O5 r+ ~6 K" \' r+ r
tag_t point_tag;
; u6 |6 v/ l5 I. z( T9 Ydouble point[3];
5 \9 x" x+ \+ \       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
. u6 J8 G  V: m" D) G       intpoint_res;/ _8 ~  d; @) T* U5 U
, F4 S) i+ s- F) M" w; V" u& H8 p
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
6 [4 u' S6 K& d$ |0 y* \. \/ l( b. ipoint,&point_res));7 ?3 z% Z+ a! s1 w: t0 S
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)* I# C8 d. J4 i+ \
{/ Z* v' b7 q7 d+ w! \
}
0 p% H7 t6 E$ w1 \2),向量选择
% ?" v" f: C2 M) N* e* r( f) W+ s     int  mode = UF_UI_INFERRED ;. l) n1 d( }, G0 Z! s
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
# k  u' L3 S3 \1 v0 z+ t  }double vec[3];. u6 O2 N0 h. q5 y1 Q
double vec_pnt[3];
4 U2 v' g( v" }5 O: k$ vint res_vec = 0;+ }1 x3 F8 Q: w9 _! k% ^
     UF_initialize();  ( N5 |( f3 Y/ m
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
4 i0 `4 o) ~" P$ y4 @- ?           vec,vec_pnt,&res_vec);/ t0 V  B* j, Z- ]: R
     if( ifail != 0 || res_vec!= UF_UI_OK )   * e9 s, d) u# J$ N4 b' i
     {     6 y! Q, j/ H# }' o8 Q& |
           UF_UI_ONT_refresh();
: \  h) q9 ?2 d. d( F7 m           printf("No vector selected \n" );
4 m& @2 n) G0 x+ q: k     }
0 H8 C7 d' C  ?, V     else" w, p- R9 |, t# |
     {
) G/ B7 u8 X* v6 o( m* j/ j0 i# |           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
! v& ]- p, _+ ]* S3 Z4 a                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
2 W0 J. P5 ]4 e& m}
; Q3 t( B) E" Y# T3),平面选择. N! w" z: t6 n" o0 X  a/ X
tag_t plane_eid=NULL_TAG;
( s( L2 i9 z2 Q- rdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
8 J3 o( O1 a9 y2 ]   double origin[3] = {0,0,0};0 ]7 Z, g- w# \4 Q2 Z5 ~* P6 G1 V
   double pts[6] = {0,0,0,0,0,0};% ?! f: m, a5 w, C0 W4 j. v  h
   int i, error_code = 0;0 v  {" P" }, W# [  Z) v
   int mode, display, response;* J* d. }" N* N1 v1 ]: Y
   mode = 1;                    - i) m  P6 r- t$ E4 t6 @& o: w7 ]
display = 0;      
4 m) o: h& }! DUF_initialize();) k$ i6 ]+ a1 E' _
   error_code = UF_UI_specify_plane(
/ {" z7 z  k5 j" [  n* t         "Select Plane", &mode, display,* W( F7 B. c  n4 t
         &response, orientation, origin,&plane_eid);* F' u: |5 {& z
: D9 ^: N9 A. @) R) }$ K3 k) f. d5 J5 f
   if ( !error_code && response != 1&& response != 2), {& l; N( M4 r4 v+ C9 o
   {4 v3 u6 l" g; k( \2 B5 k
                     for (i=0; i<3; i++)3 g' T  v2 n: i* \# t, H' g
               pts = origin + orientation;
' a6 D% Q8 A# _1 g                     for (i=3; i<6; i++)
3 N! o) I4 C! B  d6 I+ ~. J5 r               pts = origin[i-3] + orientation;( ^1 p. C# D2 O" U
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);- ~2 x& ?" a4 Q" T
   }! {6 _- ?, B0 q" R
11,临时点,线- u) G# M4 a" [
void display_temporary_point_line (double point1[3], double point2[3])1 O/ Y5 _" n) A% c. b
{: L* Y$ F) C; j) o/ P, C- q
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
7 b8 {% v: b  y6 N: A8 p# t2 p: g  UF_OBJ_disp_props_TColor;9 ~$ Y$ K0 J" o9 S2 K9 n+ M9 \
  color.layer= 201;
& M: E" ]( s" b8 W& a* D2 k. j  color.color= 186;- Y" U# o% L: v- o8 o# P0 I0 \
  color.blank_status= UF_OBJ_NOT_BLANKED;8 j6 E. u% c* G* ^  j
  color.line_width= UF_OBJ_WIDTH_NORMAL;
, q9 _. h9 U9 X  k  color.font=0;
  M, ?4 e$ t( T; k) f  color.highlight_status= FALSE;  e5 r9 x6 K1 t5 L: }' Q
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
1 Z" E2 A: @' k) V1 z0 p( i' u6 ]' ]! o6 g8 {* r4 A3 R
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);: r1 B7 r! ~4 M5 @- G
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
( S  T# ?0 w2 s, R8 aUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
4 P7 B7 H$ w% q$ S6 f}- p* d7 e# t& `# b0 L" `% F+ }
12,WCS与绝对坐标转换
) C3 \8 Z8 k. s" Y4 @+ P! ?8 q; p                        voidcycs_wcs(double point[])3 @) K  l! s+ m0 f. ^
{2 o% L& R& C' B1 z6 {6 [0 b
      tag_t  wcs_id,matrix_id;
' I6 T( G( s  L: j# A) }7 j      double matrix[ 9 ];: Y2 X- j+ r/ {% G! l+ U
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
3 w3 E9 i- k0 J9 l      double wcs_origin [3],vec[3][3],point_origin[3];, H2 H9 Q' Z! M
      //1,得到工作坐标系( n" o. [% z5 |% {" W7 [6 U) ^
      UF_CSYS_ask_wcs(&wcs_id);" H. }# H/ ?) e9 Q/ Z$ c
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    3 [- b$ H  V9 v  @) g: S$ o
      UF_CSYS_ask_matrix_values(matrix_id,matrix);3 _0 i& L; J! E; t% w7 h: h$ {

, N" U/ z, ^% G+ F; w: ~  Z* x$ g      //2,得到工作坐标系轴向量
" ~& T- y9 Y1 o7 V' l      UF_MTX3_x_vec (matrix,vec[0]);
  W0 Z" b+ t8 Y$ c) f8 L      UF_MTX3_y_vec (matrix,vec[1]);8 U$ \& V/ D. ^5 E- r6 F4 E+ W" Y' d
      UF_MTX3_z_vec (matrix,vec[2]);
  c, g/ F: [' R" N* X' u
2 c# Z7 I% N) H3 z" `5 Q6 P  H. G2 ]      for(int i=0;i<3;i++)
! d, y* C3 S1 \1 _4 @( m      {     $ C) t2 c" c" T) O: P; s1 }
            double tol;
$ _8 R$ f" o  d//3,得到点到工作坐标系原点矢量
7 S4 s3 d& y3 H# ~: R            UF_VEC3_unitize(vec,0.000001,&tol,vec);
- a3 J: D9 f/ B- k) Z  ^; @, D% w//4,得到点到工作坐标系原点矢量
  B4 X$ p7 E0 v8 ^6 ]            point_origin=point-wcs_origin;) {/ P7 \3 u7 N2 F' _; Z
      }$ K, v# f9 O/ @7 O4 h
      for(int j=0;j<3;j++)& t5 l; L% }/ B
      {
& _/ x8 J  i& A9 ~0 w5 ~            UF_VEC3_dot(point_origin,vec[j],&point[j]);% A# x$ ^9 l( ~2 C& ]3 f
      }
  U/ K6 C& H# a+ O0 f}
8 {% @7 v" @& K3 @, _. f- T13,三点求圆心3 H& V0 Y' V9 C2 q
#include<iostream.h> - M% F" Y! K, K& }) P0 P% @( ]
#include<math.h>
3 k2 @: c1 _% ^5 B( b# B6 O& p( h0 y( V5 Z/ ^2 f
int main()* ?- }" ?' o4 |5 \& `# U/ E( k, c
{& Q/ x3 V8 T: I0 P- P1 P0 p
      int x1,y1,x3,y3;
0 m& u# t( e8 w7 W) Q: l% M. X/ V9 `      double a,b,c,d,e,f;
+ k2 e7 r2 c% b      doubler,k1,k2,x,y,x2,y2;
" h; d) p: i9 E$ z# X7 C3 c5 b+ b' r      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
# {2 [5 |; N& \  {9 o      cin>>x1>>y1>>x2>>y2>>x3>>y3;
' r7 K. f; ?# J      if((y1==y2)&&(y2==y3))
, U1 c  F) Y+ P' Z, P: ]% [      {
' q$ q: T$ b  m+ L" v4 t            cout<<"三点不构成圆!"<<endl;
8 g. A, J$ T* C            return 0;7 z; R0 j7 Q- \) i% G0 `
      }( W9 {: ^2 h& [/ r+ V7 k1 V
      if((y1!=y2)&&(y2!=y3))
3 x+ z5 K& J$ ^4 ~0 F      {
( r  r$ E$ K+ \4 X$ Z+ ]            k1=(x2-x1)/(y2-y1);& O9 O. F' c- t: M  n4 V
            k2=(x3-x2)/(y3-y2);# N7 Z' U2 j7 {- ]# N; I4 [
      }
8 H8 A: s, G! U2 d, y      if(k1==k2)2 s0 ^% _8 w4 m0 Z
      {; b6 Q  V3 r6 k+ B' S, B& [, h
            cout<<"三点不构成圆!"<<endl;( I! V7 f5 H* t2 W0 y
            return 0;- K; m: E, [) |. C
      }" K4 D- |6 o4 t7 J3 @. T. N
      a=2*(x2-x1);' `8 j7 I/ k$ A: C% w
      b=2*(y2-y1);
6 H! `1 R+ E1 U/ N4 P  N      c=x2*x2+y2*y2-x1*x1-y1*y1;
; D  z5 @0 T) u8 c& U      d=2*(x3-x2);8 ~7 Z" G+ q) e; G" g9 k% g
      e=2*(y3-y2);. X! j/ H, u( i6 B0 [& j& Q3 A+ |/ s
      f=x3*x3+y3*y3-x2*x2-y2*y2;
+ t7 O- Y$ z0 L7 x  u      x=(b*f-e*c)/(b*d-e*a);
9 K* y2 c2 x! z- R1 O0 M) ~8 d      y=(d*c-a*f)/(b*d-e*a);& w# T& v8 m; r0 {: Y
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;" N+ P: Q8 A. s; }) |0 E4 Q* A/ B
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
% }4 N: D. c, r/ A; s5 m) Q      cout<<"半径为"<<r<<endl;# {* V3 A: B4 j1 S
      return 0;
9 P* f* x8 x! Q% J}+ Q7 g. p8 b- @* @$ M/ F
14,查找圆心
& G3 v' v: ^3 a% o            UF_EVAL_p_tevaluator ;
- Q5 a3 v" L8 x: n% ^" i# g; y. N6 n            UF_EVAL_arc_t arc;" n9 }5 t6 Q4 i9 m6 O
            UF_EVAL_initialize(obj_tag,&evaluator);
; b0 D, _& \: ?# m  {            UF_EVAL_ask_arc(evaluator,&arc);3 z5 v+ F+ p: ]2 s
            UF_VEC3_copy(arc.center,point);           # [9 R  T2 }% _$ k' @0 b* b
15, message_box
, V% i7 U6 \- evoid message_box(int *res_mes)
1 V6 T/ n  U; S! k0 l{
7 h* w2 `" z' @      UF_UI_message_buttons_sbuttons;
* s, a7 l# [- n) ~      buttons.button1=TRUE;3 x( n: ^# a+ D8 S
      buttons.button2=FALSE;$ O1 D$ W, l% p5 E
      buttons.button3=TRUE;
/ B% a' n! A8 m) {" r) B0 C9 _) U
0 k/ v! A) K* V* p8 M      buttons.label1="OK";1 e# ]7 T( x2 r, p  N9 A
      buttons.label3="CANEL";
$ Q' a2 Z3 y8 ~- c# G# ?+ |) y
: J# o& }" F/ ?, z. Q: x% }" ^, g      buttons.response1=UF_UI_OK;& I! a3 E8 Y7 H$ [9 ^
      buttons.response3=UF_UI_CANCEL;7 C3 o1 b# {2 r7 C$ I9 a3 q

; f3 J! {4 E9 {      char *string_msg;
" W/ v; Y7 J: j) q0 \+ O      char*material_msg="ALL selcted objects will be removed";
! x2 J9 ^2 h2 P1 H      string_msg =material_msg;
: ~5 a; F$ v9 k
& e  V% N7 E" p/ ], C; P2 q8 A* Y      UF_CALL(UF_UI_message_dialog("",
7 @+ z& M: Y- T4 x! m( h            UF_UI_MESSAGE_WARNING,6 @9 V  j, B5 r- t: m6 ?% c
          &material_msg,
& r9 s2 }. \5 v1 y            1,
( u/ g. U1 s. T  }) h2 h( b            TRUE,$ b' w+ U1 C  P) w) i2 F) X
            &buttons,
+ u2 {$ H3 H; n             res_mes ));& C; j7 v$ R6 U- _8 v& Q8 x
}
: N/ A1 ]: W/ i& ~16,选择过滤: F8 W' x( q0 a; G& g& ^/ P* v, J6 g5 W
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
& E; Y" D- l  d- {$ l{* u; z6 Q& F8 t8 y0 C/ e* _- d
      int nums = 1;2 k2 z. S1 z# v
      UF_UI_mask_t masks[] ={' m: c4 i! Y1 l9 q, }" g
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
0 J0 F9 W3 G  @; z, O3 K2 x
$ h& Y: |2 L; \. S8 f            if(
  s6 m( d7 o' q5 ?                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
* y* M3 Y7 M2 v; P: l" I                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
& Q% r5 {2 |" W: N2 C8 u                  )5 l3 w3 U. q6 H, B
            {
% L+ m6 Z3 y  t                  return(UF_UI_SEL_SUCCESS);
0 Y3 G+ B& B, M2 {( a  ?            }0 u! e- m  q4 d
            else- Q4 ~8 _( V+ G: C% B; g
            {     
. U8 C+ k5 h& B5 W' n                  return(UF_UI_SEL_FAILURE);% t" z9 ?. V! {+ y7 L
            }$ x) u/ D" E  @. D- F) O- t2 @1 P
}
$ V5 w0 }/ P6 uint find_tag(: B# c0 U% |  ]$ V( u7 U
                    void * client_data,//用以传输过滤资料3 [) ]/ Z: F* A& Y! D% b
                   tag_t object//现在鼠标所选物体ID
7 ]1 P  L9 m& y. y8 V2 G                   )0 p- j5 f% g# }' Y. t4 H+ \
{, m7 W/ U) @0 F- v
      user_data *obj;
8 k: h" d3 N0 G8 ~      obj=(user_data*)client_data;5 p; ^, t: ]3 k7 G+ G- x( ^4 g; P1 t  \
      int find_face=true;//接受2 a! j1 a5 U& u4 l  @1 b8 g
      char *string1;
- \1 o* T" v& W1 L& h      string1=newchar[133];
$ O3 r* Q( m' N' H& ?; S$ A      string1=UF_TAG_ask_handle_of_tag(object);' Y! W: t( f5 l& |
      for(int i=0;i<过滤的数目;i++)$ h& M2 h6 x/ X, ~. L
      {
5 `2 s' R: a8 F6 |/ P5 B
: H# |4 ~, b: m8 c9 Z) o            char *string2;
/ b7 F1 b9 H7 @# B& h/ a  R- W            string2=newchar[133];( k7 p- a5 w0 A( ?) `1 j; {* E. U2 t
            string2=UF_TAG_ask_handle_of_tag(物体ID);) |2 n3 B- O- }4 x( @) a( k0 W
            if(strcmp(string1,string2)==0)
1 e+ e; @9 C: o            {0 E8 ]) P5 H& D0 X2 J: s
                  find_face=FALSE;//不接受" v& X1 `" ^. }2 C8 e
+ u6 A% x: H7 A" |
            }% i* g9 ~" u6 r& J  h! o
            delete []string2;
5 G8 N* ?; i! P0 q9 r      }
$ x! f4 M# f. c; E      delete []string1;
+ g9 [) R$ E, Q2 n2 i* o      return find_face;, z) O) {! ?& H6 x* ]- B* C
}
. Q% a& _" ?" z/ w
+ g  Y$ k- n+ F' K" E
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

寂夜孤星待天明 发表于 2017-3-2 13:15:39

寂夜孤星待天明 沙发

2017-3-2 13:15:39

z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持z支持
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了