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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
- ^3 a2 O+ O' D* U1 N5 d
7,裁剪片体) _6 Q3 C! u* l2 v7 U/ Z4 X
tag_t  *trim_objects;3 I. M9 @/ q8 A. e' ?# d$ X
trim_objects =new tag_t[count];
0 {6 Y! c! a; Qtrim_objects =bound_id;
6 e6 I% X0 _- a8 rvoidtrim_sheet()& K1 X( C& P7 W/ H6 r  U
{
! g, P# }! _& b4 c1 W* p/ J
& V0 h4 B$ T" b      UF_MODL_vector_t projection_method ;5 {+ G* M" N) _' w) ~  }5 `* {$ {+ _: s
      projection_method.reverse_vector=0;
: O+ L+ g6 q8 @5 L2 P1 c      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;- {* Y1 t+ q, d$ m+ \8 B' ]: b6 h) d
      UF_MODL_vector_defined_by_union_tdir1;
" z# o2 {( h. u8 {3 G      UF_MODL_vector_direction_t dir2;9 V  R* N$ C. Y
      dir2.xyz [0]=dir[0];
; `1 d  |: d3 _: Z6 l( n0 T      dir2.xyz [1]=dir[1];
# g3 A% W5 `! x' I      dir2.xyz [2]=dir[2];) b2 ~$ K5 w% e* a
      dir1.direction=dir2;
& n, a* q* X; l! f  O# d/ T0 s8 P& g  B9 U% ?" s
      projection_method.defined_by=dir1;4 p- L; c* R4 }
- h& \& p& U/ Y9 ]
      double point_coords[3] ;$ I7 t/ B9 N% D- p* y& J

0 F0 q. R; Y7 u7 n7 [, x      point_coords[0]=center[0];
" u! P9 F- \" E+ I* L! \      point_coords[1]=center[1];
8 d) L* E( Q; y& m; X6 _      point_coords[2]=center[2];  m2 e5 I# C' `4 U5 h' m5 B$ J, J
- O5 {4 H1 `* S& s2 H& Y
      int gap_point_count ;
! P) {3 p: D  K, a! @      double *gap_points;( w+ [1 a2 v  j6 I0 ^
      tag_t feature_obj_eid;# _) H; M) R- D" H, w0 ?
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
7 q; ~! K  J$ ^% Y                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);; i8 r. Q7 m; C3 m* Q9 I. E

- @2 H) b* s0 o: ?' Q}
( {4 q* l- A- j" d! ^, N5 g8,offset偏移% h# M  J3 W( N' g
0 P% F) K5 u9 \! N
char   distance_str[] = {"10.0"};//偏移的距离
$ `; d7 S! W0 z: `. U2 b9 b) }) |7 ^" w0 }4 b2 R+ J; O# N
int  num_curves;
: r  c# a2 x* ]$ w* B* ^$ btag_t *offset_curves;
8 a. f7 E. E4 {, I- c* SUF_CURVE_offset_distance_data_t  offset_distance;0 N7 r9 x4 X$ n9 X: s" y
offset_distance.distance= distance_str;
% i$ L1 @$ u' y1 Aoffset_distance.roUGh_type=1;0 V0 H- A, c6 A5 a
UF_STRING_t   input_string;
+ V4 |2 g9 B1 g" f/ A2 finput_string.id=curve_id;//加入想要偏移的线
- Y4 [. N- d; r" Uinput_string.num=1; //偏移矢量方向数量
/ D" p4 H' p: d6 F/ F( W: Oinput_string.string=&string_count;//偏移线的数量
: ]: K5 O! T) d* y; ?9 ], wintstring_dir=UF_MODL_CURVE_START_FROM_END;' Y# d: y" G8 j4 N  s
input_string.dir=&string_dir;
/ t/ }, H; a: d; B, c3 Q! B! X. K; w: \. B# P) Q1 T
UF_CURVE_offset_data_toffset_data;
: P& t7 A- f0 n6 G- I7 ~. z& x
' z0 R: q- G& ]' a3 ^( Aoffset_data.offset_def.distance_type1= &offset_distance;. t& y+ }! \0 L
offset_data.input_curves= &input_string;
5 x4 T; h* Q. boffset_data.approximation_tolerance= 0.01;
% _5 w* O& j7 F, z; M, woffset_data.string_tolerance=0.001;. h# T( N" y: H  o" O! W! l4 L8 K" I7 H
offset_data.offset_def.distance_type1= &offset_distance;) f! y2 W) r/ Q3 w; M# u
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
- ]; ?) J; b: p! X- xUF_CALL(UF_CURVE_create_offset_curve(&offset_data,4 H0 A: |3 }7 J) `- t
&num_curves,&offset_curves));
. Z7 ]+ r3 @! Y& U8 P! z! ~& X9,创建平面% r" E" T$ ^: m6 X6 ^9 E# V% x
UF_STRING_tgenerator;
. y0 l' V8 R5 Y6 ]: AUF_STRING_p_tge = &generator;
" Z  y2 D  s9 U1 h6 E4 g2 V, s$ O  a+ R# t& Q# ]
UF_MODL_init_string_list(ge);
/ o# x- o: _! Z; W% z4 VUF_MODL_create_string_list(1,12,ge);
& t8 K; X- z/ E$ Y
/ @( Z5 Y3 l; N' K& j6 C) xge->string[0]= 1;
; {, r" v& s( \6 B& q3 age->dir[0]= 1;//指定线从开始到结束
# m/ ?, U% {0 a0 ~# B- J" w2 tge->id[0]= arc_id;//指定边界的id& C3 a- `: T6 s" m$ z
doubletol[3];
7 b  ]/ _8 u9 w) g+ Utol[0] =.001;//直线公差6 q. x0 k& R) K$ f- u
tol[1] = .5* (PI/180);//圆弧公差7 C' C+ H( c9 R4 {
tol[2] =.02;//不起作用
3 n( A1 ^) N' X5 n7 WUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));6 E* s% o0 I* n. y
10,选择
: g0 y+ n4 d+ r* W! e1),点选择
0 m; z$ K. e8 j' l) ~" Utag_t point_tag;
5 l9 G; U/ \: m5 b) G8 ydouble point[3];$ r, p! f5 `! o- P' v8 Y  t" {
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
8 A9 L0 J3 Q7 U/ }       intpoint_res;
7 |' `, C/ C" H( w0 H* Z
$ L) u7 Q" t% l: c& H, KUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,( M7 T4 V) H% ?. u
point,&point_res));+ n- K( B5 t% L9 G2 x6 \# i% C
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)4 s! `$ M& t; r( T$ x- H- D- }* ?
{
% c3 b5 e, H1 x% q }$ P# m* l( s7 ]) `% z0 G- y
2),向量选择
" o" c8 c% ?* k* x$ h: d7 Z" E, p3 _     int  mode = UF_UI_INFERRED ;
( p& e+ b, a# ~( D     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
- X' i  z# F1 s7 [. ?5 bdouble vec[3];+ Q# g2 [* o  d3 s2 y' l" O
double vec_pnt[3];
" f- T  I. b6 i$ y0 ~int res_vec = 0;+ Q1 r$ ~# [0 S4 B* K9 R
     UF_initialize();  
& T4 }, U4 f0 [. ~     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,: c6 A3 d5 o% w# ]) h) J
           vec,vec_pnt,&res_vec);' L. o" }: {) |7 k
     if( ifail != 0 || res_vec!= UF_UI_OK )   , m7 X! O& U2 \8 ~
     {     / v+ \2 G; G# x4 s) y$ ]
           UF_UI_ONT_refresh();& O7 O: k0 Z$ b) U1 {
           printf("No vector selected \n" );. X5 g& j9 w7 A  p- _5 j
     }7 \0 y  \, w9 D7 K7 k7 o
     else
