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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
( u& K, J9 ~* B
7,裁剪片体
6 B0 G6 _5 n/ }8 B5 @tag_t  *trim_objects;
% w) R5 l  g! G" Z, J$ Mtrim_objects =new tag_t[count];' m) S5 w3 R3 B4 T" r
trim_objects =bound_id;& f# a3 `3 }2 T/ _' f" {
voidtrim_sheet()
) F8 }: o5 J2 y* k3 z/ N" ^  y- Q{7 e/ [) F! E# T2 @& s) V
. |7 s8 u/ z5 q
      UF_MODL_vector_t projection_method ;
) `& X6 Q  |" J1 h% ^5 f1 h      projection_method.reverse_vector=0;
, S+ U. Z1 k% t8 u' p8 E  D+ j' G      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;' w0 y0 ?7 O* r0 a
      UF_MODL_vector_defined_by_union_tdir1;8 ?+ \  }8 |4 i  h: s
      UF_MODL_vector_direction_t dir2;
- x' N. A. s' P4 {% a$ h      dir2.xyz [0]=dir[0];
$ i8 {. ~- z5 y( N7 v& M6 r      dir2.xyz [1]=dir[1];3 K8 N8 x6 h* N0 n) M0 h) e
      dir2.xyz [2]=dir[2];
5 r: n/ u9 y4 t      dir1.direction=dir2;
, @- ?3 w$ Z' p+ y/ p. L, C: D; S0 z
      projection_method.defined_by=dir1;: r! ^* h6 J/ n  Y# I) s

( f' p) @  v5 r* ~( r: p9 Q, B      double point_coords[3] ;
3 t0 N8 w# R# U2 J8 O+ E8 N5 [% h
      point_coords[0]=center[0];
2 c1 H5 K& n) h) X( n      point_coords[1]=center[1];. n5 Z0 V# l) l# ?. F
      point_coords[2]=center[2];$ {8 w9 J( I: M! `

