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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
# J, A, x& z$ y  r2 d$ y
7,裁剪片体
: t+ ~) G5 X4 H6 \tag_t  *trim_objects;
2 P$ T2 ?* z. |0 y) |trim_objects =new tag_t[count];
  |4 q9 |+ [- ptrim_objects =bound_id;
% S+ M( R: R2 L# ^voidtrim_sheet()  D* E0 s+ i8 M- T
{3 ?8 b" F8 T# X& [8 y/ o

5 [4 H" `$ Q( H, C& ^$ {      UF_MODL_vector_t projection_method ;( m. b4 d- S$ E1 y
      projection_method.reverse_vector=0;: ~7 n0 u1 E3 y. E9 k
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
4 d) H1 i% u4 @! u      UF_MODL_vector_defined_by_union_tdir1;
/ G" Z* o1 f* S% d+ e8 J9 H      UF_MODL_vector_direction_t dir2;
- k) P& S3 V5 G8 o$ o7 b      dir2.xyz [0]=dir[0];. W1 p$ q3 _' j7 T2 e
      dir2.xyz [1]=dir[1];9 t: h1 j% B( z2 b
      dir2.xyz [2]=dir[2];
, T- I' i( w3 i4 @4 M      dir1.direction=dir2;
/ Z' a5 [2 P& n, F+ O6 }& M4 s/ d$ `1 E, _. A9 D2 d
      projection_method.defined_by=dir1;7 A2 _/ {/ R" M# ?; V/ s- \. ^

6 l# x4 ~9 s* \) v( _7 a5 a! V      double point_coords[3] ;: i. x" x7 G; V; P3 y
7 O8 @# e0 v; v. @' }
      point_coords[0]=center[0];, t5 t- C; r/ g  X  U
      point_coords[1]=center[1];
' ]1 H7 s  Y) V* v5 Z      point_coords[2]=center[2];
( K3 P/ [8 p' s" n
/ `6 A7 A; `* \, v      int gap_point_count ;/ g# u* D: k6 a; o
      double *gap_points;
3 ~3 i5 y6 Y; G3 _6 C! t, R4 W      tag_t feature_obj_eid;
- z; h; x5 \2 y9 }! G  {      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,1 A$ x( x& y( c: W
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
+ p) ^1 a8 b7 q/ M3 g# e3 A. f
5 c& O% h$ e( @" g5 A( V: \, H}4 L# _+ |" b) a1 e6 l2 c7 B
8,offset偏移5 T1 @) {8 W5 P) |. C

. F$ Z3 P/ |( M! z& |8 u0 v, y& u9 Xchar   distance_str[] = {"10.0"};//偏移的距离, a& b( [/ D+ d2 _0 F7 `

1 ~9 \6 T) m% X7 I0 U7 S! A5 Lint  num_curves;
) N+ D  H, l. k# V' Etag_t *offset_curves;
3 [# m* r9 x' ^5 e1 KUF_CURVE_offset_distance_data_t  offset_distance;: D9 T& s9 V" _  C, h: C5 h
offset_distance.distance= distance_str;
; a1 B- ?$ K+ x6 C. d2 d1 roffset_distance.roUGh_type=1;7 ?" f) ^1 E( v: r3 W7 O9 e- Q" d
UF_STRING_t   input_string;. o2 o5 P# o) x5 `* n
input_string.id=curve_id;//加入想要偏移的线7 I  m: Q3 V& F) g7 s
input_string.num=1; //偏移矢量方向数量
% B1 f4 J' j8 K4 m) u' `input_string.string=&string_count;//偏移线的数量; U4 j2 d' j' b
intstring_dir=UF_MODL_CURVE_START_FROM_END;+ J& _( W1 O4 w* Z2 M% @# B+ F
input_string.dir=&string_dir;
+ ?& y2 D/ Y/ a. Y' f' t; W5 V. ?6 c9 `6 |, w/ _; c
UF_CURVE_offset_data_toffset_data;2 o# H. t6 V+ G/ w5 k6 \1 f
( L# L, `7 g7 h" Z& B! ^
offset_data.offset_def.distance_type1= &offset_distance;) j  P3 \# v# Q; {, `. f
offset_data.input_curves= &input_string;
0 b; B5 ^, \" w- i0 ?4 _5 Voffset_data.approximation_tolerance= 0.01;
1 `5 @$ x! _  l0 B9 f6 Coffset_data.string_tolerance=0.001;
) e4 o, O' y. B; K2 I# foffset_data.offset_def.distance_type1= &offset_distance;
/ Z: @  ^% R3 J3 |2 ioffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
# d5 ]2 q; l  aUF_CALL(UF_CURVE_create_offset_curve(&offset_data,2 k$ |' @8 p. j+ v! h
&num_curves,&offset_curves));/ g7 g& N3 M2 m. F$ s/ F
9,创建平面: [2 B4 J5 m, `$ F
UF_STRING_tgenerator;
8 k- B! u) H8 VUF_STRING_p_tge = &generator;
! w$ f; y# E; _0 F$ x5 O. e9 t* ~
. l( ^% y, J' c) J. b9 \( f( ]# }UF_MODL_init_string_list(ge);$ g5 k$ d, D* x  V6 C( k
UF_MODL_create_string_list(1,12,ge);0 s+ b; X* M+ D( [

, m5 O; j0 h$ g) ]2 Gge->string[0]= 1;  [- e$ Y( ^# Q- [% o( E
ge->dir[0]= 1;//指定线从开始到结束" r  }) w& s3 P, X" Y& u! \5 ]/ K% Y
ge->id[0]= arc_id;//指定边界的id
" n/ W2 b% b8 k! T/ C5 P3 Hdoubletol[3];% `' [0 [9 C- B0 I* p
tol[0] =.001;//直线公差
1 W( h/ C  O6 l% x8 R6 D7 _: `tol[1] = .5* (PI/180);//圆弧公差
0 M) w* V, ?! o2 f2 J" P* atol[2] =.02;//不起作用/ H5 a% ?" a7 @6 E
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));: q. w) f! |4 W% b* y( w
10,选择1 R9 j' w) U/ s( Q$ {
1),点选择
. e& V6 \* E3 l7 K+ ~tag_t point_tag;
# j; z) }1 u& p+ H3 H% T" Pdouble point[3];4 ~" B' |2 t2 Y9 ~' S
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  " K& u& b5 l" l) q7 O7 S9 Z5 H  Y$ I
       intpoint_res;
5 C; {( B# g7 y, }; M
1 q+ ^: R+ }& O" n0 _UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
+ F/ ~; @2 `$ X5 jpoint,&point_res));1 B" S, y; ]. ~& x
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
7 D1 u: b" R. P. R{
0 G4 ~' w% F& m* c }/ `# G) w$ w2 @' k4 t. a8 ]
2),向量选择. E. [6 Q* M8 S/ ^# j2 `! V% y9 m
     int  mode = UF_UI_INFERRED ;
4 }* U& W" Q  ^; ~     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;$ z! @) a+ z& r/ d, H1 j. k* N6 T
double vec[3];' V& I7 s  A" C, v% v" X! G
double vec_pnt[3];
) \# A3 {) _& ]  Q- j. G6 }$ I$ rint res_vec = 0;- T1 k" |" x0 \) T; U
     UF_initialize();  
2 m$ m& Z6 v% @& D6 f) _; ]     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,$ b6 F, r5 ~# y6 N7 [" C9 Y) h
           vec,vec_pnt,&res_vec);
/ m$ V, \  _9 }% A$ k# U# z# X     if( ifail != 0 || res_vec!= UF_UI_OK )   . u: H6 e5 ]6 e& n- c
     {     
9 W3 P4 O$ u0 R8 _; a$ e( D7 T* B           UF_UI_ONT_refresh();( K+ i( h& v; g( Y% b0 @7 t
           printf("No vector selected \n" );4 A( t. B6 y' a0 A# Y7 j! J, m) v4 ^
     }7 h, D$ t$ S! x) ~) A6 ]" E
     else) |- q; I  `6 {" e
     {
1 A' v7 E, a7 S: u) H4 Z           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
1 N0 S' L' P7 `0 y; S4 u                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
+ a9 |2 d: Q, {! s" @: G}
  N. A& A8 b8 S* M2 f6 r4 U3),平面选择3 ~( Q; w+ w! c! X3 H
tag_t plane_eid=NULL_TAG;: J! X5 |# b8 _- _
double orientation[9] ={0,0,0,0,0,0,0,0,0};: h3 S& P' g; }  D
   double origin[3] = {0,0,0};
" ^* \/ m9 B  k) Y8 ]   double pts[6] = {0,0,0,0,0,0};7 s' c( Y9 l) i6 z0 w. U. Q
   int i, error_code = 0;# l2 y5 v& q! S  ^
   int mode, display, response;
/ O  X: ?+ Q8 Z. y; |- j& D   mode = 1;                    + W8 e! H/ h1 B, E( e. B: \
display = 0;      
+ _+ s# R0 b# Y: S/ ]UF_initialize();4 w( c9 F! Z  d3 {8 g* U& f
   error_code = UF_UI_specify_plane(' {  R" I8 [7 n- S
         "Select Plane", &mode, display,
. @9 y  z$ B0 O2 f. v         &response, orientation, origin,&plane_eid);
) Y3 Y' y3 E3 l: K4 q. Q- H7 x0 p5 P) G  ^
   if ( !error_code && response != 1&& response != 2)
- J! o, {- k# S6 A+ z- N& I1 v7 F   {
) K- y5 r# @; K& {                     for (i=0; i<3; i++)2 U! M( Y2 ~/ Q0 G( H6 O
               pts = origin + orientation;2 T/ c9 ]; b& e1 V' C0 D
                     for (i=3; i<6; i++)
3 n) I* u& R3 e" O               pts = origin[i-3] + orientation;
' d; w% U  _2 F5 K         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);& T% r5 k8 f" x# p
   }
