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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
' C9 G) n% {9 p% m; U
7,裁剪片体
# j, {+ D: D( ^* V9 M* Ftag_t  *trim_objects;$ T2 Q* u7 m  c" K- b+ @  M: g
trim_objects =new tag_t[count];4 N: H) f1 x# O" `6 l9 e! p  g
trim_objects =bound_id;6 X0 H, _- S8 ~& x
voidtrim_sheet()
# t# m# l& m! ^5 A{; `' y6 L$ e& ?8 Z0 ^4 h

; t1 l8 d1 B: v1 B. t! [( r      UF_MODL_vector_t projection_method ;8 @$ t: z! I- X2 s7 u; \
      projection_method.reverse_vector=0;
0 x3 r' w4 X6 N. ~& M4 j      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;. ~) d, h% {: G
      UF_MODL_vector_defined_by_union_tdir1;
  l, h6 L+ R; j6 b, E      UF_MODL_vector_direction_t dir2;7 k* `0 d/ S( h% z9 z  z: G3 ^: ]
      dir2.xyz [0]=dir[0];; i. K! P) b6 X- X/ |7 b1 p2 ]6 d
      dir2.xyz [1]=dir[1];
- t9 U0 k" v* U9 S1 U5 k4 L& y      dir2.xyz [2]=dir[2];3 ]- R- }2 V# H6 v  a
      dir1.direction=dir2;/ M0 l7 R7 a$ `$ b, f

) B1 U9 n% d  F2 B7 v6 a: ~3 O2 v      projection_method.defined_by=dir1;
9 p, O* N3 D, [! M! l' q% k
8 o6 T3 r( @2 v5 u      double point_coords[3] ;. z2 Z: J8 s- h1 p  w

  ~$ i, O% l4 j      point_coords[0]=center[0];; B3 Z) N( [% L7 h
      point_coords[1]=center[1];3 k9 f" W2 I9 }/ G( R7 L% o
      point_coords[2]=center[2];4 s6 K: L8 n7 h; L- r
0 c* b; J+ P; o9 @7 P& N- g$ r# Z
      int gap_point_count ;
1 ]' _1 `) z+ Y  a& b+ k+ B      double *gap_points;4 v* V3 F4 |& H( a% T- p: m- q
      tag_t feature_obj_eid;
4 {! U1 v7 b2 `+ F      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
6 h$ O& ?, ^4 o: u/ k3 e+ `                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
$ a4 Z( E0 ]" }0 |+ p) Y
8 `. U# X) F6 y% A2 F5 @}  F# o, M6 l3 }2 Q8 `2 f/ v
8,offset偏移
4 @. j/ r5 x0 Z* E  U4 a. Z) c0 N0 T$ K
char   distance_str[] = {"10.0"};//偏移的距离
. q2 X3 q8 a( q8 J+ u: K2 y: v+ \6 F( O# }$ a
int  num_curves;
% j4 [: e. h" o6 Ktag_t *offset_curves;( c6 c# q% Y- ?( [8 I) n4 @
UF_CURVE_offset_distance_data_t  offset_distance;
8 \3 ?: }2 [* Q+ k1 C" Hoffset_distance.distance= distance_str;: e9 q- {& I4 H/ N  P
offset_distance.roUGh_type=1;
9 v$ d# y, Q3 n. FUF_STRING_t   input_string;
" `$ F1 ^/ o& }5 ^8 C9 ^input_string.id=curve_id;//加入想要偏移的线% {# o9 w& K- A* V& ^
input_string.num=1; //偏移矢量方向数量; P' |2 ~+ t8 Z. U3 _( P! |
input_string.string=&string_count;//偏移线的数量/ ^, ^4 C3 v' q# `/ x) [
intstring_dir=UF_MODL_CURVE_START_FROM_END;# A  q# Q; [5 d2 D1 S, D6 f) X2 Q, P
input_string.dir=&string_dir;9 w! d6 q: Z! E

1 x4 [' n: E2 J, Q4 o/ eUF_CURVE_offset_data_toffset_data;
. u" r3 q& `: I. p$ L  U) B+ V
8 `% Q4 ?1 ^& g6 \% U& xoffset_data.offset_def.distance_type1= &offset_distance;- s1 C* @8 K9 k$ d+ X
offset_data.input_curves= &input_string;9 t! Q9 s! _5 X; f3 t, y
offset_data.approximation_tolerance= 0.01;, d" w, f, _9 ^
offset_data.string_tolerance=0.001;) I) ~1 Q8 ?4 Y
offset_data.offset_def.distance_type1= &offset_distance;" B. }- q) T$ C7 H8 z
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
1 L% H0 K/ h# e" B% UUF_CALL(UF_CURVE_create_offset_curve(&offset_data,( u5 o* C/ c6 {  _& O. M1 x$ t
&num_curves,&offset_curves));
. U8 ^) T2 a9 p6 C9 U4 V9,创建平面
# A/ T0 j/ q# o2 F2 wUF_STRING_tgenerator;
- b( Z2 L( N8 N" Y+ H! M7 cUF_STRING_p_tge = &generator;
: N! C- S( |* \( c: F, ~6 h8 w8 v
UF_MODL_init_string_list(ge);
( w" u9 z  b; v* f6 c( }UF_MODL_create_string_list(1,12,ge);
+ a9 u$ f( \( Y+ z  t
: @' G2 H- L# P4 P% pge->string[0]= 1;
$ W4 H# A. J! k. Oge->dir[0]= 1;//指定线从开始到结束9 y! b3 W2 c) J2 a
ge->id[0]= arc_id;//指定边界的id
3 p! z! F" B- K9 Z( udoubletol[3];7 f9 }" o4 N; ^' G% a5 z
tol[0] =.001;//直线公差5 K9 U- I' K: ?+ Y# D
tol[1] = .5* (PI/180);//圆弧公差3 V/ O7 x. R$ M4 z1 x$ N+ D7 Q: w
tol[2] =.02;//不起作用
, B# d2 e1 B. |! M  `% c- V3 dUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
2 S: F9 V7 N2 y! ~9 S5 F10,选择0 c! O  \/ _; k9 ~
1),点选择
+ y" I; _* ~( h4 Jtag_t point_tag;
: _; d5 a+ ?. T& W+ B4 I* O' adouble point[3];
% R1 |; E2 C7 Y       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
$ k/ m; q% d, L' N' I       intpoint_res;
. R+ r; q' B- g/ I/ Y7 d6 W. L4 ~9 f3 ^8 j, I" n
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
+ l$ J" ^6 L' d* \- ^point,&point_res));
, W# T( ^2 p. L# C. X% Oif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
9 e* X% K+ D1 \; Q9 x1 z{
5 W7 W# l- Y; v" \2 M }
! F7 [: l- n9 P" W. K, n8 X! `2),向量选择: o& c6 u" y2 O
     int  mode = UF_UI_INFERRED ;5 L7 H% K7 G# ?) {" ^  N$ B
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;  ?; y* ^1 H  Z! _
double vec[3];9 G+ a9 R: e9 \2 S* Y
double vec_pnt[3];# I: j2 l2 x" I
int res_vec = 0;
- b1 B5 o, P0 R/ X     UF_initialize();  
: X1 @& L1 f3 e# a     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
, F: S7 h2 H0 g2 u* E- z9 ^) K! A' u           vec,vec_pnt,&res_vec);8 W" W+ _! b' @* d5 y
     if( ifail != 0 || res_vec!= UF_UI_OK )   
* K5 f+ w: O' ^* I+ E9 P8 g     {     
5 ?$ z1 n8 C; r# P( v' j& f  ~% |5 M           UF_UI_ONT_refresh();
+ v: Y" [3 D8 |9 R           printf("No vector selected \n" );
6 I& W; _! t$ _- A; O' F' Z0 U     }. D- e$ ]1 u5 I) K1 F$ U! w4 t! V
     else9 W$ l% k8 W; M% ]6 E0 p8 O( D1 ?
     {$ ]. y2 W2 u& |# E; V
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
& C* ^- F: a& d4 d& j1 C                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );7 Q# l5 w5 K% B9 U( c
}
1 M: C/ X2 N) J% l" H3),平面选择* n0 w* Y$ M# z, J
tag_t plane_eid=NULL_TAG;
! i) j' _3 [! R) z2 A# E; Z6 |double orientation[9] ={0,0,0,0,0,0,0,0,0};* k" l- |7 X1 N2 T9 L
   double origin[3] = {0,0,0};