3 @. B5 O+ N/ {      int gap_point_count ;; t1 U6 n1 _7 W% p5 C! R  J
      double *gap_points;2 P1 h( c$ }6 R7 e7 @# k
      tag_t feature_obj_eid;
; D, F8 i+ c; a( M& _      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,* V6 v' j* p' O2 _. w. L' T
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
. R3 v" m- a& h  h- J8 s  J: s4 [
, B, Q- `' Y$ L: {}
" N3 `% Q# E7 i2 q9 ~8,offset偏移5 o' t. H. |8 Q1 T3 R9 [1 a

( o$ i& \5 I0 jchar   distance_str[] = {"10.0"};//偏移的距离) N8 k$ `' M% F& O! u5 I" r
& Z+ c' ^0 o$ M- M
int  num_curves;
" O: `7 E& H2 u7 etag_t *offset_curves;
# P/ Z$ f9 f7 C+ {  SUF_CURVE_offset_distance_data_t  offset_distance;( W) c+ g8 O) e0 \2 f
offset_distance.distance= distance_str;
7 @# \) z1 h; @9 V/ ?, L6 J+ boffset_distance.roUGh_type=1;
6 F9 {7 o+ h1 {- K  a+ O) |& q: O$ Y% QUF_STRING_t   input_string;
& N! d' n* {) U) [' L+ v, pinput_string.id=curve_id;//加入想要偏移的线: q+ l- o8 E" K7 j3 c
input_string.num=1; //偏移矢量方向数量% B  m4 K0 g6 z6 m0 R$ f$ n
input_string.string=&string_count;//偏移线的数量6 x# k$ O2 l3 j* V2 a3 U
intstring_dir=UF_MODL_CURVE_START_FROM_END;
/ g, z  e) J) kinput_string.dir=&string_dir;
  p% A5 J: L. z' D+ K7 I9 q
' l9 b3 \- m& s8 E/ m$ k! S' dUF_CURVE_offset_data_toffset_data;) V3 w; s& z# ~& J. F. d

( a8 ?" i9 O) w7 @( H; Loffset_data.offset_def.distance_type1= &offset_distance;
% c9 @8 w9 H. woffset_data.input_curves= &input_string;
, i! T; M7 D$ v$ ?( Aoffset_data.approximation_tolerance= 0.01;
  }0 f5 J0 ?7 ~  K$ {; boffset_data.string_tolerance=0.001;! G; B; v  u8 F+ ^" V# V
offset_data.offset_def.distance_type1= &offset_distance;
! p) j3 p" q, u6 |  ]' E/ Toffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;& j7 N6 N. t* @" g* s# g$ z" Z
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,& I7 f5 u5 v* r. C2 Y
&num_curves,&offset_curves));. V, t& b8 ^* {8 D$ B* y9 O1 \# Y
9,创建平面1 R8 l' A+ c& ~7 n. p
UF_STRING_tgenerator;
9 \: m  a5 u6 J& _( ~+ }+ D8 c4 ~UF_STRING_p_tge = &generator;
: {1 S7 d% q  j3 F! F) n
0 y0 g  i# v6 ^$ RUF_MODL_init_string_list(ge);; \1 P  k2 ~  ^3 q5 l
UF_MODL_create_string_list(1,12,ge);9 p( Z3 c) O# Y
4 v0 W! N3 n  P) z, ~8 i& o
ge->string[0]= 1;
. J5 c: [$ @, n: Oge->dir[0]= 1;//指定线从开始到结束& E" ^6 t5 |$ C( S5 B( o  @
ge->id[0]= arc_id;//指定边界的id
8 }' |/ s1 c% U" O# N. G, Bdoubletol[3];
0 {/ f9 Z( q4 F5 o! Rtol[0] =.001;//直线公差
8 h2 w! L, ^# ^; Q& Dtol[1] = .5* (PI/180);//圆弧公差3 [  E" l' |5 P- m# K. M
tol[2] =.02;//不起作用
% B, a& F8 F! S) mUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
- M0 a4 x3 T; Q2 g# I10,选择" e2 z* x+ x. J6 Q+ O! _
1),点选择
1 O4 K% G: W! P8 j9 P+ {tag_t point_tag;
* t# s% o2 m+ G8 A5 O- J0 V2 Zdouble point[3];
) a" @1 o- b. R       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  ' [( v9 w, Y, e( l8 ?8 o3 @
       intpoint_res;5 C( e2 T$ f! p2 Z
1 R/ Z; u8 v* F0 E: i: t% G
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
+ j( b$ ?+ W1 [$ q0 \point,&point_res));& S: \; k. }0 n3 z- w4 c
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
5 M# t7 U: {' Z8 X1 T9 o{
6 l1 r" K. c2 p% O: b( }+ k' D' Q- m }
1 _# V" d' c9 ~  p2 v: o! z0 v2),向量选择
) n( r- F- x* Y# O( [* c; N     int  mode = UF_UI_INFERRED ;$ l8 c$ w/ u: S) l/ [% j; V2 T
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
& ]% X! S% A3 V. Q8 i7 hdouble vec[3];$ n# K( w+ x) b5 v: f
double vec_pnt[3];
0 a! O* ^; U# I1 wint res_vec = 0;
/ R% X( c7 Z& ?$ u/ q5 D& ~     UF_initialize();  
9 K3 A! l7 `* i3 L+ ^* y     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag," ?4 q2 x' p! j% i6 O
           vec,vec_pnt,&res_vec);5 x+ v5 f: k3 S& \) Q6 v
     if( ifail != 0 || res_vec!= UF_UI_OK )   
9 q5 C' L6 N/ ]' S( n! I     {     - |4 Q1 p5 p% M" C2 h! b
           UF_UI_ONT_refresh();1 N* I" q) u+ S
           printf("No vector selected \n" );/ h/ x) l  U& B6 `9 a
     }8 _+ z: v  z& e5 U# u: v$ }
     else2 w# u8 ?. l, u4 f
     {3 G) `! t7 U% n7 Q& j
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",3 ~! w9 V, U: V$ P; e( o! g4 H+ y
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );4 k2 R  @  K" P) h3 Y
}! \# \; W  g. O
3),平面选择4 P$ W' N0 F3 J8 [2 a0 T
tag_t plane_eid=NULL_TAG;
4 N6 ?$ R# [# `6 b4 bdouble orientation[9] ={0,0,0,0,0,0,0,0,0};* d9 A3 K0 u' C4 R9 C
   double origin[3] = {0,0,0};
8 s, _% M" d5 |  E( Z   double pts[6] = {0,0,0,0,0,0};. P5 e% d" V8 G
   int i, error_code = 0;
/ A) o& N" x6 T2 }! t0 Q   int mode, display, response;! k5 P" U8 u7 w8 o
   mode = 1;                    7 y! m" M' [, q1 V& F! I
display = 0;      
5 J5 O' Q8 P/ \, U6 s# d& ~  XUF_initialize();7 p. P  ^8 Y6 R; A4 ]. c  A( K, k
   error_code = UF_UI_specify_plane(; y9 u$ M4 W+ @6 e
         "Select Plane", &mode, display,) G) ?' Q; Q) U9 w* n7 j2 y
         &response, orientation, origin,&plane_eid);