' t) F2 x0 N$ g) Z' d! I8 q% p- R11,临时点,线
1 b. H5 l' Q0 A. |- Q% vvoid display_temporary_point_line (double point1[3], double point2[3]); S4 V: O' f# j3 Y. H$ A2 I
{
: ^7 N. L+ |: ^% P  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
  C2 `9 P. ~# \( @0 r  UF_OBJ_disp_props_TColor;
; Q, d+ ?+ ]9 G" s2 m' b  color.layer= 201;
2 t1 k) l7 {: F$ A  color.color= 186;! j# C% @$ r! Z; h3 {( P' m
  color.blank_status= UF_OBJ_NOT_BLANKED;
, o& Z+ f$ y& O2 {# U; d  color.line_width= UF_OBJ_WIDTH_NORMAL;5 t1 M& a: }1 c1 x5 y, `
  color.font=0;
8 ~1 D" Y5 X. f1 z3 R8 N! t( r: d  color.highlight_status= FALSE;
. b+ C5 H" p% }7 t- t7 N7 T  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
1 t. O" f, J9 j4 V7 q- ]
) y" P6 S: T7 K5 w0 WUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);: b# `/ n, I7 k' W* S) }' r; L
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);) r1 o" f/ L1 t5 C
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);4 y7 ]2 V1 m! e6 A
}- E1 T7 U! w2 ?. ^( D9 _3 a4 K! y$ ?
12,WCS与绝对坐标转换
4 n  x1 r/ u5 E) c  u+ X+ @                        voidcycs_wcs(double point[])
4 ]- f" t& b& A( _" h- \$ W{2 v0 [% k* C% }, `, l
      tag_t  wcs_id,matrix_id;
3 |* ^1 }; Z9 |      double matrix[ 9 ];
  y) a$ p/ f% g% C$ Q4 C0 J      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量& j+ |' J$ V2 r* G/ l. [: h
      double wcs_origin [3],vec[3][3],point_origin[3];4 d$ x( k% V9 j. H" o
      //1,得到工作坐标系
1 a- X& ]/ b- Q5 W( v2 J* f( m6 k7 g      UF_CSYS_ask_wcs(&wcs_id);# e6 h0 o9 R* b, L9 s! Z
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    " ?. F' ~8 L( \+ B9 U3 F; @
      UF_CSYS_ask_matrix_values(matrix_id,matrix);
3 |  i& ~4 \; f6 L4 @1 A7 c% d+ ~4 Z8 _4 u2 k8 `5 k
      //2,得到工作坐标系轴向量1 A% x( p' c6 j( W
      UF_MTX3_x_vec (matrix,vec[0]);
9 d$ l0 h5 m  M2 e) ]4 _7 E/ |5 ?      UF_MTX3_y_vec (matrix,vec[1]);! y" n! N4 Q2 U
      UF_MTX3_z_vec (matrix,vec[2]);