, d9 d' Q. `+ w$ s. T# W" U   double pts[6] = {0,0,0,0,0,0};
$ {0 K  V4 k( @, b9 v   int i, error_code = 0;& n, h+ m. n" ^. E  R
   int mode, display, response;' F2 q4 y4 @0 t) }; G) F- a) s
   mode = 1;                    1 S  f+ ]1 w5 B& l
display = 0;      ) l! `2 W6 u$ G2 F" W+ {
UF_initialize();% u9 t8 J  {" O( G) r6 }0 p
   error_code = UF_UI_specify_plane($ ~, f4 x# M2 x& e7 v
         "Select Plane", &mode, display,
' Z, [5 P6 }  W# f+ w+ |2 ~         &response, orientation, origin,&plane_eid);+ t3 {+ Y( m' i  ?4 k3 |7 T0 m

) U2 K7 N$ ^* K! G   if ( !error_code && response != 1&& response != 2): p3 ?" G; _0 R
   {, H$ |' H; W7 S$ {4 f! E3 y  ~
                     for (i=0; i<3; i++)" J- u% T2 z* s7 b% A$ {) P# N
               pts = origin + orientation;/ a% b  X1 ^2 I  W4 ^
                     for (i=3; i<6; i++)
8 T5 A1 i9 \$ N' }& i5 R               pts = origin[i-3] + orientation;7 j% q/ t# z( H; i) Q
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
  M* P$ Y2 ~7 `& }   }; A# y2 H3 f. }7 r$ J
