PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
; m' J3 \3 `0 {; }$ o( F
7,裁剪片体; e9 E) A% i, p' I' B! [$ h; h
tag_t  *trim_objects;% T8 ~, |: x% O7 ]" X" z$ R/ V3 ]
trim_objects =new tag_t[count];
6 r  x6 ]2 Y4 {  dtrim_objects =bound_id;
  U" _! U( }6 ^: M3 _3 Tvoidtrim_sheet()
& Y* E) a1 H/ |7 U" w{
) d& _$ ?' s/ h2 u4 b( T7 m$ Y% o
      UF_MODL_vector_t projection_method ;2 |; _: \/ f$ t5 P0 r2 S6 ?
      projection_method.reverse_vector=0;/ X* Y, e: m4 |, W
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;, I' n2 R. e3 ?" V
      UF_MODL_vector_defined_by_union_tdir1;! x- ~* ~0 C  Y/ @/ T' E5 H# I9 q- I
      UF_MODL_vector_direction_t dir2;' ^  e  l7 u& h- F
      dir2.xyz [0]=dir[0];( V0 s7 Y- f# ~6 @. |9 o/ j
      dir2.xyz [1]=dir[1];0 S* ?( _* ?2 k4 E
      dir2.xyz [2]=dir[2];
" M! x8 g' ~" j0 `+ Z5 L      dir1.direction=dir2;
5 f! @' F, k9 R9 i: ]
8 u& e4 C) F0 ^      projection_method.defined_by=dir1;
" x) b: k# M) i4 ?$ M+ Q" I/ S0 O9 @+ L* X& o
      double point_coords[3] ;
1 U$ O, U8 k! \6 b* K+ ?
* g$ S3 ]6 h/ }) V      point_coords[0]=center[0];
- o: I5 W" G: l% E      point_coords[1]=center[1];! n% n8 _& |: r
      point_coords[2]=center[2];
7 T/ L/ q# Q  n2 S" q9 ?, h3 Z/ n' j! l& J% T
      int gap_point_count ;
8 G3 }  ]4 _7 C1 y4 e! t6 E      double *gap_points;5 }/ Y' p" F/ X" t
      tag_t feature_obj_eid;
  ]3 d) b3 t/ ]' Z% ]7 }7 t      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
$ K) z! M& ?  E; @7 S                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);- l! R' W8 Y; g- H% O; B, g) L
2 ^5 t) ]/ f4 S' j2 I8 T) |+ k
}
; Z) r$ s3 O) L* R/ R8,offset偏移" Q% B; d+ {, S5 y! W5 b
4 n- G) Y! F2 J, r5 D
char   distance_str[] = {"10.0"};//偏移的距离; h% ?. X6 r7 N6 h0 y0 D

5 D$ G  O# [% ]: P5 n5 kint  num_curves;. U- q8 G1 |$ D9 F& P0 l
tag_t *offset_curves;! y5 a* z' m8 ~/ y9 C$ f# k
UF_CURVE_offset_distance_data_t  offset_distance;
0 b2 r1 E! v- }9 Yoffset_distance.distance= distance_str;( _* A$ r1 _9 n8 A- j2 y
offset_distance.roUGh_type=1;) T1 g, \! l! X# |
UF_STRING_t   input_string;
# w3 r8 u! _  o7 s: {  Binput_string.id=curve_id;//加入想要偏移的线
' l1 J. @5 H: `  s( [- E5 einput_string.num=1; //偏移矢量方向数量. g6 z3 H. C/ n' P$ w) D
input_string.string=&string_count;//偏移线的数量2 q1 v3 N1 C/ f( d# [0 F
intstring_dir=UF_MODL_CURVE_START_FROM_END;
" N1 I8 Z* c- K% e3 Vinput_string.dir=&string_dir;
8 l4 G8 _1 t& L+ |- \: L4 \! ~6 p8 |" W' i' ~, l
UF_CURVE_offset_data_toffset_data;
, f* z) T8 B, ]9 g7 m3 j
/ T: q( ]9 F! H% koffset_data.offset_def.distance_type1= &offset_distance;
2 _2 E: i; o7 r! v4 l5 roffset_data.input_curves= &input_string;
8 ~6 [2 N; U$ aoffset_data.approximation_tolerance= 0.01;
) u* [3 R. @# e! G9 N( B$ woffset_data.string_tolerance=0.001;
" ^, N4 v& Q2 K3 ~* Z' a9 N. R* Voffset_data.offset_def.distance_type1= &offset_distance;) ]; ~7 g4 [9 @1 ^2 z
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
. M* U! N8 `" G6 }3 U( AUF_CALL(UF_CURVE_create_offset_curve(&offset_data,/ ]6 _. Y) g# |! `# _& w( f
&num_curves,&offset_curves));5 b" L" `; f, G3 V
9,创建平面
6 E/ R, m) i, r, V) B& @UF_STRING_tgenerator;
. N; e# R4 L3 u& d  b5 \+ aUF_STRING_p_tge = &generator;6 f2 w' b% q+ o0 a

8 ^( J; E1 W) `" tUF_MODL_init_string_list(ge);
. H/ m; J6 T+ j# g9 ^( `: MUF_MODL_create_string_list(1,12,ge);
: \! E9 j7 Q' V! ?- L/ G4 m# `1 S  Q1 N; i3 k5 p
ge->string[0]= 1;( M, ^# b' w; F/ Y
ge->dir[0]= 1;//指定线从开始到结束5 f( R$ f) p% h  G% P
ge->id[0]= arc_id;//指定边界的id- f5 ], z, p7 \" i4 K
doubletol[3];6 @8 h( J6 i+ I. \$ w
tol[0] =.001;//直线公差
3 _! k# a" q2 W4 R" @0 d9 Y8 N# ]tol[1] = .5* (PI/180);//圆弧公差
* S( t% R  g" r, r8 q) ctol[2] =.02;//不起作用6 w: S7 \7 M# C+ R" ]3 b
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
  e" S2 k8 R+ i6 K. E& v10,选择
; B+ \" F3 k; e2 g* \1 v4 b1),点选择! x- @+ C- ^8 F
tag_t point_tag;. {# s0 B% n" j- h; _. R
double point[3];% d4 ]. N: J6 F0 @$ ]
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
; L; J- x; l1 B1 a       intpoint_res;
( I) m3 Z# _% F. u  \" C; P, E/ t5 w; j$ T/ I
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,* Q, l0 R0 f8 D+ x* H3 p& X% }% l. V
point,&point_res));7 U9 K/ J. `. k# t* d2 D( P" U% F- T
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
; o2 [+ T9 @* a! g{- e( o) v7 h# i3 x% m# Z
}
" `( O  y# L7 ^( l2),向量选择
1 G! x  L6 V" Z, n     int  mode = UF_UI_INFERRED ;6 U. ]& e" B# V
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;" `  k) P; G1 N! {5 B1 X
double vec[3];" x  i; e& d  m& P+ P
double vec_pnt[3];0 @) u% b4 t; r6 \" F6 a
int res_vec = 0;
1 P3 j! Y( z% p' h* ~5 k     UF_initialize();  $ o. Y0 x; T+ {9 t) @$ \7 D- l
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,' o, K' f0 i# e& h; ~9 N, k$ _3 O
           vec,vec_pnt,&res_vec);