. z2 d& i8 }4 h- [+ D2 Y$ R) A
  S$ q" B$ D4 m$ J* L& |   if ( !error_code && response != 1&& response != 2)
" V. w0 `- I# P+ _   {+ d2 ^3 L8 F% G7 `
                     for (i=0; i<3; i++)4 C: M7 R6 O. ~9 c
               pts = origin + orientation;& g3 b8 I* K3 r+ ^
                     for (i=3; i<6; i++)
+ O  y; _: i1 d9 \* V               pts = origin[i-3] + orientation;: h1 v/ \# w+ A% i
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);) ^6 o% f. v8 W1 w% C
   }
. ~1 V( W; i; f$ q' M8 n1 i& d11,临时点,线
7 D9 ]+ g6 p6 \1 G) q5 B  ?( Zvoid display_temporary_point_line (double point1[3], double point2[3])% S: I" _/ n1 C
{0 k% r: D0 t1 ^$ d$ z
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
* I; e0 A4 c- x, F  UF_OBJ_disp_props_TColor;& [  ]9 @; X2 U8 f6 A7 u
  color.layer= 201;
2 ^# k4 `. H+ K& T) d. }  color.color= 186;* H, m6 h+ c/ n5 q8 R7 }/ D: V
  color.blank_status= UF_OBJ_NOT_BLANKED;/ T6 Q! y7 E( `- I
  color.line_width= UF_OBJ_WIDTH_NORMAL;
+ j+ R8 O* J1 R) c& l  color.font=0;
- J* |+ N3 t+ E6 b  R  color.highlight_status= FALSE;9 E  @. ?6 h" i+ W0 H5 {
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
. y9 D2 d4 s* P- S* f
& B) _9 F3 u/ {, y# qUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);* O8 u9 N3 p7 L, X
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
" T# ~$ _* e8 s( i0 H, ZUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);* J9 N( s) V& }2 o
}
. x& E9 H0 R6 I! z2 p$ p12,WCS与绝对坐标转换0 h; {1 V8 z/ [+ B, o
                        voidcycs_wcs(double point[])
4 I, q2 M3 Y4 X" H/ F- L{( a$ |  }: n- G4 D8 y7 ^& Z
      tag_t  wcs_id,matrix_id;5 p, L' {2 Y. X4 i
      double matrix[ 9 ];0 ]; x$ e: O: f8 Y' B( ^' j2 \
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
2 d" I" W4 Q8 |8 W+ T% ~      double wcs_origin [3],vec[3][3],point_origin[3];
5 q0 ]% Z$ ?: [0 S* Q      //1,得到工作坐标系7 [3 k! X8 C- c8 Q! R* y
      UF_CSYS_ask_wcs(&wcs_id);0 s; q3 T0 s8 o% |8 C
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
! J8 S! W; H. j! H7 _      UF_CSYS_ask_matrix_values(matrix_id,matrix);
0 M( O" V4 y7 R$ u. v2 m  \: ^
* s% o, j- q/ f  q* ~7 G      //2,得到工作坐标系轴向量! a+ Q& B' K# x+ ?
      UF_MTX3_x_vec (matrix,vec[0]);7 ^; b9 W! f" b6 o; c
      UF_MTX3_y_vec (matrix,vec[1]);
/ E! R% }- @: T5 H( I6 Y0 L9 E) N      UF_MTX3_z_vec (matrix,vec[2]);
' o; d- {) _' m( p4 M+ a0 t. i; @  P: s" G. e0 W8 V
      for(int i=0;i<3;i++)
- J8 a. R+ X& M1 P8 Q      {     : ?  B1 j0 s* \1 w: X! H1 p
            double tol;/ _/ i7 G( q: A$ Y
//3,得到点到工作坐标系原点矢量
7 e0 Y! X6 ^$ B/ k            UF_VEC3_unitize(vec,0.000001,&tol,vec);% G& O7 [. Q& F8 k
//4,得到点到工作坐标系原点矢量, u8 L/ x! z( Y$ ]' U
            point_origin=point-wcs_origin;
5 `% e' y% a7 q8 F; w8 Y      }
- p! \! ?5 Z" D: f: V5 F( P      for(int j=0;j<3;j++)9 w6 r* T" P6 z4 A
      {: W% l$ t0 N4 V' Y3 [$ K
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
- S" u& H. S- X  c4 G      }2 |' l2 G3 P# ]1 e+ y6 [
}
# v- ?1 |& v' Q. U. d13,三点求圆心1 g; w, s" ?4 m7 r: y! x! v
#include<iostream.h>
! L$ B/ _1 \, D  @5 w. ]$ g#include<math.h> % T# U: }3 y7 o1 l( q9 N# V
' `  o4 q0 x+ `8 v
int main()9 z1 r+ `/ c% g. y! O# P$ T
{
# J/ b& k! \5 C0 N$ o      int x1,y1,x3,y3;& i# |. i; F. V3 ?/ N6 M( y0 O4 W
      double a,b,c,d,e,f;  c& L5 W8 y: ?( Y: h$ j4 [
      doubler,k1,k2,x,y,x2,y2;, y4 d4 I: g! O; V7 N" @' Q* M
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
6 m9 ^2 b) B+ a! r# R) ~$ u      cin>>x1>>y1>>x2>>y2>>x3>>y3;% g0 s; N/ a6 U
      if((y1==y2)&&(y2==y3))
7 k* \4 X$ C9 P$ G9 V, [! Q      {! |: t) [' M- t
            cout<<"三点不构成圆!"<<endl;
/ C3 ?9 R6 d' Y2 V$ _* |" |" g            return 0;" E* F8 Z7 t" \2 E
      }
8 T# T0 k7 o/ n      if((y1!=y2)&&(y2!=y3))
. Y& E2 r9 P6 W+ }9 _      {" U8 `, M" @- E3 q+ D9 `- G
            k1=(x2-x1)/(y2-y1);2 t5 @+ @0 `& G( h
            k2=(x3-x2)/(y3-y2);
7 `7 |: j3 Y5 o& d8 ]/ \" F      }$ A0 {/ [- \! k
      if(k1==k2); y6 `8 W  m" R& {) j
      {2 J/ Z7 S% ]8 T, k3 N
            cout<<"三点不构成圆!"<<endl;1 `7 O# u* S3 a: ~
            return 0;+ k1 X! h* v' Q0 {( y, l
      }/ r5 ]/ b  y  V0 L
      a=2*(x2-x1);
