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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

. Y" [8 S! y0 o$ ]7,裁剪片体
' K. Z& }9 j" [( B( F' p/ ytag_t  *trim_objects;
1 O2 l7 g/ g8 w( k( F( W; F9 m, ctrim_objects =new tag_t[count];
! L( b5 j, F$ U$ a( Rtrim_objects =bound_id;0 p) V- l$ o# V! L! e( W; o3 }) l
voidtrim_sheet()
6 W; @& n5 O1 A! ^. F' [# H{
0 t$ }3 I* q  J- X. d  a, \7 t9 t
  c1 Z' ]! A3 X1 C4 M! W. G, B      UF_MODL_vector_t projection_method ;: `5 R' S/ x) Z6 K( O$ N$ g" g
      projection_method.reverse_vector=0;2 I/ D8 \, Y1 a( U3 c. m* `
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;- X) M1 s5 Q) ]6 q- m. F
      UF_MODL_vector_defined_by_union_tdir1;
2 `* I/ W8 H/ X; M      UF_MODL_vector_direction_t dir2;
2 A, }3 @0 K* M  j! q      dir2.xyz [0]=dir[0];% N% e9 a- U3 d" T5 [6 `" G
      dir2.xyz [1]=dir[1];8 |  Y% h5 A9 \; s
      dir2.xyz [2]=dir[2];
( n0 i' U0 R3 |      dir1.direction=dir2;
4 j7 G' @7 d) m/ u. c0 l/ ^, j% j+ X% H, s( B; B
      projection_method.defined_by=dir1;
! r6 S3 e% \% i" d- F( h1 a4 M) H& D; }
      double point_coords[3] ;/ M2 h8 s. k6 W( f6 L" T& r& G
4 {, N5 B8 _( H5 _" p2 f
      point_coords[0]=center[0];
+ w  U* K( R) Z0 B      point_coords[1]=center[1];
+ k5 V  {1 S/ b9 ]; Q5 |      point_coords[2]=center[2];3 b2 Y! x* P5 g  S* N9 e4 h
  b' _) R2 D/ T$ J
      int gap_point_count ;
, B. G) m& k" w: X# Q      double *gap_points;# a5 L( s. ^& R. R, e8 n( h/ w
      tag_t feature_obj_eid;
2 {5 K  `5 ]- V# y0 m5 A      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
* W& o9 y4 \. R                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);, w- `! O& U6 o6 B
" v1 }7 P- l# t# R' \6 q' B
}5 U( ^5 L; a. I9 h7 V* D' g
8,offset偏移
, e" D/ a+ Q  y! n; `
$ V9 m3 f3 {6 i; Nchar   distance_str[] = {"10.0"};//偏移的距离; ~' d; I7 V& u+ h
. _$ @$ G$ ^6 ^# b; Z
int  num_curves;
7 q! V9 i) q! n5 P  y( qtag_t *offset_curves;
4 E+ u4 b9 u5 k9 _) d: mUF_CURVE_offset_distance_data_t  offset_distance;6 x0 l; f7 _& C  B
offset_distance.distance= distance_str;
; L1 Z) R% r' b7 Roffset_distance.roUGh_type=1;/ s' _) ]" {! r
UF_STRING_t   input_string;, g7 l; k+ c) Y/ H9 }/ ]
input_string.id=curve_id;//加入想要偏移的线
! C3 g6 T% L4 e' R- Vinput_string.num=1; //偏移矢量方向数量5 h, @& d: [4 a
input_string.string=&string_count;//偏移线的数量! N  _) d) ^0 K$ q4 x* h
intstring_dir=UF_MODL_CURVE_START_FROM_END;
: c3 u6 E, e3 c" {# }/ _input_string.dir=&string_dir;0 A* P  V- R; N+ v, Z+ M5 j$ _

9 d( b2 w% V& |( F4 K( }UF_CURVE_offset_data_toffset_data;+ m' @5 w" @  O' y6 X) v
  R) j6 h/ K2 [, ?
offset_data.offset_def.distance_type1= &offset_distance;+ i% i2 @6 w: r* l- U
offset_data.input_curves= &input_string;" o, K# n3 l4 p: ?
offset_data.approximation_tolerance= 0.01;# U' ?6 w' t7 [3 Q' H* b
offset_data.string_tolerance=0.001;; G! ]* y, G! Z5 g2 n
offset_data.offset_def.distance_type1= &offset_distance;
2 f0 O0 b5 u! Hoffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;: M: M8 A1 E0 H
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,, D8 {4 N7 Z6 U( x8 y7 h' T
&num_curves,&offset_curves));
, F* P2 V7 E& e. ?1 `% w9,创建平面) G/ F( h0 Z2 l
UF_STRING_tgenerator;
# v: q! V2 V' z( p' [: W8 c/ yUF_STRING_p_tge = &generator;
3 f  U- S  \1 K/ ~2 Y- o: O
' ~6 I) ^/ o* R0 UUF_MODL_init_string_list(ge);
& _3 ]/ M! G/ @. BUF_MODL_create_string_list(1,12,ge);
' K0 c! w/ j" i6 Q7 @% W; \) R- G  `+ f, k  r
ge->string[0]= 1;
( ~  Y6 m8 N, k+ D5 G9 m, ige->dir[0]= 1;//指定线从开始到结束& P: {; n0 |# d' y5 ?0 a
ge->id[0]= arc_id;//指定边界的id
3 s& H% t& S3 L8 T! ]# idoubletol[3];
, g, J  H1 g) M' D3 y. U9 @. R6 |tol[0] =.001;//直线公差
3 B$ M! g) P6 |5 a! e  s1 P' ~tol[1] = .5* (PI/180);//圆弧公差6 J6 H8 }1 K" q8 _* O) M, B( l+ R
tol[2] =.02;//不起作用
5 B- k  ], @, n) T9 xUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
4 A- v8 k7 c, h: x5 Y& Q& I+ ?  ^. n! Y4 q10,选择
6 `3 ^3 m% |* o3 f! ]1 I1),点选择+ F( t7 e' C# x! G7 w4 h
tag_t point_tag;8 K7 K) y" E. X+ ]/ F# a; Q
double point[3];
3 x2 {4 ^- R0 b8 l' F) `' G       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
' l! `8 I5 W3 c       intpoint_res;
& R* R  c, M+ P. W4 F8 N& r, C/ n7 {* B, z$ v" _8 [* D
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
8 U! f  T4 q! p8 y5 F" Y% }point,&point_res));4 V4 T1 |  q0 X6 f. v# x1 _. j
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
, Y& X: Q. `$ S{( f8 I: V, d. @. H
}6 {' G" @* U4 w. q% v
2),向量选择% c% q. o9 h9 [6 J5 o2 Y
     int  mode = UF_UI_INFERRED ;! I/ M& [3 Z/ I  s$ @3 n
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;+ H5 O+ T4 f) N: P3 q+ r
double vec[3];
9 A" l! T  d7 {2 _double vec_pnt[3];% F$ n7 `9 ~- B0 g. P* P/ w1 f
int res_vec = 0;+ Y: h# e' Q3 ]- C
     UF_initialize();  9 C, \) ?' @- Z
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
* p$ u6 a2 r7 |# M# i# w4 p) M           vec,vec_pnt,&res_vec);
, E& X* w+ F1 b! f; ]  [     if( ifail != 0 || res_vec!= UF_UI_OK )   " O( p( [& r, Z2 k
     {     + F1 [  ?  n: ~
           UF_UI_ONT_refresh();
) @  |# }, t9 O, G4 B           printf("No vector selected \n" );
+ c  y: E0 O2 Y     }
5 F) g# v* W: P' P) ]$ I: r     else0 d. c/ F8 d4 p5 j" G" _! D
     {
* m, D9 n5 A6 ]/ {; O) z0 f           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
/ k5 _; \* i& @+ a6 c- ^                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
# v; Y! T. s8 n; [, }- W}
4 b3 N* F, Q2 ~3),平面选择
* M' @9 @( O! Ltag_t plane_eid=NULL_TAG;
( g, A+ a8 F, c, zdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
7 Y' E- o6 [( _/ D   double origin[3] = {0,0,0};
  |( C: K* |; S6 B   double pts[6] = {0,0,0,0,0,0};
* J3 B5 U, F* y3 H) n8 B   int i, error_code = 0;
" O1 v! u+ f) n   int mode, display, response;$ j; M* y. a/ X1 m+ s
   mode = 1;                    
4 B2 B. ], F$ N+ C9 o# _) n+ {4 bdisplay = 0;      4 F4 I- z- R2 t$ n2 M  w2 `
UF_initialize();
8 y8 r* H1 f! c* E   error_code = UF_UI_specify_plane(% N* q# k: r' g5 c
         "Select Plane", &mode, display,
1 X! M2 v/ u+ w/ T6 L         &response, orientation, origin,&plane_eid);
" n3 a  Y+ U( x5 J  L3 S6 s2 F2 e7 Y  D6 x
   if ( !error_code && response != 1&& response != 2)