/ y+ |& K' ]- i: M, j2 N     if( ifail != 0 || res_vec!= UF_UI_OK )   
  C/ n! ]- T2 Q% S9 H     {     
$ i4 c* S$ z. I0 g  t2 |5 a           UF_UI_ONT_refresh();9 P6 g0 J/ A) r% o( R
           printf("No vector selected \n" );
0 ^! b. `) x* |1 a- Y- p     }
$ F5 n4 I9 N' E* y0 P7 O     else* X; c9 y' E; m, F
     {7 S  m! E& o. e
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
& B& X" ^5 I* O3 W0 L" m; n                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );# ^* o( C0 S" H1 K8 j
}  f3 g% V0 V  w7 e/ T: p
3),平面选择
1 p! x4 t4 Q+ i& D5 rtag_t plane_eid=NULL_TAG;
: p3 C2 B7 b% V5 U8 _( u9 T* e7 D( Pdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
5 ]$ E- B3 E& i' [   double origin[3] = {0,0,0};
) V: _8 R3 e! H$ T   double pts[6] = {0,0,0,0,0,0};
5 ~" [% k- k/ m# A- s3 y   int i, error_code = 0;
* F; t+ w/ a5 z   int mode, display, response;
* t  E3 c9 I- I   mode = 1;                    
# x" E% f! a/ a! J+ Z' Vdisplay = 0;      - m. S( ^3 c. J  ^
UF_initialize();8 \* G% Z: s, i2 {! M
   error_code = UF_UI_specify_plane(: d8 F+ R7 ?/ `) _$ c- j' ?
         "Select Plane", &mode, display,5 b7 G- C' Q# P8 w$ z
         &response, orientation, origin,&plane_eid);