2 |6 H; h) _3 T( I1 z5 r# x; E/ H, i' ~
      for(int i=0;i<3;i++)
. t0 O+ g; p9 [1 @  g0 f      {     / ^+ D' }# W1 P
            double tol;% O" m! w" O+ D" s) H
//3,得到点到工作坐标系原点矢量
6 G. v$ w) {. W* a5 Q1 C5 F            UF_VEC3_unitize(vec,0.000001,&tol,vec);8 |0 n) F, g& n; N9 {
//4,得到点到工作坐标系原点矢量
: o8 U+ @( }# t2 S) b            point_origin=point-wcs_origin;3 s3 J  \: H1 n! G; Q: K! |
      }
- G, d9 n  |; W' R0 ?) `      for(int j=0;j<3;j++)6 t' J6 T/ j: Y# Y* A5 `0 a
      {
3 i  }! V8 E/ {3 c  [) F            UF_VEC3_dot(point_origin,vec[j],&point[j]);9 v% b; \- h" f
      }
' b, B' z- A# e4 U* w}
/ P: Q. \6 C& w5 d/ s" S* K13,三点求圆心. N( ?  }& R  X* }6 e( n2 T
#include<iostream.h>
. ~& X* {* _, N0 J4 y% j" a#include<math.h>
% R$ P& q" l& n3 E
: l' h5 b  X3 I* ~# {int main()3 m9 q+ }1 K2 ]+ j/ [$ H( D
{
# n* ?8 P8 F& \2 c; d8 Y% {4 S' L      int x1,y1,x3,y3;
4 R! Q* |$ F- |      double a,b,c,d,e,f;/ [. R9 j5 {3 a4 V7 ?
      doubler,k1,k2,x,y,x2,y2;
; l$ W: j! ^$ R9 ?7 w  W      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
9 ~7 j+ E9 F" c/ f" O7 o& g. O      cin>>x1>>y1>>x2>>y2>>x3>>y3;
% Q0 b# p, w+ X      if((y1==y2)&&(y2==y3))' \, i( M9 T, K9 m  d4 z( [- d
      {
! C( U5 r0 w5 @( n            cout<<"三点不构成圆!"<<endl;: F0 F$ p% v+ X
            return 0;$ T+ Z* d: s9 ?) ?+ B, b
      }
) Z/ d9 o3 m1 w" w3 \      if((y1!=y2)&&(y2!=y3))& R2 X1 ?3 o* i* F: A% _5 r4 E
      {; d4 I5 S  y" G7 @) f
            k1=(x2-x1)/(y2-y1);
; o5 j3 I3 Y3 ?. Z            k2=(x3-x2)/(y3-y2);; E  X' x% \* L# Z1 S3 g5 D
      }
/ H: {0 ]/ b. g9 r      if(k1==k2): C( A1 X& y4 m1 \5 F8 A- k
      {& m) e# a, u# u* @- _1 d5 F1 c% d
            cout<<"三点不构成圆!"<<endl;
) [2 ?6 g0 c, D8 s$ X( k  F            return 0;# z/ V. A9 d+ x$ t! q
      }: w" ~9 \& \$ Q1 F) ~/ N0 T$ a- R
      a=2*(x2-x1);
6 d! O2 P- q: r; O      b=2*(y2-y1);. o- t# x, Z4 E9 @6 c7 r/ @
      c=x2*x2+y2*y2-x1*x1-y1*y1;$ N  I( t' u# e9 w$ t8 r
      d=2*(x3-x2);7 L5 k; p  z0 _, v" {
      e=2*(y3-y2);
; i: V( `. g5 A8 |+ v) ?- X& D% {      f=x3*x3+y3*y3-x2*x2-y2*y2;
/ |; o$ S7 g5 i& G3 D      x=(b*f-e*c)/(b*d-e*a);7 j& q1 w# p& j
      y=(d*c-a*f)/(b*d-e*a);
2 @! W# o3 l  F# u4 y      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
4 f: e  ?- U6 {      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
* E5 v. H6 r" V) Z0 k9 K, r      cout<<"半径为"<<r<<endl;
# I: A5 k6 o$ r. z9 `/ h      return 0;
/ `1 f2 q* w7 q) {. A. F4 x}
6 {, ]4 m, D: H- e0 P14,查找圆心
( Z, s3 r. i" y& ~  p  G            UF_EVAL_p_tevaluator ;; v9 B( `8 \% R, i' i6 A7 I. n
            UF_EVAL_arc_t arc;
% j. |8 \8 r# E8 u0 z            UF_EVAL_initialize(obj_tag,&evaluator);1 N0 N# U7 u! h/ U( r( u
            UF_EVAL_ask_arc(evaluator,&arc);
# \" h5 v0 [8 E6 F+ T            UF_VEC3_copy(arc.center,point);           
7 i( U" v5 L9 o; g3 U2 C  v; G15, message_box5 q+ g" q- p# h" W- m+ X
void message_box(int *res_mes)
% f! Q9 y, g: S+ C. J6 F{3 {- m) f2 U4 [4 d9 J
      UF_UI_message_buttons_sbuttons;$ F( b# [. S( _* E8 \2 a+ _
      buttons.button1=TRUE;
5 x* _( z0 b# G# L7 F      buttons.button2=FALSE;& V) ^+ [% L* G: |# j
      buttons.button3=TRUE;
2 o, `' c+ r3 y% V
+ N. }* ~* k: p6 U+ |      buttons.label1="OK";9 Y; ?) @  q+ Z
      buttons.label3="CANEL";! J, T/ r3 B" S1 g0 N9 |. a
9 ~1 c8 \0 S6 ?7 f
      buttons.response1=UF_UI_OK;
1 z" J2 P2 q1 `' v      buttons.response3=UF_UI_CANCEL;: [  `% e) H5 o8 v

7 M2 e+ }8 Y2 ~9 S      char *string_msg;
; }9 R, D; }4 P) Y7 G! X      char*material_msg="ALL selcted objects will be removed";
1 u& D+ ^" s2 D# Q9 s; F2 a( ]      string_msg =material_msg;7 m& j6 U- W) @& [! a& w

9 v* f+ Y9 G  E. m* t- b      UF_CALL(UF_UI_message_dialog("",1 M7 m* C2 B8 p" H& j) _1 N) }
            UF_UI_MESSAGE_WARNING,
6 j6 t' q% k9 K7 f/ ?9 N( X6 ^          &material_msg,
1 m- ]1 K" d9 |3 [            1,9 p' _' f, E/ W. p- V9 m
            TRUE,. i: Q/ f: w" ]' P4 h
            &buttons,) b% X" }. H* [2 U. _
             res_mes ));
5 a5 Q7 ~  |5 D) S& p1 X}
  t8 _7 V, }/ E' x: J8 w) I: m' B16,选择过滤
) c* I" \: {" _% d: [static int init_add_face( UF_UI_selection_p_t select, void *client_data)7 R$ g$ X# Y& \
{
4 X+ D* Y, n" [. A/ S      int nums = 1;
5 `( S9 R  |" x* X  h      UF_UI_mask_t masks[] ={
+ f" z' V2 U4 @            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};7 o+ o9 I; n% X- `" w
9 P% O6 d" {3 Y9 ?
            if(
7 G4 E) o. }5 G4 c$ K+ Z5 p                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
/ M* f2 m3 F# O, y3 r' D                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)4 f4 @: u. t' o9 d# B  z
                  )/ F6 v- d- t. q6 G; N1 ^
            {- z# M6 G+ m( Q; p# {
                  return(UF_UI_SEL_SUCCESS);0 R. B1 a: G+ Z* P+ u
            }
" r6 Q, b/ S! l9 f% L            else
5 i5 z* H& I0 i' Z            {     + [$ k# U8 Z3 T6 C: G
                  return(UF_UI_SEL_FAILURE);
# P' _( Q, C+ F3 t            }
, j: d5 X( Z; S6 B; f1 Z. v}
( Z( H; ~) o8 ~1 `% h3 i0 `: zint find_tag(
- N* j$ G4 |2 O5 E; O4 k$ r                    void * client_data,//用以传输过滤资料
0 N; \2 J, f' U5 s" a$ N' t                   tag_t object//现在鼠标所选物体ID9 h4 T( x. `; s, H" l' _
                   )% r9 {$ y) q, @' v" `& d
{
% w6 i  @- O) x( y- V# P: M      user_data *obj;
2 N$ Y/ o+ \+ D      obj=(user_data*)client_data;
8 g! V+ L6 _+ B9 Q' A      int find_face=true;//接受5 \& j+ s1 i" N7 l* ?4 a
      char *string1;  |) Z1 Q. o. F* [
      string1=newchar[133];) x, b3 t1 y/ V5 x4 P* j" b
      string1=UF_TAG_ask_handle_of_tag(object);
  ]# x) {! ^8 Y+ I6 A      for(int i=0;i<过滤的数目;i++)5 A9 _, H9 O3 M- G  i. Z& d
      {
7 v( R' r8 h* S9 o3 W
3 T1 j. v$ Z. G8 W            char *string2;  h0 E& p4 G# j/ B
            string2=newchar[133];
/ S, c( E4 m, V! e) Y            string2=UF_TAG_ask_handle_of_tag(物体ID);
' h- o4 h6 B- \/ q0 N7 a5 ?            if(strcmp(string1,string2)==0)
! y" [& {" q1 ]# p            {
: U  v) a3 {% {2 D" Y3 \+ S                  find_face=FALSE;//不接受
8 v$ u$ V+ B; a8 q& p# Q: ?" U3 \% l" e
            }% N/ q4 Y1 V8 ^+ P
            delete []string2;. j# s1 j8 W, f
      }
5 ?% x  C) B& O9 X2 }7 a      delete []string1;
' ^4 q; a4 I" {& e- d- s5 z      return find_face;% m6 Z+ i& C$ }( ?+ q$ Q% V5 Y6 s
}( s' F; Q5 I* w) _

2 V: c& |) k8 n% B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了