" I9 Z6 @9 o1 V" ~3 ~' d9 A   {3 W4 X) r- J- M. g: S
                     for (i=0; i<3; i++)5 E& Y8 \' k. ^1 k! Z
               pts = origin + orientation;
' }( m' Y7 q4 n4 a8 Z8 `! N- U                     for (i=3; i<6; i++)# P6 x3 G/ l9 N' l
               pts = origin[i-3] + orientation;- X* w7 [; v5 `( B$ d* }
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);  S6 @- E9 P* x  _# ^' R" m7 J
   }
7 g- n, F$ b! M& q* ]11,临时点,线
; O% |3 y1 c- ?5 \- L7 _; n, L+ Kvoid display_temporary_point_line (double point1[3], double point2[3])
( e. x# a) N7 J{$ @" g: O0 a- f* ]
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
0 x' i4 ~1 S4 s  s" u" G* i  UF_OBJ_disp_props_TColor;# I! V. C" N9 ]! N# U% |  J# d7 V
  color.layer= 201;, ?- c4 |/ D/ Y( n7 B
  color.color= 186;
" T6 N  A% n( E) {2 B7 x4 M  color.blank_status= UF_OBJ_NOT_BLANKED;8 I0 ~' O* M5 R1 a' k8 ?# ]
  color.line_width= UF_OBJ_WIDTH_NORMAL;
; Q8 a5 Q" k! k8 a; Q$ P* w  color.font=0;
9 K; f& Q& ~& S. R, F& |, h  color.highlight_status= FALSE;2 Y+ l7 B7 u3 X4 J
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
# n/ @% G: ]. {  i0 k) R
+ h# f2 x, _' l: dUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);/ N  g5 v, S' Z: j  T2 x7 l" w
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
) F& s& ~$ D) q' tUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);. L- O: `# E) R& h( Y( E, \( D2 M
}
# r3 D, f# p0 c9 E12,WCS与绝对坐标转换* \: s, \4 i# f; n% E) k3 t- X$ d
                        voidcycs_wcs(double point[])