* L$ J" g0 m$ _6 `5 W" S/ `      b=2*(y2-y1);+ Z/ ?/ u$ o% S4 S
      c=x2*x2+y2*y2-x1*x1-y1*y1;
6 U6 x+ p" L; U+ J& z2 l) x/ x$ H      d=2*(x3-x2);. ?. e. k! Q$ d6 ?
      e=2*(y3-y2);; [- l/ V" I3 ^+ Z$ a- t/ Q  q
      f=x3*x3+y3*y3-x2*x2-y2*y2;6 n7 j- [$ X* W0 g0 x2 h4 Z
      x=(b*f-e*c)/(b*d-e*a);& S  u0 R" d6 h" p+ K8 W
      y=(d*c-a*f)/(b*d-e*a);8 F1 \4 J) q9 X7 Z4 A* Z( l
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;9 d3 C$ H5 B; M+ W2 w6 c0 p
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
7 ^4 S, \' b7 Z8 G7 b( a      cout<<"半径为"<<r<<endl;3 a" I" \8 q9 ^9 |8 A
      return 0;+ f& J5 Z$ g! e9 Y$ S9 V
}
3 K. e" C) Q9 H4 E8 P: g) ?14,查找圆心% h+ n" X$ f, R+ G$ ]: f! s
            UF_EVAL_p_tevaluator ;
+ c2 a% i( i0 U6 G2 j            UF_EVAL_arc_t arc;# l- v4 V+ C; ]% J. s% {
            UF_EVAL_initialize(obj_tag,&evaluator);' K4 L& w! }5 V$ f- g# X0 ?4 Y
            UF_EVAL_ask_arc(evaluator,&arc);
) F8 M. c, |* j4 t9 r7 I3 |9 t4 D            UF_VEC3_copy(arc.center,point);           1 c4 E8 t( Q: ?
15, message_box1 V: D- K9 ?8 P0 q
void message_box(int *res_mes)
" y# R, T2 Q/ |0 C3 j0 h{
) \0 B0 ], `2 h5 p( s      UF_UI_message_buttons_sbuttons;! p0 ]8 ]6 Z# ?
      buttons.button1=TRUE;
