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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

2 L$ K6 @0 }# w# A* n7,裁剪片体
) X, ?, h% Q( Ytag_t  *trim_objects;
2 P7 d) k+ \/ ytrim_objects =new tag_t[count];8 k& P) {# v! j+ U. \' K! i- G
trim_objects =bound_id;
4 N* f" T9 F) ?( v. Pvoidtrim_sheet()
- \! M+ ?, r5 G$ i: X# x{
7 N. Z& s: M, p& e# J) ^
# A5 K4 j6 J$ x" ~9 m5 m& A+ V0 [6 b      UF_MODL_vector_t projection_method ;8 L, W5 k" S* V. r. S: X8 G
      projection_method.reverse_vector=0;
! g% |" j! f/ k0 i( P( w      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
) @  P4 P8 ?3 r: {( Y2 b      UF_MODL_vector_defined_by_union_tdir1;: Z! V- F( e% }$ y* R8 i
      UF_MODL_vector_direction_t dir2;
- O$ [( {( |6 B; N2 B/ a2 R! V      dir2.xyz [0]=dir[0];: V- Y! u+ {4 L$ b
      dir2.xyz [1]=dir[1];
1 y5 H& z, g& v" R: d& X8 `8 \      dir2.xyz [2]=dir[2];
9 t! @1 W* ]$ z* c- _* F7 k      dir1.direction=dir2;
! k( ?( m- W/ V* x
9 D$ w' i* [. _& Y4 K( g      projection_method.defined_by=dir1;
9 o4 h( U1 H* }  v" g
" B3 q5 l1 H  n" K0 f2 X9 {      double point_coords[3] ;8 }7 J9 @" _; }/ @2 Y# {2 m* E9 n$ t' f
. _# U5 V6 E  R( ^) ?) v+ a
      point_coords[0]=center[0];& ]/ |3 r' w+ f1 S' G8 h
      point_coords[1]=center[1];! [/ g5 e# p3 t* t& r, S# c& p
      point_coords[2]=center[2];; ~3 b+ t- S6 _' ~/ c; ?( t; Y
( s2 h1 G' L- f. g3 |
      int gap_point_count ;
! ]; X. R4 T+ h0 N. _      double *gap_points;2 \' r6 V- n/ ^3 U+ W
      tag_t feature_obj_eid;
# w, q$ P8 [7 Y, a7 q      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
2 H  q% s  T7 e7 ~* O4 G                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);8 b$ D1 l1 k1 N! O0 o
* Z& i$ I( F9 K! l: x
}, y* ]! M. J; Q! W0 M+ W, M' G
8,offset偏移
' h1 ^8 k/ y$ [& S; r9 S* Y9 |) y# ?
char   distance_str[] = {"10.0"};//偏移的距离2 n- H* k9 [7 M2 s" f
% m4 u3 H; \; o; Z  S4 {
int  num_curves;: g# _5 f5 y* f* B9 W0 K& f
tag_t *offset_curves;8 h) D' [8 L$ _( B( i# G  R
UF_CURVE_offset_distance_data_t  offset_distance;
$ j* |2 F5 k; l. m9 i1 N6 z4 woffset_distance.distance= distance_str;
: s% w2 b! ~, {offset_distance.roUGh_type=1;% F5 J) e3 R2 F+ w; x9 L1 @4 }" P5 y
UF_STRING_t   input_string;
# U1 e$ ^2 C- H  r1 F0 s; `input_string.id=curve_id;//加入想要偏移的线
- P4 l; L5 Z; E: m6 T7 e! Hinput_string.num=1; //偏移矢量方向数量
# `' l/ d% K( z6 G2 Vinput_string.string=&string_count;//偏移线的数量* y" Z5 }- u9 u3 [+ n0 K
intstring_dir=UF_MODL_CURVE_START_FROM_END;& m' C/ _3 E( k* m' |, M5 y
input_string.dir=&string_dir;% g  S5 W' v8 X& T
( J7 h9 s1 Y" N. V8 Q) g4 A
UF_CURVE_offset_data_toffset_data;
; m- q! Q5 g$ r" a: J' Q# ^8 X6 _+ ]
offset_data.offset_def.distance_type1= &offset_distance;
- s; v2 u( {* }4 hoffset_data.input_curves= &input_string;$ E# d" S3 p7 c0 ^: V& D5 J' w3 O
offset_data.approximation_tolerance= 0.01;" C! L5 m2 F# T- r# L6 r
offset_data.string_tolerance=0.001;
1 c. I+ q2 n5 L3 D8 woffset_data.offset_def.distance_type1= &offset_distance;
$ E, D2 ]. b3 N& v# Y' Soffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
: d) |) H, p7 k1 u. yUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
7 m  T5 b* k1 g: G- P&num_curves,&offset_curves));) f% R1 Q5 [: P( Z3 x9 P4 v& P
9,创建平面+ i4 a9 \- z7 `- L7 o* g
UF_STRING_tgenerator;
1 W0 V/ G( G5 k- GUF_STRING_p_tge = &generator;
3 c* }2 `* ^7 M9 z5 H0 B& R
' w4 o/ Q+ B* A4 w  v- v" s9 g2 GUF_MODL_init_string_list(ge);0 Q9 i8 G$ {/ v; a
UF_MODL_create_string_list(1,12,ge);/ d, a' ?# K5 }! I8 f

8 _& E" M7 t- a6 ?% Qge->string[0]= 1;
# \3 E7 p+ u& Yge->dir[0]= 1;//指定线从开始到结束
* T3 H/ K* Z( C: D! sge->id[0]= arc_id;//指定边界的id
$ X/ y; z6 [) ?. udoubletol[3];
, i" ?: Y0 `& g& atol[0] =.001;//直线公差, W; ^% u( \8 o* n+ E$ r
tol[1] = .5* (PI/180);//圆弧公差) ~& G) S1 J2 k0 q8 f# f" Y
tol[2] =.02;//不起作用
  K& n/ L& B3 k, z- X6 _5 m- UUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
2 @# F0 g1 x+ _10,选择
( S# X" A$ e& H/ o$ h* w% S1),点选择
+ h' m, s. E% a2 L6 ~tag_t point_tag;+ I# T; Y! ?! s7 _& k8 w  D# p
double point[3];
8 ]# S4 I) e7 p+ k) t       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
% K8 \/ C* D# w6 I" N9 @3 i& G       intpoint_res;
  k8 m% z2 e! Z# C3 a
' Q7 |& M, N" G# `: i" R# HUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
' e6 Y7 \& G* Apoint,&point_res));
, g) J& E  C* ^& i( j$ g9 Nif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)# N  u& x0 a. b% g# P5 n
{* t! x0 _4 y1 `* g: r9 N
}
! {8 O. s7 G% M# Z) \2),向量选择/ _7 Y* m/ x, [! B& k
     int  mode = UF_UI_INFERRED ;% Q4 w4 O/ g8 Q5 v$ b5 h2 A3 y
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
1 ?' B: W" o2 X0 z6 U9 x, |double vec[3];
7 {# P( M0 d  b' c9 m. mdouble vec_pnt[3];7 E( W6 B* |/ a3 ?+ ]6 j: U
int res_vec = 0;1 Z+ u) t! {" g; v
     UF_initialize();  
- f3 k# J4 N! \! F" L1 Q     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,4 k* W* _0 ~. `
           vec,vec_pnt,&res_vec);
! w4 ~% H2 Q% V& p     if( ifail != 0 || res_vec!= UF_UI_OK )   , T3 Y, B7 b# }+ G/ r8 N  U3 C
     {     1 O6 ?0 t) J+ e: {  W
           UF_UI_ONT_refresh();& @) _/ G9 i; O% |9 W+ E7 h# a
           printf("No vector selected \n" );
( C* X6 J- P: E' d, |$ D     }
6 s$ g$ ^2 Y* b- B: U' u     else! u9 `; d# w! M" Z
     {
- T( g, \8 s7 c9 H           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
, o* S: a1 O! k                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );4 u3 O0 c& W6 A5 B* \; Q
}
( ~4 n9 |! g; u) E8 h: x" y3),平面选择
# t  A" {! R! f% M2 X. I: q# Itag_t plane_eid=NULL_TAG;4 n; e7 e  c1 I1 \
double orientation[9] ={0,0,0,0,0,0,0,0,0};# V& Y1 a1 O! D
   double origin[3] = {0,0,0};: s1 A# e! \+ a1 p( i
   double pts[6] = {0,0,0,0,0,0};
* q( h3 X+ p; x9 h3 F4 `& o   int i, error_code = 0;
2 b. d0 A- b2 g( b: ?   int mode, display, response;
8 ?, T1 U/ \  e# y2 R* z  P- @: U9 H$ D   mode = 1;                    9 F! A' ~2 S  O5 V
display = 0;      ; }/ P+ H  {4 D% b7 d
UF_initialize();9 S; u8 T* s. E7 k
   error_code = UF_UI_specify_plane(; w1 W' Q; K# O2 k
         "Select Plane", &mode, display,3 B9 @1 k2 D2 y0 }# R
         &response, orientation, origin,&plane_eid);# b2 K0 F4 ]/ N+ h
& l" S* k, q* V! l& G
   if ( !error_code && response != 1&& response != 2)
6 e2 @# @, p. l: o6 x2 `   {- t' K. o8 P2 I, }
                     for (i=0; i<3; i++): T) H# `& r+ h0 D$ a
               pts = origin + orientation;
0 h1 o! `/ c* y                     for (i=3; i<6; i++). ]7 Q  k/ r9 B. ]  g6 V# ^) Y* r3 m
               pts = origin[i-3] + orientation;
8 k" h3 g/ k9 c( t/ ]9 @         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
4 o; d" @3 r9 y9 Q   }
" L, z8 G& F7 g$ v5 Y5 [* e- V- _11,临时点,线  v& j6 q+ i3 a8 b7 h
void display_temporary_point_line (double point1[3], double point2[3])
1 }1 {& t) S* ~1 I( P4 t4 ~{5 |5 d/ o( W" ]% p3 F9 b
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
3 {" a* Y5 |0 s! Z6 t: x' Q  UF_OBJ_disp_props_TColor;+ ]6 `8 x4 |( o- l
  color.layer= 201;2 x4 X2 `2 G. S+ g, U
  color.color= 186;8 c, P$ j& F& a* S9 @
  color.blank_status= UF_OBJ_NOT_BLANKED;/ M; t7 f% d( V5 p* [
  color.line_width= UF_OBJ_WIDTH_NORMAL;% F0 z3 A3 R5 Q4 j8 \  |6 \+ K5 i
  color.font=0;: a, ^( G: e  j* R' |# s3 O
  color.highlight_status= FALSE;
' I' s# P8 J+ f  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
2 a" I  X8 J% r8 k0 t- U- ~) q1 Q% u/ v* m+ R& o# ?. u4 `
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);4 X& x0 k  P& l* `9 U) {9 K9 F
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);4 t4 g6 N# t  q) o
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
$ C3 j/ S: Z& I) ~" ~/ K2 O, E}
" D3 A$ M" S: D( O3 ^1 c12,WCS与绝对坐标转换
2 Y4 l. x: p, M# {                        voidcycs_wcs(double point[])
3 v/ f* V5 t+ R* ^6 I' y{  i  h) d. g. ]) s& V. i
      tag_t  wcs_id,matrix_id;
) P$ ?: |8 \+ n- X6 j      double matrix[ 9 ];) D" A, V. i5 Z- c
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量0 z1 s3 m, j+ H; q+ {
      double wcs_origin [3],vec[3][3],point_origin[3];
$ I- A" }+ Y% I+ r# F% c      //1,得到工作坐标系
- r$ O  _2 g  i$ r" n      UF_CSYS_ask_wcs(&wcs_id);
/ d; M, p, }' n% L6 l' n) N( q      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    ' _6 y* ^1 F8 x( }
      UF_CSYS_ask_matrix_values(matrix_id,matrix);
4 X9 m2 \, L- R8 V; ~
; Y9 G9 c+ _7 X$ x( |      //2,得到工作坐标系轴向量! [. V4 s1 V4 [. E( D  B8 A5 S5 b
      UF_MTX3_x_vec (matrix,vec[0]);
! G" t- E' V: W/ g4 o$ m7 S      UF_MTX3_y_vec (matrix,vec[1]);
2 m) X5 g3 V( }" d7 l% o8 L# `      UF_MTX3_z_vec (matrix,vec[2]);5 k- G; K; p" b  V3 q' k

7 ?: S7 a4 d* Q: M& B; E      for(int i=0;i<3;i++). y9 T3 p  m2 O8 G$ m3 ~9 C) [
      {     
& P! v$ [! q6 [% }" V            double tol;$ o: c" C' m8 \. s) }0 g
//3,得到点到工作坐标系原点矢量
. x# |: P7 D. y9 r7 d% U: {( d            UF_VEC3_unitize(vec,0.000001,&tol,vec);
- H5 t5 ]8 b8 p: d//4,得到点到工作坐标系原点矢量  d. C& G8 j( F# @- ~
            point_origin=point-wcs_origin;9 h' p5 r7 p" {1 I6 O6 c
      }
; i+ U; L; G& t4 V, F5 h% w      for(int j=0;j<3;j++)( K  R: R2 {0 V* U
      {/ c' }! N2 r% ?( O9 u. P) ^
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
5 N! s) N( ]2 o. K4 _  Q0 J      }
: [5 w" D' _* M# t0 O" ]# H6 R}/ u% G1 d; b2 A3 F  @! H7 h
13,三点求圆心9 c& k7 H3 [: ]$ h& q! q
#include<iostream.h> . }+ k6 V0 s" [- C# Y$ g5 |
#include<math.h> 3 b  G6 h/ B! [

$ |' o) E2 v4 `! H. Nint main()
: b/ x2 z! V% `5 {; O2 A{8 X. c) ~  A  r8 l
      int x1,y1,x3,y3;
* g; x( _8 _) ~( u8 N9 D( Z      double a,b,c,d,e,f;
6 g# N5 o: E2 a+ i6 B) H      doubler,k1,k2,x,y,x2,y2;
0 R: A' P4 M7 z1 ~$ I      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;% ?! q5 S* b( [- R
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
2 b: r1 n7 x- ?7 d      if((y1==y2)&&(y2==y3))
* {9 @1 h, t8 k2 \; V/ b      {
8 \5 J7 }. J- A% Y( |- l4 }            cout<<"三点不构成圆!"<<endl;7 U9 q5 j1 S* \, I) q
            return 0;4 g1 H1 X+ S& W7 {/ L0 m
      }2 u* [& e  o+ l' W; r" `% d
      if((y1!=y2)&&(y2!=y3))
0 Q7 N9 e4 o4 ?2 }9 t      {
: w& d% b8 h& @  y( u! F+ |* o  S            k1=(x2-x1)/(y2-y1);/ z! D' o5 \9 |
            k2=(x3-x2)/(y3-y2);& @1 N2 I! V7 ]/ O1 C8 v
      }
8 O1 Y' l" g# |4 E9 a% ]3 ?      if(k1==k2)
1 T1 f* C: A$ K- b: H( N0 R" C% K2 J      {
2 s0 `9 {# h0 M  A1 v            cout<<"三点不构成圆!"<<endl;6 w. S4 T$ K# x2 |3 v4 Q$ u
            return 0;- @  |& E% x: S  }$ q
      }0 _! `3 Z; {  q, d4 |) }
      a=2*(x2-x1);, z5 J8 U( Q* `; s4 t( M
      b=2*(y2-y1);
  Q. T# T1 g' A, V) _3 ^+ C      c=x2*x2+y2*y2-x1*x1-y1*y1;# s/ S* B8 U0 Q! Q' p0 K
      d=2*(x3-x2);+ o  f4 X) j4 m1 `% L
      e=2*(y3-y2);
+ r% r5 S3 w# O( Q4 A# ~1 A      f=x3*x3+y3*y3-x2*x2-y2*y2;
( C, G# |. l$ i- g/ a, x1 }$ e# o      x=(b*f-e*c)/(b*d-e*a);
* }2 R/ d4 C% a      y=(d*c-a*f)/(b*d-e*a);
/ N  c. g( h+ o$ H# o      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
+ [' p/ ]0 c2 g8 k  Z% n      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));' @* H+ ^7 n+ q  O+ d
      cout<<"半径为"<<r<<endl;0 _2 |5 k$ h, K$ P- t5 ^9 v
      return 0;6 t0 ?- V" }2 p8 K3 x
}* s. o& u3 H4 R6 A9 @
14,查找圆心
* D7 \  O* u/ A- G6 i0 e            UF_EVAL_p_tevaluator ;* I4 C3 R8 `7 P+ x7 Z" R
            UF_EVAL_arc_t arc;4 X2 a9 J. k- w3 P
            UF_EVAL_initialize(obj_tag,&evaluator);
9 \& H3 t* ~1 |" H% N4 Q* a9 C- X; _. Z            UF_EVAL_ask_arc(evaluator,&arc);! j1 y" a/ P5 o; Y; o, d! E" t
            UF_VEC3_copy(arc.center,point);           8 X7 A+ Z8 f, R$ @1 R3 U
15, message_box
0 |0 g5 X* I( j7 @void message_box(int *res_mes)  T3 N- V2 t% B, e5 N# X' M# ?
{
: L! `, H2 h/ `1 k' L      UF_UI_message_buttons_sbuttons;- L- f) j4 i, g( }' G, x; Z, Z
      buttons.button1=TRUE;$ F! N. J/ X* m+ Y+ V8 t  p
      buttons.button2=FALSE;( o' V: A4 {' a) I
      buttons.button3=TRUE;1 ~7 o3 o( p0 O1 u. L  p! h4 d7 v

/ U6 m! c& o6 Y$ l! q      buttons.label1="OK";
4 W' v8 [6 f0 Y) D8 Q      buttons.label3="CANEL";
1 T0 u% ]5 S- R1 T7 i& g; M- x0 b" L* F) P% f) i
      buttons.response1=UF_UI_OK;. I( _; I% \& \7 _2 F
      buttons.response3=UF_UI_CANCEL;. o/ X3 X6 ]6 S# \7 F/ E
2 b  f- ^8 ~& l
      char *string_msg;8 U0 e5 H) X3 j& a
      char*material_msg="ALL selcted objects will be removed";
- s! Y/ E7 {) R7 ~- Y; s+ H      string_msg =material_msg;
0 x1 d# r2 c% s# ]
" ~9 H# U. }) L4 Y2 |      UF_CALL(UF_UI_message_dialog("",; g, f5 F! k5 K. E- c% _, J
            UF_UI_MESSAGE_WARNING,
% V( ^3 `0 P. ]% R! V7 Y          &material_msg,: B, _7 e. A! M
            1,0 S8 i, F# {3 K0 L4 [1 C
            TRUE,
8 {; N! l" q; v  `            &buttons,
4 w4 r  ]) x# A! t             res_mes ));
% q$ n; Y. \( F: V* G8 d}
8 b7 q: Q  z7 y0 K16,选择过滤
, K) X- p3 p! B( k; j0 L9 X) {static int init_add_face( UF_UI_selection_p_t select, void *client_data)
, X$ z( Y) l1 q$ K{: j2 d% I! l4 h5 M
      int nums = 1;& q4 A2 c. t+ ]
      UF_UI_mask_t masks[] ={
2 d5 J" |3 W% ?            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
8 ]) g0 f/ d3 N& Q7 w: M* b7 ~) l- @; K! f) t0 D, Y% z/ d
            if(
) @6 @- D' @- w( r* U; R                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
$ P7 t6 j) L" `                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
% s: j1 U+ A5 n                  ); J+ W+ w7 R) \
            {1 Q7 r- t  e! i3 U
                  return(UF_UI_SEL_SUCCESS);
# {* G8 r; J- Z/ Z  E% v& R            }
; j) N+ R5 V8 a  J            else6 m4 L6 }$ P  h6 `4 a' G/ W
            {     
8 f+ K! {4 |* r                  return(UF_UI_SEL_FAILURE);8 [  _0 ~. B1 d: D" L5 }- D: [
            }; j: ?! G% L& N! H  g5 t
}- F5 G" I9 J) m
int find_tag(
0 r  J8 x5 a( n( `5 o0 p0 p                    void * client_data,//用以传输过滤资料
3 h  u8 M& @8 c5 C# K1 \' B' P                   tag_t object//现在鼠标所选物体ID4 Z. t3 E/ D. a. b
                   )+ W/ }  y  ^! R' m- Y& o
{
1 k5 W4 T  ^1 d% C( Y      user_data *obj;
. V4 U5 N5 k. B: m/ g      obj=(user_data*)client_data;, P5 j4 l- A" F& n
      int find_face=true;//接受
$ x* s! @: c6 U5 E' z      char *string1;$ T) x+ s/ o9 a7 i7 _
      string1=newchar[133];; w" }1 c) P5 `: y, e; F! U
      string1=UF_TAG_ask_handle_of_tag(object);% N" A5 v' l+ |' W1 W; N
      for(int i=0;i<过滤的数目;i++)5 ~# g# k3 q$ P$ {0 \" v
      {
; s0 I4 G4 n9 e  a+ ?' F$ F6 U+ {1 S9 n( }
            char *string2;
2 F% o) Z5 ?1 Y2 Z1 {            string2=newchar[133];* ]: f, q# ?1 l4 {6 Z& D& W
            string2=UF_TAG_ask_handle_of_tag(物体ID);
6 {6 K4 j7 K0 {            if(strcmp(string1,string2)==0)9 S8 t+ n1 ^8 @. g
            {3 }8 n4 m! ~0 p- R. ]3 y8 S  q
                  find_face=FALSE;//不接受
( c9 E3 L$ v- W0 n% g5 i* `% Z! Y0 F- m, Y; ?2 c, ]& {! {
            }
3 G7 t4 L; \% g            delete []string2;
( T1 o! V! E, v! E$ k8 i0 P      }
4 R0 R- Q9 E. A+ g! ]      delete []string1;
+ A) Z3 J& U0 S2 e/ a, z3 |( `- U      return find_face;8 g. W+ a- i# z
}
9 x5 b# ~) m" h& S# Q) P$ \5 ~0 Q' B9 O: L* R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了