# C2 M. G2 x0 E{
* y2 W9 h& h/ }      tag_t  wcs_id,matrix_id;
9 t; P9 M  v9 W. x      double matrix[ 9 ];
* m  _% V, ]& e( P- P' U  H      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
/ Y$ r$ J+ j) D4 R- r4 f      double wcs_origin [3],vec[3][3],point_origin[3];
) @5 J3 J+ U; N" m/ w      //1,得到工作坐标系8 n2 O8 H; s3 t6 o  ?
      UF_CSYS_ask_wcs(&wcs_id);5 ~0 g4 X( G6 Q$ I; u4 o
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
2 x- C+ l( Y9 K  z- x; Q% L- o# Y6 ~      UF_CSYS_ask_matrix_values(matrix_id,matrix);
  W2 ]( R: {2 F' J+ h, A. H& }4 G6 y8 `" f# M! C% Z. ~
      //2,得到工作坐标系轴向量
. i. h$ E/ I" @6 {2 I- T8 p      UF_MTX3_x_vec (matrix,vec[0]);7 R. \+ \% E# Y. F) `( q
      UF_MTX3_y_vec (matrix,vec[1]);
& a7 b# u" ^& ^- k* Z0 r: u      UF_MTX3_z_vec (matrix,vec[2]);1 L9 e/ Y! d  \9 v

0 v$ V+ {2 M# |- x/ F' \' ~# s      for(int i=0;i<3;i++)5 U) ~3 k/ ^7 a
      {     
% V; S% k$ L# y5 Y% C0 ^            double tol;
* j7 \; z8 ~' A//3,得到点到工作坐标系原点矢量
1 C5 g* P4 N2 p7 |# T" [            UF_VEC3_unitize(vec,0.000001,&tol,vec);
0 M' t' Q- w) X' ]; m5 r//4,得到点到工作坐标系原点矢量
( N; ?2 ]4 v# p& {9 q  ?. p) @& K  ]            point_origin=point-wcs_origin;# s7 ], ^3 W  V, I% ^. v0 }
      }" k8 s+ X8 v, I( T/ m! {+ F5 C
      for(int j=0;j<3;j++)0 B" V, I' x1 ^9 ^) l. u8 t
      {/ U% h" p- N. f! `; K; g
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
  E% s6 n5 q! s      }) @+ e, j+ A: n; Y( H) \- B0 B! H
}3 G; _& g4 [( f+ C
13,三点求圆心7 W# e' \1 r5 ~' N- I: k4 O
#include<iostream.h> 5 n( }( `8 Z0 I% ?: X0 m: n
#include<math.h>
! i6 P* M5 t6 c  ]7 ?; \
. o# m3 Y, R* p1 a/ _1 x# f; gint main()
3 Z! m( ?: W4 U9 k' Q* A# _1 ]{
0 b6 H  L7 @$ ]' }; @: N      int x1,y1,x3,y3;: K; H. ?, E* W: K- I
      double a,b,c,d,e,f;% J6 p# V6 \/ S* N" \# u- C
      doubler,k1,k2,x,y,x2,y2;
& K: K) h" P8 `2 C3 c. x; @9 x      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;- n& _: a3 U. _$ t$ `
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
$ G( ?8 u& T7 W7 e* C      if((y1==y2)&&(y2==y3))8 j( E( R8 p+ B* e  |; ], H
      {
/ }4 h6 Q9 l5 y' V8 y, z( _0 W0 W            cout<<"三点不构成圆!"<<endl;
$ K& n- z6 n7 ?6 W            return 0;
. R* V* B( R6 G( E2 j      }3 L4 t% a2 ~2 D. z$ J' V
      if((y1!=y2)&&(y2!=y3)): y7 R/ [2 m0 L" t' A
      {
& P, q* w0 Y5 J/ U) t# f. T* F" e            k1=(x2-x1)/(y2-y1);7 f6 J. \$ f8 Q5 i
            k2=(x3-x2)/(y3-y2);
3 a; {/ l9 i  ~4 e      }( t* u- {  S. I/ k
      if(k1==k2)
2 C8 {. l9 w+ ~- o! K: I+ `" C0 R      {: Y5 P) w8 T( o: }
            cout<<"三点不构成圆!"<<endl;) x: c9 c3 [7 a2 A5 S
            return 0;
; n0 I% V+ v# |8 d      }+ S5 o- s% i; N+ G7 O1 I3 i
      a=2*(x2-x1);4 j# {6 x' v+ E8 L- o
      b=2*(y2-y1);
9 p# ^% U/ ~+ z      c=x2*x2+y2*y2-x1*x1-y1*y1;
: k, C# n: B$ b      d=2*(x3-x2);0 ~; C- {. [9 P7 ]" K  [7 B, s
      e=2*(y3-y2);- t3 x- _4 O+ u5 j2 U
      f=x3*x3+y3*y3-x2*x2-y2*y2;; S2 z0 r5 A  x  a  @
      x=(b*f-e*c)/(b*d-e*a);
) n' x! |5 b/ }( |      y=(d*c-a*f)/(b*d-e*a);
1 O$ f+ c; K; W; N9 u. n7 @8 k/ q      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
0 U9 W2 {1 w& _, N+ ?% p      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));0 W  |" B' s! @7 K! i
      cout<<"半径为"<<r<<endl;# t- C+ I6 B* H8 ]
      return 0;! F5 h7 J! }7 R2 R
}5 G5 F3 s0 O6 O0 [5 G) ?6 l" `* y
14,查找圆心+ S. {3 ]) @) V7 j
            UF_EVAL_p_tevaluator ;
7 W8 y& Y. o  q1 y2 A$ g            UF_EVAL_arc_t arc;6 f9 ~5 f  [4 A, t
            UF_EVAL_initialize(obj_tag,&evaluator);
. C9 A0 o  P! K! _$ d            UF_EVAL_ask_arc(evaluator,&arc);7 |% X+ D* w4 m% v5 `& l
            UF_VEC3_copy(arc.center,point);           ; e0 N. M- h, c8 a9 q4 D- H
15, message_box
# p  ?  a" H7 t8 t9 c+ a* h/ fvoid message_box(int *res_mes)
4 F* m/ @: [; @5 s5 G{
" \- R, U5 p8 I' U- j2 P8 q      UF_UI_message_buttons_sbuttons;; `( e$ L9 s1 f3 `. r
      buttons.button1=TRUE;
/ A" i9 P# n2 K9 g7 X$ Z( `      buttons.button2=FALSE;
5 ~; y# h( t4 W+ z4 w. s      buttons.button3=TRUE;
$ ?' _( S, ]3 [5 z  S) J
! m, G8 n0 n+ O6 s$ G      buttons.label1="OK";3 u( `! p& a- N- i5 z$ b: K
      buttons.label3="CANEL";/ Z* ~1 g/ l- S: o  \  B& i% [

% ]. x6 d6 ~+ a/ A9 V. N* ^$ [      buttons.response1=UF_UI_OK;9 m9 {5 r' i' \+ z- m9 S
      buttons.response3=UF_UI_CANCEL;/ G5 ]  U6 Q6 a* e
$ e: }' N3 i7 {, ?9 h8 \& ^5 c! `2 q
      char *string_msg;
( _2 J* G* |" [8 E% K1 d, U0 \      char*material_msg="ALL selcted objects will be removed";
$ l: {2 _2 |- f7 A      string_msg =material_msg;
& n6 p( n7 [/ c" }& B/ w$ F- e$ H6 W/ s" p% J( ^! ]
      UF_CALL(UF_UI_message_dialog("",
/ ~* u! ]- L( q# N# w9 o            UF_UI_MESSAGE_WARNING,; c0 I5 M* u# s1 k
          &material_msg,, T" b5 q  i. Q% @- ]8 N9 N
            1,
+ i1 B6 S; {+ R: Y) D. E# y            TRUE," s6 `3 T) [! P  y' I+ _) T
            &buttons,
) e. p& j. ]6 R) w4 |, L; u' U             res_mes ));
$ u3 a7 W. w2 a1 [% N3 j}
( I, d$ R* G( Z  R4 O" |4 U16,选择过滤
! u5 x- U. D& ~5 p) H4 U* H4 R( estatic int init_add_face( UF_UI_selection_p_t select, void *client_data)( a# a6 j& x- N4 F0 u) I6 i8 X
{8 `8 A/ O: d; B
      int nums = 1;
3 p3 d7 V+ Y3 {, u      UF_UI_mask_t masks[] ={
. m/ n+ ]8 H, h$ Y            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};2 w0 n/ k, H, A& H

! B) ?) q5 u& w7 _            if(
& k8 ?  r( X! b: V6 k                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)- @* z) ~5 a( |
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
3 q/ }, x, P5 G3 p2 e                  )
- [! n9 k! ^# B. J" K            {/ K) y* [. v  P* ~4 Q7 D) [2 t
                  return(UF_UI_SEL_SUCCESS);
5 C( L/ _. J; `( g- H            }% L$ G8 q" t8 N8 y
            else
0 o4 H& k6 U/ [; L1 ^            {     2 T; k% X' Q# c2 ^4 g/ V
                  return(UF_UI_SEL_FAILURE);
* K4 a8 s& ~) X7 q& w5 V            }- C; Q% S, c5 y; }) U! W; P
}) `3 ^4 f" ], R0 f
int find_tag(
- r! f* _2 g4 n* {2 ^# H4 d0 N                    void * client_data,//用以传输过滤资料
; U/ B* q1 N5 M) b& a6 F3 J                   tag_t object//现在鼠标所选物体ID; z  Q8 w; R4 z! k0 i9 c
                   )1 W7 ~: p& T; h) J: x
{
, b" R, `  T2 L$ O. ]      user_data *obj;( c7 @* k/ G8 y  B# I1 j
      obj=(user_data*)client_data;
4 H% r) Q# k5 q- K3 P6 j3 O- g      int find_face=true;//接受
* C8 H* H* y7 z- ]) x: _  W      char *string1;8 c2 ?: o' F/ \! E: f# \
      string1=newchar[133];$ O5 P% x% ^5 r/ `9 l
      string1=UF_TAG_ask_handle_of_tag(object);1 e  x- W1 \( m8 N6 [. z
      for(int i=0;i<过滤的数目;i++)' }0 i+ ~& G  w  e/ j
      {
$ H- ~. C0 x9 k
6 b9 ^, @; {& i* V9 g/ ?$ {& o) Q            char *string2;
/ U4 F; ^# v' ]4 k9 L            string2=newchar[133];9 S: r: b% \. e+ `1 K& q
            string2=UF_TAG_ask_handle_of_tag(物体ID);& j  ]' B- ~0 Z; {, f
            if(strcmp(string1,string2)==0)
  Y0 F% Y" Q) p3 T' }            {
" j' v% k8 i5 V$ a3 I" N' i+ [3 {                  find_face=FALSE;//不接受
" T) i5 s6 D0 Z0 U5 u7 h
# x6 {9 ~- n, F0 x            }
/ D+ j1 {% C! v, N" L. u            delete []string2;
4 e/ c/ R" p! W7 a# w+ S8 T      }
* J* U+ p: y6 e+ N      delete []string1;6 B  B0 R  O: X$ H6 Y
      return find_face;
; p) u' `# v; Q5 A& D( p) P4 ^; c}. m2 `- d7 g. O* Q0 T

) `3 R( G4 a+ k9 e& ?- j, ^5 e4 \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了