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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
# o* ^* Y- @9 I! }0 k; c2 \
7,裁剪片体
% M8 G" i5 c& V- Etag_t  *trim_objects;, U; i9 v; M8 t& K
trim_objects =new tag_t[count];
" G2 N' K" B! Y, n: S9 r# Ktrim_objects =bound_id;4 M1 R5 t/ a& U4 ]. Z
voidtrim_sheet()) B) w% \4 Z3 K; d
{
- A6 P; v& P9 J& {# v+ n+ \
7 D8 z' d4 v! P' s0 ~2 t' K      UF_MODL_vector_t projection_method ;: r7 p$ L7 ?9 c! G4 M6 G
      projection_method.reverse_vector=0;" A" Q8 V; k& q, f6 K9 E
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;! B9 S8 u* [! I: l0 q! _
      UF_MODL_vector_defined_by_union_tdir1;1 N# e/ f  h% P& S, W
      UF_MODL_vector_direction_t dir2;5 y$ \# v! |; Z3 t
      dir2.xyz [0]=dir[0];2 F  {6 d/ q6 C4 D- X
      dir2.xyz [1]=dir[1];# q6 J1 _" p( Z. q2 e9 h9 [( i3 O
      dir2.xyz [2]=dir[2];
; x6 B! O, p$ u; }& }$ t8 e      dir1.direction=dir2;
: i! @: [, B6 Q& ?7 p5 q% P4 I! Y8 s4 M* c5 a0 b
      projection_method.defined_by=dir1;, F, i5 B2 P" @; Q8 j4 D/ }2 p4 B
. m( B" j2 `2 U6 {$ l
      double point_coords[3] ;. H& G2 ^. q# s

+ y0 V* B. ^9 B& e      point_coords[0]=center[0];2 g5 f7 a5 i+ \: n; l3 n* A1 R
      point_coords[1]=center[1];+ J" C+ N# i6 t. b2 }" A6 R. I7 y) ?
      point_coords[2]=center[2];
  M6 z/ ^& w: Y. P1 A5 F! z8 B. L9 I2 o! C, }6 L# v, g
      int gap_point_count ;
2 J  D9 y; [, w% Z      double *gap_points;
8 h: n+ D6 q: Q- n      tag_t feature_obj_eid;
. C2 N, ~$ n4 O' O( w4 a      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,% w, O; w: @* r% m, [
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
0 J5 F8 C  f8 x0 ~
/ ], C# P9 m: p, Z, Y3 C# C& u4 ?}
; [1 k. J/ v2 d7 h: ]7 T+ U' m8,offset偏移
+ b, l7 Y$ W" |. `- Y* t# C) a. J, U+ T. f! s( g
char   distance_str[] = {"10.0"};//偏移的距离' m# |( E- w# B8 O: _
; Q9 y6 V- `- P% a
int  num_curves;, T; [# r! n" o/ S9 h
tag_t *offset_curves;
) _, O) Z5 h: S( _2 i0 M$ ^UF_CURVE_offset_distance_data_t  offset_distance;
; X" B5 d: I3 q7 _" b* R2 P' {# Roffset_distance.distance= distance_str;
& G5 f, P( i) v$ s4 T# b1 F  ~offset_distance.roUGh_type=1;
: V; j3 g# q% Q( GUF_STRING_t   input_string;# _7 _1 |/ j3 W/ ^$ e  p9 q
input_string.id=curve_id;//加入想要偏移的线
* }9 o4 V5 H4 {% A. j  D. d7 k' r: Sinput_string.num=1; //偏移矢量方向数量: c# R( e9 u7 b
input_string.string=&string_count;//偏移线的数量* z5 v% b) c! O& S
intstring_dir=UF_MODL_CURVE_START_FROM_END;
" W3 f" l/ Q. ^3 v  K1 Vinput_string.dir=&string_dir;6 o+ ^0 p5 i2 K, f; s

5 g4 }  d) |9 s1 V, \/ g. f, S! [UF_CURVE_offset_data_toffset_data;
4 z: q5 m. l& l: s
: |2 @0 ~$ B- J& M6 w. X) c. B) Qoffset_data.offset_def.distance_type1= &offset_distance;) o* Q4 f& a$ ^" \) f+ j( }
offset_data.input_curves= &input_string;
2 Q' u% u2 Z" h" doffset_data.approximation_tolerance= 0.01;
6 P: p7 e3 I! O7 z" v+ a3 I* Eoffset_data.string_tolerance=0.001;
% c9 A& p  s- i) |9 u) Q6 e2 joffset_data.offset_def.distance_type1= &offset_distance;
( D/ H7 Q+ I9 G% p4 i( j! _5 z8 coffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;  l. h: R8 D, y4 R
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
2 t! T8 V# g9 K$ g- V( _: M, g&num_curves,&offset_curves));
. w1 K$ w  y, K9 j: c$ \2 C/ @9,创建平面+ L: j: M# q( j- D& k
UF_STRING_tgenerator;
/ P( m# ~, j6 O- M  p; P* kUF_STRING_p_tge = &generator;
3 k* G- M. |( U+ [  @+ ~* ~+ x& f
/ v( w( {+ ~2 _, S8 t/ LUF_MODL_init_string_list(ge);6 h8 F( b  f8 M9 F2 H5 r
UF_MODL_create_string_list(1,12,ge);' K1 W& x- T9 I* B! h2 n7 Z
0 j7 {2 @. I# p+ x* Y& l' ]
ge->string[0]= 1;8 O6 N$ V6 N' d& {
ge->dir[0]= 1;//指定线从开始到结束
8 u( J/ o4 P" o7 S6 z$ ege->id[0]= arc_id;//指定边界的id0 S  s* R) @: |
doubletol[3];3 s" Z) j* Z+ A2 J7 C7 d' X) ^
tol[0] =.001;//直线公差
. T  S6 n3 Z7 V% Ytol[1] = .5* (PI/180);//圆弧公差
' q* E8 M. Y$ r; ~  N% s+ t. J# ~tol[2] =.02;//不起作用
, g; e% a/ T2 a" G5 ?1 C9 b3 w+ uUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));0 C! o; B6 G  ^
10,选择, u; V/ D( l: a! z
1),点选择+ V7 C& C7 `/ h
tag_t point_tag;/ Q0 f3 J2 r0 a) f
double point[3];
. b' {" d+ K6 X! Z" f       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
( X: x' [  _8 a" m- \2 a       intpoint_res;
& F, r/ U$ ?4 B- T" d2 s6 d) v
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,& V* I- k5 ~! |- D+ K3 f
point,&point_res));
0 e; V; Z# t  j; eif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
3 P) o2 w  \/ C( ~$ |2 }8 L$ e7 `{: e7 t( q7 u* }/ W" n
}9 N! a5 w3 k1 E6 E% u- \
2),向量选择
4 ~% ^* @* G! e2 g     int  mode = UF_UI_INFERRED ;; p* F2 f: L# H7 b
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
/ |) k5 V$ R& a) {/ ldouble vec[3];! C$ x/ H8 t* {+ m
double vec_pnt[3];& D, e) s+ o6 J/ S
int res_vec = 0;/ E0 L2 K2 b9 \2 \
     UF_initialize();  $ e* q0 ~  v& M0 o8 ]. m1 [
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
  }, V4 A/ M2 T           vec,vec_pnt,&res_vec);
8 }2 N  o5 |0 [1 U     if( ifail != 0 || res_vec!= UF_UI_OK )   
. _2 R3 Y9 h1 ^; w& @* Q  W     {     
% f! P/ x9 B+ `' @           UF_UI_ONT_refresh();
! }- a0 e7 S3 o4 E; _, G3 k9 O; V           printf("No vector selected \n" );) `8 P4 f7 }# ]& i$ W
     }
. j  b+ Q$ y" F6 M/ V     else8 k5 t. v' [, l$ [7 n5 w( Y
     {
/ x6 c- S  [4 \& M* [- I1 m5 W           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
+ r' O- W. y, n                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
3 N6 v+ K6 r# K* z6 ?}$ q' J! s1 H4 x2 U0 c6 t
3),平面选择: m/ O, I) b" i# j% n
tag_t plane_eid=NULL_TAG;3 `5 g' v3 g2 Y' A2 Z2 ?
double orientation[9] ={0,0,0,0,0,0,0,0,0};9 i8 C4 B( T, t5 L+ r
   double origin[3] = {0,0,0};* S' }; [; n8 y! [! R: A0 a: v
   double pts[6] = {0,0,0,0,0,0};3 l" @3 |9 z" v# P8 \* D6 z  A3 E
   int i, error_code = 0;
8 s" S( Y/ Y$ R+ V" B5 s   int mode, display, response;
  J& F! r7 A; j; Z6 d4 W8 f9 ^   mode = 1;                    5 i7 {+ S  ]9 T" o' l: y
display = 0;      
: a  ?. B3 \/ _  V7 @2 YUF_initialize();
& |2 O* y  e$ X% [6 s- M7 L   error_code = UF_UI_specify_plane(
! `' m, X% V: j6 P* m: [         "Select Plane", &mode, display,
( c  s( A3 I! @         &response, orientation, origin,&plane_eid);, o3 @  [$ m3 F% [
& }* p7 d: u4 ~; h) l+ E& N: Z
   if ( !error_code && response != 1&& response != 2)
$ @5 u& v5 c" t   {
5 c7 c% F: h" Z1 q4 C+ m; [1 {6 Q* f                     for (i=0; i<3; i++)3 s$ y6 V1 {0 V. f
               pts = origin + orientation;" P+ s; J+ t, l- O+ Y; e. {: S( h
                     for (i=3; i<6; i++)7 S$ v8 g8 M2 x% W4 W% W. P
               pts = origin[i-3] + orientation;  l) L: p+ M) Y! T
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
9 j; Q0 s1 M5 x5 V" Q2 x0 {   }5 |7 E/ }  w6 H5 A
11,临时点,线" n4 f2 A% @; Q8 k: o# B- R8 v
void display_temporary_point_line (double point1[3], double point2[3]): q/ @* W7 u3 r( f
{! [; p" x" k& q. t7 u/ h+ P
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;2 A: y4 A. o' Y  m4 i
  UF_OBJ_disp_props_TColor;& a* `% {& s6 X( b
  color.layer= 201;) h# P; J% C4 j
  color.color= 186;' z2 R0 c7 d7 N* u3 E. T
  color.blank_status= UF_OBJ_NOT_BLANKED;
! a: X8 C. M& b0 K  color.line_width= UF_OBJ_WIDTH_NORMAL;
3 j( G% B- |1 y) x+ \1 w  color.font=0;
. }) Q, E1 V, p: j. L4 {  color.highlight_status= FALSE;1 S/ E( z) C+ K# C) N
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;7 v. ^$ F  k- T& A( s4 t& @  ~

) |, k* s+ k. I6 X" lUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);/ {1 z8 O, O) a, T
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
8 G, \: u, X6 _( k4 [( jUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);# |: w4 G2 Y7 Y/ s
}
$ H& v# h2 H$ Q) K) ]12,WCS与绝对坐标转换6 k& f$ M' K* I+ i$ B
                        voidcycs_wcs(double point[])
' Y& ~6 Q, Z# [9 K& }, W{
' D% Y* D: |8 F: l2 k( W5 y      tag_t  wcs_id,matrix_id;  C, F/ a) q0 W( [& B4 u# [
      double matrix[ 9 ];
; }* g( ?/ M8 ^$ U  m# r      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量$ h+ T* n8 ]4 a5 U; V9 r
      double wcs_origin [3],vec[3][3],point_origin[3];
2 l/ k. B4 {8 W. k) X      //1,得到工作坐标系; [1 Z% F2 ?/ L& w
      UF_CSYS_ask_wcs(&wcs_id);
8 h- q4 h, p* H9 j: _* ]      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    ' [* X3 N) f' u  N- G
      UF_CSYS_ask_matrix_values(matrix_id,matrix);( ^' O7 g8 r4 `8 b
, H( y5 {) m  j. {( C1 h. }
      //2,得到工作坐标系轴向量0 a0 r! P% Y% `+ ?
      UF_MTX3_x_vec (matrix,vec[0]);
" G. f& @5 Y# S8 }6 m; ?      UF_MTX3_y_vec (matrix,vec[1]);/ I2 y  S) t: ?+ e0 M: Y: K5 T
      UF_MTX3_z_vec (matrix,vec[2]);) R7 H4 l$ I7 t/ w( q

5 M5 X  Q+ O" |2 {      for(int i=0;i<3;i++)
* F, J9 ^, J" R. Z) e7 y      {     
: B3 K9 H- W: z: P/ J            double tol;
( z! v8 l) K, @: J6 L0 d" p//3,得到点到工作坐标系原点矢量7 v) q5 S, W" e
            UF_VEC3_unitize(vec,0.000001,&tol,vec);7 x# L% L3 D3 d  o( ^' H) D0 Q
//4,得到点到工作坐标系原点矢量
% C% ?) F% T5 b            point_origin=point-wcs_origin;
0 O* |  c3 V. b% B5 U5 D8 y+ i      }
* v4 X8 ?+ }: n- T4 ?: G      for(int j=0;j<3;j++)5 T% Z3 l$ J9 x6 I. P
      {5 I. [) e6 L& \" Y9 ?; ]+ Y- O
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
: A4 s, B3 f5 w. h" @      }, z1 A% u+ z& l  c: p  w3 d
}, }- V0 O0 c% g$ {, W5 B, j& [
13,三点求圆心
2 T7 f9 Z0 o9 X0 `+ C#include<iostream.h>
3 ^; O# k9 x/ t; U+ Q8 _1 s+ s; i' j#include<math.h>
8 f1 g. N* p/ l& ?4 d2 ~6 X; |% q0 d5 R, z% w1 }
int main()
: P& t, O+ `2 B5 ^1 F" C{) a# S& u, F! Z# v( e
      int x1,y1,x3,y3;' I) o  e& |& x" o9 C( i) p" f( Q
      double a,b,c,d,e,f;
6 S5 u/ [# G7 T$ _+ L% L8 q      doubler,k1,k2,x,y,x2,y2;$ {' R- Q' R* |' J
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
7 p" V$ ^/ k& ?: D- h& ^: o      cin>>x1>>y1>>x2>>y2>>x3>>y3;, |1 ~& `7 ~: m& V5 O  T6 ]3 i
      if((y1==y2)&&(y2==y3))
2 t. u0 V9 ~$ X) X, P/ x      {
! d8 ^( M0 c7 I8 X9 r/ c1 V% R- d            cout<<"三点不构成圆!"<<endl;
) ~" }/ ~( y0 K3 m5 b            return 0;
7 t$ e; f6 t, J2 f- t      }; n9 Z- j' n5 _( f
      if((y1!=y2)&&(y2!=y3))8 |$ g+ u% d  ]( o+ `
      {6 \1 F! {" m' O8 E# p! Q8 f" V# a
            k1=(x2-x1)/(y2-y1);4 f- s# S" Y0 a) o, s- j
            k2=(x3-x2)/(y3-y2);
1 y' U) }: ^( d  g: _1 |$ y      }7 Y% V0 q. G. }5 M( W0 T5 q
      if(k1==k2)
4 w. {+ A: e' ]) X- o4 B- F* v      {* p3 J, {" P# ?1 z3 q
            cout<<"三点不构成圆!"<<endl;
1 W1 A7 G( c# L  P# p9 M            return 0;6 l( {. q% L! y4 J7 ]9 I; F
      }& {0 N0 K8 I& B
      a=2*(x2-x1);4 W/ N9 @: O; |. E' A
      b=2*(y2-y1);
  a+ T: r1 w* `5 d% X" g. \      c=x2*x2+y2*y2-x1*x1-y1*y1;
  K: W2 u$ F; b+ H$ V2 [$ T) z      d=2*(x3-x2);
, Q; p. B' v, Q9 r      e=2*(y3-y2);- a' C. ?7 |7 \/ s+ c' D
      f=x3*x3+y3*y3-x2*x2-y2*y2;
; _5 `2 R0 o% \# Z5 d5 I0 u' z      x=(b*f-e*c)/(b*d-e*a);4 s- {$ G: M& D
      y=(d*c-a*f)/(b*d-e*a);2 j( a  h' }7 \! G9 b$ Q
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
5 F; K0 x) j. u, p8 I4 v( _      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));/ {% q5 Z9 i& A+ Y* o( s0 A
      cout<<"半径为"<<r<<endl;' N8 x/ {% [- R: M
      return 0;! ^+ }' @% Q; G
}
( K6 D  }! [5 u% [* x3 j14,查找圆心
" ?. y- d. Y% |0 T) T/ t+ ]            UF_EVAL_p_tevaluator ;
5 t4 j, G1 ]. `# J            UF_EVAL_arc_t arc;. h4 x$ U7 p9 M) p
            UF_EVAL_initialize(obj_tag,&evaluator);0 I/ V/ |! K; e( k
            UF_EVAL_ask_arc(evaluator,&arc);
" \0 e2 @8 a: ]            UF_VEC3_copy(arc.center,point);           
& V. U! t9 L$ K6 K. ]' C15, message_box
( u6 _7 ~/ z0 c' l% d# ?1 Vvoid message_box(int *res_mes)' y. C  `; k6 x# L( T: E. |
{
6 y* L$ P  V+ y( d* k6 j' Q& B      UF_UI_message_buttons_sbuttons;
8 g" S5 @: Y- Z      buttons.button1=TRUE;2 M- t& }! s: ~/ Y. N1 O
      buttons.button2=FALSE;
5 L- M9 V, q- j3 m. _' g      buttons.button3=TRUE;
: I' p% J1 K0 Z
8 w$ Y% \0 |+ I$ K7 Q+ E      buttons.label1="OK";
$ ?8 s/ O$ j9 l6 @; l8 [0 ~      buttons.label3="CANEL";$ y+ m3 @3 s5 }* A9 L: a

8 k1 j. k- o7 n( \  n! C" X" o' u      buttons.response1=UF_UI_OK;( e4 L2 l9 p) x8 k  K- j
      buttons.response3=UF_UI_CANCEL;
; O+ V) a5 o2 y5 _8 g6 _; N6 i  v
/ m# F7 ?2 a! A, b6 p& y      char *string_msg;- k5 v* i) S8 j6 Z$ @: C
      char*material_msg="ALL selcted objects will be removed";
$ n: W3 L6 T' N' i- W      string_msg =material_msg;
2 b5 G; |+ l4 l8 }& Y
( p$ X! ^' Y2 g1 d; O) F# D      UF_CALL(UF_UI_message_dialog("",
: g2 t0 ]0 G9 a+ P1 W            UF_UI_MESSAGE_WARNING,3 @5 N0 @4 D: A; f9 z8 E3 r
          &material_msg,
- l9 G' c" x) E( y0 A) h) U            1,
" ~5 \2 Q1 J0 V$ z            TRUE,4 c. \5 E1 x7 i" b' \( ?/ \
            &buttons,1 e4 M/ ^4 m4 ^+ @
             res_mes ));
8 Y2 t, ^: m% V& @' W}4 z8 L2 z# f0 \6 y, P+ L  {! t
16,选择过滤! Q2 O# s9 ]' D9 x6 w; w) g
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
# A2 B  u& C- W. N) Y{
" g: f& k  M# y      int nums = 1;
" w7 W& N# O" V0 L: n, Z0 V      UF_UI_mask_t masks[] ={
( r; m. r/ |2 c) W8 N. w" N: o            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};; @' m8 W- R% V
, i( t8 T% N: ^3 G
            if(8 h: r% F, k$ N2 `* |& ]( C
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
1 g( k+ e+ Z- ?) R8 @: V  j5 }) q                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
% K$ ^4 j- n, b% D" x6 }                  )
' ^8 N& @( S9 _. u3 Z9 A            {
4 y2 a. I, t: o                  return(UF_UI_SEL_SUCCESS);5 g: p/ f) Z( [2 o
            }; B% g7 R. ]/ x' }: |' L- y( n
            else
$ r% m$ S' R% q- {% V8 ?2 g9 o$ D            {     . W* j5 f# r9 D. [/ P; v
                  return(UF_UI_SEL_FAILURE);
" `. C! r9 e5 ~8 _- r# q            }5 F1 z5 i* h& [
}0 i8 e$ m: U1 z
int find_tag(
5 B$ ~5 t% T! F/ h, j# l                    void * client_data,//用以传输过滤资料' ]( X- d7 @# Z. t
                   tag_t object//现在鼠标所选物体ID
" t. Y7 b3 F+ f5 R                   ), Z6 t. v9 \3 X9 K0 ], q; l
{
$ J# d. p. R  m$ k2 z2 G3 l- q      user_data *obj;* @% _% t8 o1 C7 s3 m: r" F
      obj=(user_data*)client_data;5 @! u+ d" W3 y& I1 M2 X
      int find_face=true;//接受
$ j* b; N! S( s' x$ W9 _  Y      char *string1;
% a) Y* s) l0 n+ \* J/ r, a      string1=newchar[133];
! n7 F0 f; A/ D8 f      string1=UF_TAG_ask_handle_of_tag(object);  i( B! ^) n' ?- H, I; j
      for(int i=0;i<过滤的数目;i++), p# ?+ x: f1 N! x
      {
2 X$ W4 J  M8 S7 j( J0 d6 }. L* y; l( T# p) \) s7 F" H% e+ l
            char *string2;
- e7 Q! `' R' g            string2=newchar[133];
9 |9 T! q% A! p" K/ J            string2=UF_TAG_ask_handle_of_tag(物体ID);
) F" v, E# ^' Z! n6 O            if(strcmp(string1,string2)==0)
+ o7 W; A; K2 q  `5 T/ p$ I- l            {, B$ I0 K2 Z  W2 M6 p6 M
                  find_face=FALSE;//不接受' M6 q2 ^: @5 I! K# Q5 F3 q
2 ^8 ^# b, f2 L( c+ V
            }
6 M3 Z: \6 K  X/ S" S            delete []string2;
0 Q; `9 v6 A1 v5 b# z      }' [" ^& D* g5 k1 k( X
      delete []string1;
  u& j0 @% d9 [* q) [+ a      return find_face;' |  u9 l% }+ Z
}
6 `. i3 e( j, S+ B  P( T
6 ~+ `8 J3 T( |( ]2 N* z9 N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了