1 [5 w% m6 e$ `% ]" K& s$ k      buttons.button2=FALSE;
) O: K2 i" P- r0 j8 q      buttons.button3=TRUE;
1 }+ b3 u! k8 V) B1 V1 m, f
. \* r+ J2 j( O( f6 V4 ^      buttons.label1="OK";
8 @. h0 J" ?; a5 y% w      buttons.label3="CANEL";
! K9 n' I/ u, C" e$ e* X) S6 T; H' P1 A7 S
      buttons.response1=UF_UI_OK;
+ e. @1 |: S0 p# O3 A$ _, k      buttons.response3=UF_UI_CANCEL;
1 z# d* r& i  }8 O- f. c% W. W( Y  ^4 c3 C& A
      char *string_msg;
1 @6 X& C9 r' F6 M      char*material_msg="ALL selcted objects will be removed";
* k1 y2 d: F3 g1 k: C# y  C' i      string_msg =material_msg;
) S0 b2 C( S( J4 s& O
& X, c% g4 t& [6 j      UF_CALL(UF_UI_message_dialog("",
) R* x$ ?% T3 a' I            UF_UI_MESSAGE_WARNING,
4 ^, b, d- L4 H6 S* O7 K- C* V( Y          &material_msg,
$ U7 n/ f1 S" \: L/ x! D            1,
6 b& E7 e7 K3 x, S: R2 V- I            TRUE," C' [  \! j6 g7 E/ |( g: `
            &buttons,) P/ ~! T" h& F9 z. w7 F8 |) U) T# Z
             res_mes ));6 }# a+ k3 u  h. H
}
. h: t( r" f3 p9 _16,选择过滤. _! r; X! p4 }
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
' A! m7 u$ j: @2 U9 B; I- n. i{
+ [, ?' X; `8 Y/ l8 b0 q9 P7 G9 D      int nums = 1;
2 H- q+ Q( C' `- a, I) ?0 }      UF_UI_mask_t masks[] ={
2 D& |0 m( \! }            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};4 A) J' b) e  d
0 M/ [7 v* l, K" l, b6 I7 P7 \
            if(: n: B' W. U1 B5 ?' H( g- s0 C
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
! @: g2 h% r! r. ]& t                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)- r2 u! Q! r1 s5 d
                  )7 [6 u5 j" T' x/ d
            {- g8 l0 R* e- L' K; Z
                  return(UF_UI_SEL_SUCCESS);, q! W0 u) {. I
            }
0 R" ^, T, j  z% H; G            else
  x3 x0 W, N+ E' C; C$ R. n            {     3 W% ?4 O7 ]: B' C/ Y
                  return(UF_UI_SEL_FAILURE);
6 Z/ X$ y& P2 C- u; f& D            }
! G7 Q- t% X/ k0 B9 N, T}0 ]3 _, y! ?. \7 I  ?
int find_tag(3 p: N8 f1 O4 ]# q) E" E
                    void * client_data,//用以传输过滤资料/ I' x0 `3 R1 Y- L3 m
                   tag_t object//现在鼠标所选物体ID
6 t/ X+ j6 K0 B                   )  a$ o# W! O5 N2 d2 i+ f
{
/ a  {% n: u, @+ [5 I0 q* ~4 f8 u      user_data *obj;
' h, H3 x8 N1 W; f0 F      obj=(user_data*)client_data;9 y+ ^$ C' ?9 L2 x$ u+ b4 S
      int find_face=true;//接受
* ]' _# `- e. @1 G) Y      char *string1;
. d5 G8 M7 Y7 W% l7 C% X( }( w      string1=newchar[133];
/ ?3 ~2 ^) E5 a6 c      string1=UF_TAG_ask_handle_of_tag(object);
0 O1 h+ t& d4 R0 z$ z3 @: B      for(int i=0;i<过滤的数目;i++)
- k. e- `- Y) u* g1 p1 f0 g. c      {
; F9 n# K* M5 g2 F- q  Z! @. E: j7 P* i( i/ _% L
            char *string2;
- N: q! P# e3 @& \; K$ G            string2=newchar[133];
: r: H8 x) R' G9 c7 O7 Y6 A+ L            string2=UF_TAG_ask_handle_of_tag(物体ID);
# e* i" I- F: w3 g  C+ J; p; k            if(strcmp(string1,string2)==0). g4 \/ }" Y) ]. M, h/ l# j" y
            {, R* Q. ?8 V. J; W
                  find_face=FALSE;//不接受
9 x. J) @1 o# ~; o- ]9 d4 v/ f# {$ P" z/ p5 N$ ?% R
            }9 y7 U, q, s. y9 C
            delete []string2;" D0 e4 p3 i# \/ C
      }
) s, t9 \2 f4 h" I      delete []string1;
% r- C1 u/ q* W1 a  g0 U      return find_face;4 i2 @- N/ `0 |! `5 g
}
& t# V' N2 ?/ p! W2 o. v
+ L% w0 a1 Y) }. 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二次开发专题模块培训报名开始啦

    我知道了