11,临时点,线# J/ S) a5 o5 ]1 Y: F
void display_temporary_point_line (double point1[3], double point2[3])) ]9 ]- ~& W* ~* S6 B$ h
{
+ @9 l3 w( X7 U" C" ?  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
' x  f4 y5 F3 B, H8 z7 P  UF_OBJ_disp_props_TColor;& G2 \6 [' |  \/ j4 d# m
  color.layer= 201;
- g7 R! ]& z) |$ P  color.color= 186;! i5 S3 x* r2 I; g% r
  color.blank_status= UF_OBJ_NOT_BLANKED;% E* v; z/ k+ T' n% ?1 n
  color.line_width= UF_OBJ_WIDTH_NORMAL;4 Y8 K2 s6 I! a; P% u0 m
  color.font=0;  l6 W5 e  J' U, f1 z0 B; W
  color.highlight_status= FALSE;
2 P2 m) |5 G1 p" P/ D  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
7 I) P, j* Z6 ]: }! n9 c
  t3 R4 {+ t4 T% J$ J- j/ N/ iUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
) C9 L2 `0 y8 }# }UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);- c+ r' o3 J7 S6 y
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);( r) o# c8 s2 M2 @, l6 Q* V
}
  d. q. U  e! f6 h3 O( V; N! J3 I12,WCS与绝对坐标转换) e  ?- P1 Q; a6 S6 h4 o: o
                        voidcycs_wcs(double point[])& U; @: c& D8 R: D; R* q) M
{+ O/ v. i; P* R0 @( b5 `
      tag_t  wcs_id,matrix_id;; X4 Z/ e6 h8 Z
      double matrix[ 9 ];, _0 v8 U' J6 B6 g4 t6 _
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
- q0 ^8 |7 R" M* M- B      double wcs_origin [3],vec[3][3],point_origin[3];8 Z+ \2 G, q+ ?" R0 x
      //1,得到工作坐标系
1 m* k1 S3 h* D8 S+ J8 B, k6 c      UF_CSYS_ask_wcs(&wcs_id);/ T: P8 c! F- O: i& A
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
9 }) b# G  G6 p" T      UF_CSYS_ask_matrix_values(matrix_id,matrix);
4 E+ p3 d3 |& \4 S9 l, a' F/ H8 t; S
      //2,得到工作坐标系轴向量
# ~& g2 @2 Z$ @! I5 z) z      UF_MTX3_x_vec (matrix,vec[0]);2 \$ r5 p" \- Q: }: M! A
      UF_MTX3_y_vec (matrix,vec[1]);