4 e  t& T. U4 v! Y$ a
3 I2 l5 W4 a  S' m0 b( S7 I6 ?   if ( !error_code && response != 1&& response != 2)
- I' q7 i8 T" n" C; Q8 A2 W1 l   {* I% V  M; s0 K3 e! a5 s* c- H
                     for (i=0; i<3; i++)' U1 U+ K: Y% A2 `
               pts = origin + orientation;
1 I/ d# H3 \+ y" ?9 J* t; P                     for (i=3; i<6; i++)
( A2 n: o- s- y               pts = origin[i-3] + orientation;
9 D$ }4 b$ M' Y; E5 W         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
( I. k0 j. @' ~* F   }) |8 p: \* b. [9 O& p
11,临时点,线
& x' j$ u$ ]" L) a& ?, V0 rvoid display_temporary_point_line (double point1[3], double point2[3])  w% ~3 n9 h$ I6 u$ ~- a1 Y/ G0 a1 Q
{
7 e" r; G4 x  m7 _3 D- G4 C  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
) m( C( F0 Q+ c: p! d  UF_OBJ_disp_props_TColor;5 M9 V' H# p% k1 C2 g- M
  color.layer= 201;2 J8 W, [6 S  a2 C
  color.color= 186;8 E- L, p6 B9 g, Y; d
  color.blank_status= UF_OBJ_NOT_BLANKED;
! G! ~4 n: C2 t: r  color.line_width= UF_OBJ_WIDTH_NORMAL;, y5 D. z/ c5 w6 L: b+ e
  color.font=0;
3 G5 k/ m7 a6 V3 K  v# U  color.highlight_status= FALSE;6 b  x( a8 A% {3 H! s
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
. g4 G, B8 G# C8 Z8 ~1 j1 W
  C  P3 F; U$ z3 R0 Z( y# F( |1 ]UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);2 \0 R) |  I$ t) Z  m- O
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);* x9 h: |# q+ [$ N
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);1 G. J+ ~. I! ~3 u
}
% i/ n, u: ^  [# \) e' n12,WCS与绝对坐标转换
3 M( Y0 y" C8 Z, K                        voidcycs_wcs(double point[])
( `6 L& A0 r( [9 o{9 u/ L2 n: V. R7 e2 B* _
      tag_t  wcs_id,matrix_id;
$ R2 G0 n+ b! n5 x' c* m/ `      double matrix[ 9 ];6 D# z6 U% z) G0 U" c
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
4 T2 b  O) J  _/ u  X' ^      double wcs_origin [3],vec[3][3],point_origin[3];5 J! B8 R* G$ \7 d
      //1,得到工作坐标系" ]7 b  q  t  W3 B0 i
      UF_CSYS_ask_wcs(&wcs_id);
! u/ D6 X. A" h' t! C. L1 S      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
1 ~8 s/ v7 D0 h! K* t6 a      UF_CSYS_ask_matrix_values(matrix_id,matrix);  D* ]2 Z1 @' G

# b( I: q1 z4 j% L7 R$ M* p% O" z      //2,得到工作坐标系轴向量& S3 x% o8 r% K, Y! j
      UF_MTX3_x_vec (matrix,vec[0]);6 a+ G( ?4 t/ U/ S
      UF_MTX3_y_vec (matrix,vec[1]);
5 m$ l" p: }% B1 O; z9 X      UF_MTX3_z_vec (matrix,vec[2]);
6 G; f0 r8 Z/ u3 T
) [' ?* `3 C% W2 N9 m      for(int i=0;i<3;i++)
8 P! H5 H2 u9 g0 p      {     ( g& A$ ?# [& C* u+ v
            double tol;" o4 [* @* s4 ]" @
//3,得到点到工作坐标系原点矢量+ \7 C, B" w5 c
            UF_VEC3_unitize(vec,0.000001,&tol,vec);6 W2 Y) O( B$ w# j
//4,得到点到工作坐标系原点矢量& c1 C- x8 J/ ]( C
            point_origin=point-wcs_origin;6 I- o8 m8 ~' a3 Z) A% r/ C
      }7 u6 e% `) \, ]0 {/ ^
      for(int j=0;j<3;j++)) Q( V7 [8 b$ B. I- ]6 A: q) ]
      {1 w1 T" B0 j  |3 O! G; g* o+ l0 E
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
2 p3 T, _) s% t& ?5 T! n      }  B' E& t6 f8 B" S( J9 k. V+ S
}! W, v9 C$ S6 n* [6 ?
13,三点求圆心
$ _4 {4 o2 B6 D8 Y3 Z) I4 `* q#include<iostream.h>
2 M/ K3 m$ g, a7 J/ [/ N" u#include<math.h>
( L$ U5 u# E* Z- e# X9 ^' K& y+ S/ _/ B" n- ~  a+ v. o, S
int main()6 i* R1 a! K. _* s# L7 U
{" T5 k+ f1 ^9 p+ L7 C
      int x1,y1,x3,y3;
2 J! O, Z) ~% D; x" A      double a,b,c,d,e,f;" l3 v7 h3 \/ i! B; {1 y
      doubler,k1,k2,x,y,x2,y2;
' B  U2 U. E3 I/ x; n- m      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;) l& n/ o1 V) Y
      cin>>x1>>y1>>x2>>y2>>x3>>y3;3 P$ k2 p1 l( k1 U( |. b4 Y' g# p
      if((y1==y2)&&(y2==y3))
! c/ H1 f( `$ I7 ?0 s9 c      {
4 B6 v9 j  f" o2 K9 j* x% k            cout<<"三点不构成圆!"<<endl;
$ E# [2 N. ~) ?4 {            return 0;
9 f, ?4 N  b$ Q( F* P  t7 R      }
- Y' _% e" h8 A- |) P) x/ v      if((y1!=y2)&&(y2!=y3))- m0 r( y0 f. m" g
      {' D/ C$ `: z' T7 c
            k1=(x2-x1)/(y2-y1);# r5 Y" H3 P, R  ^
            k2=(x3-x2)/(y3-y2);
4 X8 w4 K/ e; X; q+ a      }& R1 |: J0 r+ s& N3 {$ A1 Q
      if(k1==k2)+ W# y8 g$ j6 {: X
      {$ k4 u" d) G* e( H" f
            cout<<"三点不构成圆!"<<endl;
2 |# E, B0 D, y( g6 T' O            return 0;, T- D& A% S! |+ `
      }8 i1 R! u6 [! n+ D  r
      a=2*(x2-x1);8 s4 L( P% M: j! r
      b=2*(y2-y1);4 y6 d/ D6 ^, @1 b0 a
      c=x2*x2+y2*y2-x1*x1-y1*y1;1 {) J0 S7 e  e4 K
      d=2*(x3-x2);
6 [' M7 H; M% @      e=2*(y3-y2);6 d- D/ C6 F+ r) A
      f=x3*x3+y3*y3-x2*x2-y2*y2;
3 b: {* l& C6 I& d/ l) A6 j      x=(b*f-e*c)/(b*d-e*a);& U9 L, Q( Z, J1 T+ m
      y=(d*c-a*f)/(b*d-e*a);
1 U# N; D7 o4 F% J      cout<<"圆心为("<<x<<","<<y<<")"<<endl;2 D/ E" \/ h* ~4 b, b! b
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
; u$ b5 N0 p! p( q* e- e- J1 b      cout<<"半径为"<<r<<endl;
# F$ o2 q1 T. r6 Y      return 0;
8 A0 U, @$ _; }}" d  c6 W# U  u5 E) m# w+ C* @, o
14,查找圆心) W* Z. p5 D; `7 }; A! K1 p1 I
            UF_EVAL_p_tevaluator ;
9 m+ ~2 Q! m' h  R$ R8 a            UF_EVAL_arc_t arc;
' P6 s7 a3 m- f  u            UF_EVAL_initialize(obj_tag,&evaluator);
2 ]$ Q- h3 d* @9 c9 I2 B% Y# `            UF_EVAL_ask_arc(evaluator,&arc);
: ^. x" |7 l- v1 E* L2 v            UF_VEC3_copy(arc.center,point);           ) C! g+ W6 h0 J1 r" P) e
15, message_box9 _1 g4 z, x5 i9 X
void message_box(int *res_mes). d- v( W3 h4 _$ @
{3 z) `5 i  E8 W% B% ]3 X
      UF_UI_message_buttons_sbuttons;( p- `6 c' N3 e& Q3 z
      buttons.button1=TRUE;( T$ K) d  b" Z- I
      buttons.button2=FALSE;
* w: z0 q' y* v% B- ^0 {      buttons.button3=TRUE;: u$ z; f' O3 q  r$ i2 M2 G
; x: p9 a- z9 E( B7 ~
      buttons.label1="OK";
0 u6 j0 V; @- o4 A7 P0 m0 V      buttons.label3="CANEL";
3 t- ?/ x& l/ Y& h& w8 m3 D( B
4 H+ M+ @) _2 o$ `0 _      buttons.response1=UF_UI_OK;
. e) t5 J2 y* g4 }. W% r" p      buttons.response3=UF_UI_CANCEL;
' M/ K% [7 R. p2 _1 i4 z% W  `# n9 s+ x/ T
      char *string_msg;
/ a4 @2 _" k. ?( F      char*material_msg="ALL selcted objects will be removed";
, b( r: b: f7 j, d4 x      string_msg =material_msg;
- u2 o* z) P, e
$ g9 X- C! j' [% T/ v" e: s      UF_CALL(UF_UI_message_dialog("",
7 T! s- m, s" D0 R2 N! T# s            UF_UI_MESSAGE_WARNING,
# _! Z. ~! k$ N% h9 _( k          &material_msg,) ~8 P0 s9 Z, L4 l# }2 m" B) F4 b
            1,
% u( o6 W: e2 g5 F" z5 [            TRUE,
# t+ W! _; Y8 K8 X) v4 Z            &buttons,
* w: `& R: E# U' {/ ~6 C; j             res_mes ));) M: Q' Z  O5 J+ |4 {. z
}8 @& \' U# y! J' B
16,选择过滤9 l9 l6 v2 H  y/ J$ g5 _
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
% T- p4 D) w7 a. y{
$ _: k5 m9 I" [# N# X$ ^      int nums = 1;
% A: o$ P& V* {) q; h+ H/ ]      UF_UI_mask_t masks[] ={
7 `/ ?9 a# l+ p% c& S            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};3 P. A2 k9 u: W1 i

3 L0 o: o! ]: X/ U) N  n            if() ]2 J" @5 w' i# d' n, J
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)6 n$ I5 [' v+ c) W: Q7 Y; j" P
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)% r* W4 V9 T- s, F" m4 U$ K  p! a
                  )
6 a, n; x4 h4 v            {
* l. M  L% T8 K7 g# |- N$ }                  return(UF_UI_SEL_SUCCESS);
; J+ p/ F# u6 M' ^: r1 |  n            }9 P; N6 p+ y1 q* w: _) M
            else( c4 x8 S9 V; p) H
            {     ! I! @4 e; l$ J1 u& p2 X- b  r6 Q- G
                  return(UF_UI_SEL_FAILURE);; p7 F/ w) @$ }( R
            }
8 N, e2 s. m( f4 J}1 e# t9 U2 v! l/ U
int find_tag(
; \6 A. t* M9 Q8 d% t6 X                    void * client_data,//用以传输过滤资料
2 o5 h. L0 z1 k% d                   tag_t object//现在鼠标所选物体ID
; s  _5 o# ?* {  K2 \- j                   )
( d; c6 N$ _7 N4 N% H7 L6 I{
0 M! e7 w" o2 W      user_data *obj;
! r3 ?0 N: r3 |+ X      obj=(user_data*)client_data;
# r" z6 |# j2 n4 v0 N2 `      int find_face=true;//接受
% T! }( {% Q' ~1 r, K8 Y" B! g      char *string1;
) b* W0 n% V7 X# F/ N" @      string1=newchar[133];
1 y7 N9 h  W7 h9 X0 d7 O+ ^8 D      string1=UF_TAG_ask_handle_of_tag(object);2 P7 u' ~  g% z, d2 O3 {! F. P, l
      for(int i=0;i<过滤的数目;i++)1 \2 ]! o( s9 _2 u. D2 o4 N. {
      {
5 `6 ^+ E, f0 |. T5 l* ]" M
# r' O5 W! O  o# |5 ?9 n6 p            char *string2;8 K9 E+ W" d8 ~( K; G4 j+ G* p
            string2=newchar[133];
( z' H' q: t* I2 Y+ v$ t% T            string2=UF_TAG_ask_handle_of_tag(物体ID);
8 p1 O% V. ~) g            if(strcmp(string1,string2)==0)3 K0 \+ t+ o8 L
            {
2 F7 O% I+ a& l5 p                  find_face=FALSE;//不接受% d! N4 @& m. c2 W( N7 \
# i2 i! G9 k7 L* {! o. ^
            }6 D; W. V, O8 k
            delete []string2;
+ s0 q/ x2 }/ Q+ g6 Z! ~6 E: k7 ^& g, ^      }; }9 q- N% P8 c# K8 o5 N
      delete []string1;
+ v4 M7 G9 Q0 @! R      return find_face;' y, Y' Y9 N& r/ j2 Y) A
}# v3 P% L% N9 d' G0 v0 o' E$ R2 H
8 c3 D2 ~. @8 A9 f$ c6 J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了