, \: D: z6 D+ t) m- D: L  @9 k- A6 g     {
% s7 e: W1 X5 E, C& [           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
: y; |, ~5 C( }+ J5 _* _8 B! N                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );, V$ B" x; a% ]- _) \9 M( X3 M, S
}
* k: I; {' Z1 f! Q5 d9 \! g: E3),平面选择& K, Z! H, l# T
tag_t plane_eid=NULL_TAG;# Q- J. G( A2 P3 i! X. Z
double orientation[9] ={0,0,0,0,0,0,0,0,0};
- r/ w' s. t( U! t7 x# ~   double origin[3] = {0,0,0};; p5 {2 y7 l: z* A; x3 ~: I
   double pts[6] = {0,0,0,0,0,0};
$ g' ~3 I# D- }   int i, error_code = 0;0 G! r6 V: A8 H9 g4 d3 ?
   int mode, display, response;
# @! G$ B$ U$ ^   mode = 1;                    + [( _- M6 f6 y: ]$ i
display = 0;      
+ \0 D* e' s3 kUF_initialize();* U) q0 J2 f/ [2 d
   error_code = UF_UI_specify_plane(3 N7 H, y* R. }
         "Select Plane", &mode, display,
7 q  U( D( L& b         &response, orientation, origin,&plane_eid);8 _$ ?) o8 z: H+ k* v3 a
* n( U: [9 ^( d* W+ A6 f) Y4 z
   if ( !error_code && response != 1&& response != 2)
, u' Z1 B- w7 i  g* ]   {8 V. V; @- h) A  P* V
                     for (i=0; i<3; i++)5 J$ l# j& y- X! t) T1 K8 S. H
               pts = origin + orientation;
4 I0 ?5 q. s, d) G6 [                     for (i=3; i<6; i++)
, ]6 y1 P# X. k" A               pts = origin[i-3] + orientation;9 b) ~( s% N# u8 o$ O9 |) Z2 \
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);: x1 o4 u; p4 g9 e8 n3 p% \
   }3 D8 H3 o6 d, M, j