$ d- m/ t9 A( O, j4 N! p7 K$ u      UF_MTX3_z_vec (matrix,vec[2]);: H0 X) Y! F( v8 i# @& V

4 T$ ^# L7 I* {( x1 f( z      for(int i=0;i<3;i++)
! u, |8 t" K% d  l, l0 K      {     0 R4 I" {4 x, H0 _* O3 |* Y* t$ w
            double tol;
6 O4 r! X  A1 Z//3,得到点到工作坐标系原点矢量$ F* q' _9 w! M
            UF_VEC3_unitize(vec,0.000001,&tol,vec);# l  f0 Q1 D$ ?' y* Y: i' m0 c
//4,得到点到工作坐标系原点矢量3 V. J7 m. j* m. @2 V
            point_origin=point-wcs_origin;
( Y5 B9 |; f, G" q) N      }0 a& k6 Y5 G2 I: c
      for(int j=0;j<3;j++)
  L9 F7 @# m- o) [/ E& _/ K      {3 j( I1 N( \, i  ]" f( ?7 g6 x
            UF_VEC3_dot(point_origin,vec[j],&point[j]);' p+ _" \% h( L3 Z5 p& f+ P
      }
& s1 k4 j- S6 R}
$ {  ^7 S, C5 x+ q' A: L13,三点求圆心4 A' j! n' i4 o: o
#include<iostream.h> - f- M8 K! T- {( a, r0 J
#include<math.h>
6 P# z( T" f: B
* u9 o+ O% i$ y7 xint main()
, t% b8 Y/ E. @, i4 J. u! n{
+ {  u' `5 @% l: ?; q      int x1,y1,x3,y3;0 w/ J9 `4 {6 O; n
      double a,b,c,d,e,f;
% \& b% W& y. q$ F3 P( }5 k      doubler,k1,k2,x,y,x2,y2;( `" u1 x: J  h, n; d
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
8 j% j7 G, w3 C7 W* c, G  v      cin>>x1>>y1>>x2>>y2>>x3>>y3;
4 `& _& n3 X; k5 S+ I      if((y1==y2)&&(y2==y3))
4 N4 L8 ]1 e* U) \9 p+ q      {; U  J% ^- B& x
            cout<<"三点不构成圆!"<<endl;" d2 h7 A  y5 K, B/ l
            return 0;
" o- D# r# y, y1 D8 ~      }  y+ H" M( j! U0 A& ^3 P# @
      if((y1!=y2)&&(y2!=y3))2 y; J% K  I5 n9 x
      {
# e+ o" q. Z" U# F7 b* _  \; S# T7 s            k1=(x2-x1)/(y2-y1);
2 T* c, H6 X+ c  K: X            k2=(x3-x2)/(y3-y2);  j$ e7 t7 X) E) [) K/ E
      }& h9 a+ X) D. j
      if(k1==k2). s' m% v; K) J& V( `  }9 ]$ ^! [
      {, I" e4 @+ v( k# Y  `
            cout<<"三点不构成圆!"<<endl;0 y5 N8 @; w2 _* y
            return 0;
" ]2 X9 F! D% h5 w- O. g% {( W6 H      }
2 Z2 {. w3 c% z# f$ ]      a=2*(x2-x1);, A# b' t1 r. @0 }' h& ^
      b=2*(y2-y1);
( ~+ B6 T3 ^& s      c=x2*x2+y2*y2-x1*x1-y1*y1;5 [# i2 t0 W( O. A- }$ p
      d=2*(x3-x2);% p  |* Y! ~( l+ Y# a& P
      e=2*(y3-y2);
6 {- X5 s$ Y$ j1 q: M4 |      f=x3*x3+y3*y3-x2*x2-y2*y2;) q% P  w% K! }3 X7 V
      x=(b*f-e*c)/(b*d-e*a);
) r% o# _* _! [# h1 h8 ^      y=(d*c-a*f)/(b*d-e*a);3 p" H8 |. A1 A! _  w; h  q1 Z
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
& V  f8 d1 E) ?4 W  G' ?6 X      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));% n; N3 V# {" m- O+ w
      cout<<"半径为"<<r<<endl;9 N% s/ v4 y7 _3 N1 ?' v7 h; K
      return 0;0 V3 F' w% a$ e
}; r* y6 y( x4 w. W$ t
14,查找圆心( b. E* X* F. c% y& ?
            UF_EVAL_p_tevaluator ;# m5 y5 z" F- e: W2 X: y, q
            UF_EVAL_arc_t arc;
5 y+ S! L  B4 g6 D) i1 ?7 ^! A            UF_EVAL_initialize(obj_tag,&evaluator);+ v1 X+ a7 w  k
            UF_EVAL_ask_arc(evaluator,&arc);2 Z6 r. w, m: V$ Q% b
            UF_VEC3_copy(arc.center,point);           # [- q& e# q' V4 ?8 j9 t- O; [; h
15, message_box4 O, n0 J% e$ p6 s1 t+ _5 }
void message_box(int *res_mes)
# n8 B4 C/ B, }, y* l% p{
, ]9 p5 D  ~: y" ?' V4 e5 L+ b      UF_UI_message_buttons_sbuttons;, O/ I5 o! u/ r8 \
      buttons.button1=TRUE;
; S* O7 j  n/ G. f& Z      buttons.button2=FALSE;
0 t5 \/ }6 L  R# P      buttons.button3=TRUE;
& |  T: }% d% r6 k, s- z( T5 n
+ Z. d2 A# N  u' b6 N! `) O      buttons.label1="OK";* a# s4 Z% S2 t/ R
      buttons.label3="CANEL";. U9 |; n3 w5 F+ |( P% U$ p
5 U# N; r; ^8 P
      buttons.response1=UF_UI_OK;/ J2 r7 F+ x$ P
      buttons.response3=UF_UI_CANCEL;
. R+ A" O% }! n, ^* j) D5 J
: t9 c, J- g1 T5 h: H      char *string_msg;
4 K0 e! C, ~5 y) z. ~      char*material_msg="ALL selcted objects will be removed";
6 q6 E* L+ ~9 X% T0 p! M      string_msg =material_msg;& `* Q0 ~* L) o" }/ }* ]
) j* }( b" R' Y& v4 S
      UF_CALL(UF_UI_message_dialog("",( e+ D+ ]2 Q) M' v$ f
            UF_UI_MESSAGE_WARNING,
3 z' T+ S+ }6 l# K          &material_msg,
+ U" f) N' b' S; L5 w            1,* u$ Y' k7 ?; x, U% c2 \
            TRUE,! S+ [( c3 J0 p9 B# |/ I5 ]
            &buttons,2 O# f' `. G6 W% ~2 o2 |, v5 z
             res_mes ));
, k' {1 u* I3 [; k  f}
* [0 b$ F/ N$ a5 @7 @/ ^8 g16,选择过滤
* r) K( K; j" L0 `static int init_add_face( UF_UI_selection_p_t select, void *client_data)
4 \, d. U! H  X" }{
& T% k5 Z3 ~+ }$ W5 {1 I      int nums = 1;( ?; ]' x1 \" c5 q0 V. @& e
      UF_UI_mask_t masks[] ={' A( E! g# I& h" [, p; Z
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
2 p8 P% B: t# I. m! K& i' x; ]6 u* ^8 M& }3 B+ _" v
            if(! L0 O& f2 ~5 H2 f0 h
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)  i* O2 u4 S# Q; f
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
( B; s" n2 d. [) S& Z: g                  )8 n. q' v: V" J7 j" q
            {
; o7 |1 [+ g0 \! v6 F                  return(UF_UI_SEL_SUCCESS);
, j6 |& k' C1 t5 I: @% n' J/ f) \" Y            }: p, D6 }( U; T$ h( j( n( J' y8 K
            else
8 s  h; V% c0 T6 \) q            {     
+ V5 g8 T' F( N0 z$ L' f: H                  return(UF_UI_SEL_FAILURE);2 ]' I+ Z8 N# N0 Z- P- _
            }
& l* s% S3 k, V# t. L3 [6 n7 H/ P}
5 C) g" }4 f: K- Iint find_tag(, K! ~, {& l. I. M
                    void * client_data,//用以传输过滤资料4 Y4 q4 V8 j: R2 r
                   tag_t object//现在鼠标所选物体ID" |# p0 B+ Z& @" M) d
                   )
0 m1 }6 T8 R7 W- F{
1 I' S: p$ N: x4 c- |      user_data *obj;
3 u8 y0 Y" h* `) G9 R7 r% H! X5 o      obj=(user_data*)client_data;
0 `/ R4 G! u$ B/ u- h! t      int find_face=true;//接受
- u7 U, v: U/ Y6 a  q+ n( v+ f      char *string1;) Y; k+ d4 y6 [% W0 c- ^/ ~5 I
      string1=newchar[133];& a6 z' a/ N* O) n9 @: {
      string1=UF_TAG_ask_handle_of_tag(object);/ x( k/ O5 ~6 a+ `2 P
      for(int i=0;i<过滤的数目;i++)
& B7 b7 z: g8 U; {7 ^- U      {
2 q$ S- L& \- a3 T* s. Q6 l% W- e, \" C3 z3 b( d5 S0 B8 z
            char *string2;
5 ]/ a0 m* b9 l            string2=newchar[133];& K$ M) D/ M6 n+ [. `$ B
            string2=UF_TAG_ask_handle_of_tag(物体ID);
; U6 U7 o2 h  x: K/ w5 m            if(strcmp(string1,string2)==0)
! Q6 l5 Y/ T1 r6 K) i3 c) O            {1 u2 v) B* n9 f3 P& a, ^
                  find_face=FALSE;//不接受  n2 \5 L/ y( `1 O9 E4 X. t8 C

1 d( ~5 Y: J& R' {( |8 `            }
0 ~' z, H0 f3 C- c            delete []string2;( w3 a; K/ _; q" Y: o
      }
/ f. E6 D4 G, h) G5 {/ }$ Q      delete []string1;6 y4 p6 c8 V8 \1 P  S
      return find_face;3 F) ^/ F6 w' \' t% v
}8 J' W8 D: X# o! W0 K  z* z# s0 j) e
5 T$ c4 c7 Q  j0 x) u1 L& 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二次开发专题模块培训报名开始啦

    我知道了