11,临时点,线9 v- u6 R+ B2 u% l0 P1 P/ x8 i
void display_temporary_point_line (double point1[3], double point2[3])* V, ^( ^8 g( ?' Q% y
{. s9 F. }& Y5 a. J* Y' p* S
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;6 k# U& q% l4 D) \9 N3 Q: g  `( M
  UF_OBJ_disp_props_TColor;
" u: M4 s6 a3 ]" }  color.layer= 201;# J4 H1 D9 N3 R/ ^4 k* \
  color.color= 186;
  [9 K, N6 T$ D2 I$ O* {  color.blank_status= UF_OBJ_NOT_BLANKED;
3 o2 ~& p1 R5 P- J5 M7 M- L  color.line_width= UF_OBJ_WIDTH_NORMAL;
" h+ D" \" [$ f  E, L  color.font=0;  }8 b+ A' {( B. Y, U/ ^
  color.highlight_status= FALSE;* E9 R8 e: I' s/ U9 g! O0 k
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;- V0 v6 Z& |0 F2 ?3 E0 r* F
, T' U$ h% m& |/ K" g) y' s. G7 `: c
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
& Y  y5 p0 k. o4 XUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);4 L2 g8 Z* X# i
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);$ a1 Z, ~5 D# C+ u% ]2 j; a2 z1 X
}9 G# V$ ^! l5 E% Q# D
12,WCS与绝对坐标转换* S4 _' h* l# m4 a6 Q; j" `
                        voidcycs_wcs(double point[])6 n- e7 x; u# w0 U0 ?% y  G/ s
{
' t1 H6 C  |( W7 ~) }      tag_t  wcs_id,matrix_id;
* o4 z7 C3 z2 B8 M      double matrix[ 9 ];9 {: }* v  N, Z7 X, N; _8 H
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量; R% ?) D) j. r6 C6 x8 y
      double wcs_origin [3],vec[3][3],point_origin[3];
4 ?% w$ ^% y5 s: I: ]9 u      //1,得到工作坐标系' n" ?3 b& X! m
      UF_CSYS_ask_wcs(&wcs_id);
  J! ~+ r7 V# O/ \      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
7 [6 o$ B1 m6 v  r9 A      UF_CSYS_ask_matrix_values(matrix_id,matrix);
( n- D6 J* {0 ?: R0 Q4 R
5 M2 W6 k" J$ U0 Z      //2,得到工作坐标系轴向量
$ Y0 c9 W% |! z2 e" R      UF_MTX3_x_vec (matrix,vec[0]);' A3 t: r" h8 C# N2 R$ ~+ d
      UF_MTX3_y_vec (matrix,vec[1]);( v, Y2 R1 O! u) v' q2 ~' ~
      UF_MTX3_z_vec (matrix,vec[2]);# ~3 `4 e! b; L' c. r
2 F" [" @( W$ K8 w
      for(int i=0;i<3;i++)
9 s- k3 ^+ [$ p0 f( z- @$ i1 |      {     
0 i/ v+ t8 Q4 s& S- j! j            double tol;
* ~1 C9 R# O5 E6 X% [//3,得到点到工作坐标系原点矢量
5 ~' X& L7 H0 P" N            UF_VEC3_unitize(vec,0.000001,&tol,vec);
9 p4 s- n" l( f% |! w% e) o//4,得到点到工作坐标系原点矢量1 ]" R7 S- p  X6 y. ^* E
            point_origin=point-wcs_origin;; p: G9 W$ c: r3 N& f" s2 J: j
      }
# i. d, G& ^& V+ Z% G' E  r      for(int j=0;j<3;j++): s7 R. c) O- k
      {
4 ]8 D7 n% w$ h7 h8 g            UF_VEC3_dot(point_origin,vec[j],&point[j]);2 z$ p( z  `* h8 f
      }( e& `2 a8 c! y6 g
}
% s. U0 ?4 r. \9 `13,三点求圆心4 V+ p0 H0 }" O/ z
#include<iostream.h>
7 l2 d, p4 o9 j! g+ x" u#include<math.h>
; z" O! K6 f+ _! c- ^' Q0 m3 ^0 i$ ?. V. l1 c0 a1 |% D4 O
int main(), E+ c0 h" ~$ |" z/ V
{
7 T: R0 p5 S8 I9 F      int x1,y1,x3,y3;4 Z+ j# g3 k& o" A/ S
      double a,b,c,d,e,f;0 ?) V  H7 U' H% g4 }7 e
      doubler,k1,k2,x,y,x2,y2;
8 K2 M% z3 e- s" ~/ \* V; y  p0 g      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;% ]$ q8 f) M5 _6 r: z
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
& K: N1 `2 {" m0 S      if((y1==y2)&&(y2==y3))4 p) C- Q. Z. [, `' L
      {" ~1 `1 p. s' u# T
            cout<<"三点不构成圆!"<<endl;
' }* O+ e2 D7 ?! x            return 0;7 a9 {+ ~6 u  O
      }  J* v6 V3 h: E" [* ~
      if((y1!=y2)&&(y2!=y3))
# H& W  j$ J$ o7 W- g      {1 q: u6 i3 p: l6 @$ z6 Q
            k1=(x2-x1)/(y2-y1);, i! s6 t6 U* t+ j0 C- [7 g
            k2=(x3-x2)/(y3-y2);
4 M! C9 Y. U# O5 j. x" I      }0 t2 D% ^5 u+ [# f! Q
      if(k1==k2)$ ]4 M6 ^' [# n
      {! L# N8 p+ e; m
            cout<<"三点不构成圆!"<<endl;; @/ M8 ?: s0 i$ Y4 D) j
            return 0;" a$ r& Q8 X6 N& Y% t1 M! M- e
      }
) i0 Y+ p6 f' y+ z! K  N. t# \      a=2*(x2-x1);) h, Z" X9 s6 i8 \
      b=2*(y2-y1);
% Q" q" A' D$ Y& Z4 w; t      c=x2*x2+y2*y2-x1*x1-y1*y1;
7 v5 ^2 x8 D' _      d=2*(x3-x2);
% E% [5 r# \# f; {& n3 J7 A; u      e=2*(y3-y2);
* G$ c( X5 R! `+ A0 G      f=x3*x3+y3*y3-x2*x2-y2*y2;; L  d4 Q" H8 ]& e# f
      x=(b*f-e*c)/(b*d-e*a);
* m, j) K2 j  b% w      y=(d*c-a*f)/(b*d-e*a);4 O- y5 s' ^2 a# C" T; A' _
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;: Z" ~8 j8 {$ [6 j; H# o# Y
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));4 K' |9 K, g9 y' P
      cout<<"半径为"<<r<<endl;
7 O" C* x& \; O2 R, P) H; Z4 N      return 0;
& e! K3 q' V1 r5 i}$ J+ I4 L2 U. j6 S1 o
14,查找圆心. d" D  u0 G% r4 ?/ G  ?5 u
            UF_EVAL_p_tevaluator ;% E' p, V  L- F  A+ K+ _* B
            UF_EVAL_arc_t arc;
9 b: A' G" s) o3 [            UF_EVAL_initialize(obj_tag,&evaluator);7 g% l' D% Y% L$ T, M- z
            UF_EVAL_ask_arc(evaluator,&arc);/ ]5 e8 \" k! v) C+ _
            UF_VEC3_copy(arc.center,point);           
6 {* n& p9 J: `) p/ @  g$ ]15, message_box
- n0 j* {. h7 w  f, G* w6 K7 q% ovoid message_box(int *res_mes)
3 [8 K# a  @/ J- Y# [( W6 a{
. l2 a" D; x/ _8 b2 `; x      UF_UI_message_buttons_sbuttons;7 }2 m( \; G' N  g# m# H  X% f
      buttons.button1=TRUE;
% y" r0 R3 w; X! z      buttons.button2=FALSE;  ?. L+ e. u2 u- {8 w. n" M
      buttons.button3=TRUE;
8 j- V, N* H0 k- q# _9 Y
& W% `$ o; w5 z; ~      buttons.label1="OK";
% t7 Q& e# |/ r4 O) P4 _9 c      buttons.label3="CANEL";
0 D# d2 X7 J6 l- S
! v: C/ N& R9 Q- F* Q      buttons.response1=UF_UI_OK;
/ B0 L. W2 o& w, ?      buttons.response3=UF_UI_CANCEL;
2 W. V0 z; k% m$ t/ V- _
0 A/ E* k( u8 \9 g      char *string_msg;
5 O! o$ K5 c4 r' n5 f: W: L      char*material_msg="ALL selcted objects will be removed";
$ C/ f% z. Z' b1 d* c, m$ ^$ n: S8 B      string_msg =material_msg;
" l& s2 I8 z/ {! ?8 R0 y; M4 n, K& n! t$ L  I; b3 s- u0 ~
      UF_CALL(UF_UI_message_dialog("",( I) A; T" M4 q! K
            UF_UI_MESSAGE_WARNING,
( V! K0 [, a* }* F" q  x          &material_msg,1 r+ d! m+ C3 Z3 r  d( K
            1,/ U6 I+ O+ w5 _% c! Y* b; K
            TRUE,, N2 i; {0 E/ _1 e" e
            &buttons,  Y$ X, O. o* F7 S* [
             res_mes ));
! w3 P( i* I0 T4 E  H}( M5 U6 `# g5 W6 F+ Q
16,选择过滤
+ O" f; ^4 ?/ C3 q, Nstatic int init_add_face( UF_UI_selection_p_t select, void *client_data)4 [+ q& W: c: c6 E) F' ]0 P/ j
{- U/ ?7 J: |  {8 v; V
      int nums = 1;$ x1 p& W, g0 P8 ?0 ]. T, D
      UF_UI_mask_t masks[] ={4 K& G( i: q8 b1 J1 @; |& e
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};$ w, P7 z. t6 E6 E/ V
- u0 m* Y/ ?' K1 N
            if(
/ s, K* p, J. _                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)2 h7 q5 _3 M! Z) K8 [# T: _
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)8 }" W4 O) y' T+ S; [
                  )3 x& K/ A4 v" X. O, l1 c8 j. ]$ t
            {. m$ ~6 z8 J8 B& n4 k
                  return(UF_UI_SEL_SUCCESS);
4 {4 q3 b3 r- D* I            }$ X3 ^9 ?3 `2 p
            else
$ p* Q0 M$ f. j            {     ! j3 G0 w& K$ M, B% U0 d& @# I+ W
                  return(UF_UI_SEL_FAILURE);
5 \/ D+ I( E. B% z, Q+ A            }
6 i8 h; B' t0 I6 U) b}5 Y8 g6 W  Q1 a! y
int find_tag(
$ [0 B4 g/ Y1 X9 ], K& ^5 e( O6 k$ y                    void * client_data,//用以传输过滤资料
8 H1 J9 d; L/ G" b& k# N$ H, O                   tag_t object//现在鼠标所选物体ID
. \5 s, C) k: ]( x+ F                   )
. K5 l6 j. x2 G1 _9 L{0 Q: W0 X; I; {- T5 g: y% p
      user_data *obj;
* \3 e, X: r* K' M! |! X      obj=(user_data*)client_data;# K4 e" H) o; F: R' y: A( q: Q
      int find_face=true;//接受
. r- Z% \( ]+ Q* Q: f, s      char *string1;
% H- v( Q2 |" s* Q8 e5 o      string1=newchar[133];
8 _  y7 q4 b  B) I" Z      string1=UF_TAG_ask_handle_of_tag(object);; y/ d5 I( N  `3 M
      for(int i=0;i<过滤的数目;i++)) r* a0 E" g/ t& ~7 a
      {/ l9 Y+ O; d2 @
% E; z6 X) c! C& ?4 B
            char *string2;
* j& l! A6 l  C            string2=newchar[133];
* ?1 N  |5 a- N2 [( Y! N            string2=UF_TAG_ask_handle_of_tag(物体ID);
, c/ W3 L3 c: d& u            if(strcmp(string1,string2)==0); i( V. F9 d4 L9 K+ A) x  ?
            {  F+ I# I3 A) b# M. L5 l
                  find_face=FALSE;//不接受
6 R6 H* q2 h( T  p; e# }% U# \" G, w: m5 p
            }& ~2 z- c' b, l" @# k
            delete []string2;$ h$ t2 g/ O" }6 ?& B3 ^2 |8 p
      }8 l8 U3 K0 j9 c1 C; v! o# X* W
      delete []string1;. _; p' s8 C) E2 `2 U9 _
      return find_face;& @% M* [. Z* l  s; L( c6 M1 K
}
$ D/ U+ _( ^6 Q0 \: I4 Z$ k8 C! |4 R9 F& m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了