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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

% X2 a4 d% R, T5 n) F, ]7,裁剪片体
* V8 {% g1 p0 U( I- dtag_t  *trim_objects;
# ]0 {1 \( B6 b  Etrim_objects =new tag_t[count];3 W. ^* S8 t& `& l4 I5 S- m
trim_objects =bound_id;
8 q5 {4 G0 {0 \voidtrim_sheet()# B; h( |! D2 h( E
{
6 v) c3 ~% L! W3 m* E5 d2 ?
. u) s$ A: b- U      UF_MODL_vector_t projection_method ;- x  y% Z" v% z7 X1 T7 [6 ~% e
      projection_method.reverse_vector=0;8 n; r' z7 P) ]) P/ Y
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
* ]! c. w* M/ M! [      UF_MODL_vector_defined_by_union_tdir1;
& W  f* s2 h# v# v2 P. D' y3 s8 F      UF_MODL_vector_direction_t dir2;* O( |+ p& i) p6 _) N3 M  J
      dir2.xyz [0]=dir[0];
/ ]8 k& i. R# a$ P, @      dir2.xyz [1]=dir[1];
% O" o9 c( H" M0 h1 H+ a      dir2.xyz [2]=dir[2];9 T+ N2 n% E$ M0 B! @
      dir1.direction=dir2;9 N* C% |+ e) j4 c

  _8 r7 w2 d0 r! P      projection_method.defined_by=dir1;
) ~3 `; V% ~- n/ b  @4 N' S/ `5 _$ I7 L$ I; x; w+ z2 A
      double point_coords[3] ;
( b3 `& L) b. k. n: I/ s
) D7 U6 u  e( x: z      point_coords[0]=center[0];7 L) X/ X  Q. n8 u/ [
      point_coords[1]=center[1];% |) m! b; J) k0 @/ Z
      point_coords[2]=center[2];" `; B2 I) J) i) |

; Z1 y% k  W$ j. G3 M! L! B      int gap_point_count ;) Q7 x; n% }2 h  Z% F1 v# Y
      double *gap_points;
; Z' R; e9 V" {/ X' M1 n      tag_t feature_obj_eid;
0 q- o3 U% u$ V; h1 H( O" G, m      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
- q) l3 H" z( Y" J, ~6 V  u                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);# ^: f2 `2 n  k) }) l& b  {
8 l3 y5 I  t: N7 O1 e
}
& {; Z+ R: M( R5 @7 p4 Z  M8,offset偏移
3 `4 |  D2 g2 \) [+ m$ z, ^  _; }0 t
char   distance_str[] = {"10.0"};//偏移的距离
' r2 p/ Q& a  J
/ Y1 c: v2 h# |int  num_curves;
2 E1 f( X" i5 o$ @; F4 z0 |tag_t *offset_curves;% g- V1 G3 R  L1 d; E* u& n
UF_CURVE_offset_distance_data_t  offset_distance;
* d! h% m8 w7 W5 Aoffset_distance.distance= distance_str;
( z  {3 E: M# A) Zoffset_distance.roUGh_type=1;) u. _* ?( ?" O4 T9 i
UF_STRING_t   input_string;
& @# q7 S' I" hinput_string.id=curve_id;//加入想要偏移的线3 p9 k( M( T! g7 c$ }
input_string.num=1; //偏移矢量方向数量
$ x* U  y6 y- R+ a% f7 Ninput_string.string=&string_count;//偏移线的数量8 x# J# u7 y) ^9 z
intstring_dir=UF_MODL_CURVE_START_FROM_END;5 j* ]+ l$ J% t: l, ?  U7 a
input_string.dir=&string_dir;4 H8 P2 F/ L  @/ [. g0 j  Y

, v$ e' @  t' b$ C& JUF_CURVE_offset_data_toffset_data;1 F& Q, M' r; E3 K
" Q& s, `: S4 x; N6 y
offset_data.offset_def.distance_type1= &offset_distance;# H# J) S5 i) G- W
offset_data.input_curves= &input_string;
  w9 ^4 D8 {: P% hoffset_data.approximation_tolerance= 0.01;
: U5 x* A& W& y5 m8 o  H" {offset_data.string_tolerance=0.001;
/ F; @; O( V( Q/ H% j2 ~8 Q& @offset_data.offset_def.distance_type1= &offset_distance;; a& g5 D, j8 r# O, z$ k* @2 F
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
' n- l* b3 u0 m( h0 Y( |0 EUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
  j" ^! D4 O6 {8 K&num_curves,&offset_curves));! }! f- r! k0 o/ K: m. p
9,创建平面
) M1 v2 D2 N. a. @7 d$ pUF_STRING_tgenerator;  ]' R% Z5 V& y6 T3 X
UF_STRING_p_tge = &generator;
+ x$ B* ]* K7 x$ F' h9 N- c; y# X2 L+ ?  {
UF_MODL_init_string_list(ge);: P( l/ {0 g. B; H) c* Q
UF_MODL_create_string_list(1,12,ge);
: S) I* O7 A% R/ }- `! r
0 F6 S: @9 \2 ?2 G0 d; H: gge->string[0]= 1;, T" d7 W$ J- J2 r0 E5 S5 w5 x! _
ge->dir[0]= 1;//指定线从开始到结束7 A& G. P* \" m2 M
ge->id[0]= arc_id;//指定边界的id+ E0 ]% B' r& V* S' q' h* ~3 _+ ]% O
doubletol[3];) r1 s5 [) |# D1 D# [1 S
tol[0] =.001;//直线公差# ~, z4 _6 [. j2 i7 c7 F
tol[1] = .5* (PI/180);//圆弧公差
. j$ n* E# K; P3 G* P$ qtol[2] =.02;//不起作用
0 R4 _; R- r2 SUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
: z7 b+ d; D6 v: \  Y* [4 r% F10,选择) z+ W$ z9 n4 w  G6 S: S+ p2 D' |, d
1),点选择! w# h# s- L& b0 |# ~
tag_t point_tag;5 d" Y& S, B% |) D1 m- Z
double point[3];
# i! d, G: }' k. j* U       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
1 x8 `6 u/ q' G; y7 r2 x       intpoint_res;7 u) E8 s; i6 d4 L" e
0 i& D% U% g1 l" l' u5 A& Y
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
$ v  i6 _% ^. v/ V9 I* C# r. f. Lpoint,&point_res));
8 M2 W" [  W/ E1 L# ]if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
; d& ?9 ?" o& k! ?" J% a; H{+ z4 O9 X+ n- Q! J
}
2 c2 \/ h7 Q5 ^2 H  B) d& E. V2),向量选择$ T4 o0 W/ y5 T0 g, R. I1 H
     int  mode = UF_UI_INFERRED ;0 V+ N$ g4 D" {( K6 D
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;1 i/ }3 I- x+ M, b/ o- \  D7 L
double vec[3];& D+ a  w6 `, R. v2 p; v
double vec_pnt[3];
' W3 Z- J- z3 Oint res_vec = 0;
1 o3 x/ ]/ {4 s- v% H     UF_initialize();  
/ o* T$ f+ a  F4 d. ~7 T. G     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,) @  S  J& y& G( b; U
           vec,vec_pnt,&res_vec);
% h0 ?, g4 E, @" u& t  k" ~5 y2 z3 [     if( ifail != 0 || res_vec!= UF_UI_OK )   0 y( M$ x: J: O; O  q
     {     
2 W2 Y$ f+ O  m- i/ h           UF_UI_ONT_refresh();
% {5 T6 D$ K" N( Q* a           printf("No vector selected \n" );: B, ~* v7 G. D. }
     }
$ \# C( I, x% o$ z! r     else3 O3 E3 ^# t& b2 r; c# @  L* P
     {
+ w9 G6 `, l: ~9 @) }           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",) R9 \2 f. Y" \- R9 k3 I
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );5 P7 B% \9 c7 B$ ?' e$ E8 g; c
}( C' B6 ~' {8 H/ S$ v
3),平面选择9 O! S) H  \' b: m
tag_t plane_eid=NULL_TAG;& f! z3 \# c9 b' p9 X$ Z3 Q  O
double orientation[9] ={0,0,0,0,0,0,0,0,0};  k+ }6 A5 j8 t' {
   double origin[3] = {0,0,0};" I- E& I: u1 [
   double pts[6] = {0,0,0,0,0,0};' V6 w6 m3 _' l
   int i, error_code = 0;
: s+ [8 h  f9 s. }. n! S& g   int mode, display, response;9 Q0 @. O; }# q' U
   mode = 1;                    
9 ~' @% [: \- k/ a. Hdisplay = 0;      8 ~+ N) w! r8 V: v5 h
UF_initialize();
+ _% i) g1 B: v  _" V9 p- O   error_code = UF_UI_specify_plane(
% n  }  H1 q" [! l, k         "Select Plane", &mode, display,. ?8 t! D2 g" ^
         &response, orientation, origin,&plane_eid);  B5 B4 C( P! C

+ y# S% t4 @9 ^4 z% \   if ( !error_code && response != 1&& response != 2)
! P3 A3 d- y. l) v   {1 ^6 I2 |- G3 U( }
                     for (i=0; i<3; i++)
/ c' P* k3 M! M% z               pts = origin + orientation;
0 X6 e- o$ s# Q, P+ P, R                     for (i=3; i<6; i++)
# u- Y. j) Z4 I* V  n. {8 ^3 R               pts = origin[i-3] + orientation;
) a) ]5 e4 P2 f' ?0 _4 r         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
( Y- P) c2 f5 Z" M! j+ ]6 k   }6 i& f) y% d* @) x2 z
11,临时点,线+ `% F# ]% j! I. U
void display_temporary_point_line (double point1[3], double point2[3])7 ^. F5 y2 ~9 i- ~, n. k
{
% n4 b2 i1 c! w# P2 z- v1 R  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
7 i: c& w5 o1 t% h7 p% ]1 u  UF_OBJ_disp_props_TColor;' ~3 {- R+ z9 a1 n: a6 \6 }: j
  color.layer= 201;1 o" ^4 g: y' M& f4 t7 F  G# X
  color.color= 186;
; v. _7 e) u, @. a8 e2 M3 _6 ?0 d  color.blank_status= UF_OBJ_NOT_BLANKED;
4 x8 P/ X, e, U. N  color.line_width= UF_OBJ_WIDTH_NORMAL;$ U0 d1 j& w& l- [' d
  color.font=0;6 C9 t3 v. }% Y
  color.highlight_status= FALSE;3 j" j  B& S* W. |3 c7 `8 v; m
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;3 \. ~; W) C, g$ H0 V% ?0 U
+ o! ^# {: W: S: o. x3 s. x
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);/ R; G. T: a- k5 X+ J9 r7 G6 V
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);( h: p& v; U- z0 T/ }+ K' E: v" C, P
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
% `5 ?# h( T* X( z}" F$ N/ f! d, r& \& y% p
12,WCS与绝对坐标转换
9 ?! j+ ~' @3 |8 p* Y; }0 h9 V                        voidcycs_wcs(double point[])2 b) @  G3 S1 ~, O
{
0 l2 ]7 q. U. Q8 y      tag_t  wcs_id,matrix_id;
( \0 |% @5 N! v" r5 Z      double matrix[ 9 ];4 I* ^5 @. r5 H- z! }/ @
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
4 R% ~& t0 J" g- I      double wcs_origin [3],vec[3][3],point_origin[3];6 e+ X2 d: V" ?( h4 p
      //1,得到工作坐标系7 [; Q' m+ n8 `, F
      UF_CSYS_ask_wcs(&wcs_id);& d3 X, I6 X5 K3 d
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
& @7 c- l8 K, S/ S% M      UF_CSYS_ask_matrix_values(matrix_id,matrix);2 ?0 _" u: \7 \: _7 h9 g
7 Q) i6 g$ W6 g1 b* j$ c6 Q" l
      //2,得到工作坐标系轴向量
# M6 L. P' U; g$ N$ Y" _, V      UF_MTX3_x_vec (matrix,vec[0]);# i  e3 C, \! y, q6 c
      UF_MTX3_y_vec (matrix,vec[1]);0 G( O$ D$ N1 q! r6 R; n
      UF_MTX3_z_vec (matrix,vec[2]);
' ]: q' O7 m7 V& h! o
; n; w2 o" B2 f      for(int i=0;i<3;i++)2 d+ x4 p+ f9 p
      {     
: H9 y  B- i% E9 Q7 L; T( K9 X            double tol;
% D( K2 A8 D6 Y9 X5 Y# E3 K//3,得到点到工作坐标系原点矢量4 c. Q2 h; M% N- Z
            UF_VEC3_unitize(vec,0.000001,&tol,vec);0 X" k" ~& E0 F, y/ o1 F
//4,得到点到工作坐标系原点矢量
) s+ _6 R" q. |. m            point_origin=point-wcs_origin;" M* _4 X+ v+ O' x, i8 j
      }1 k8 V2 K* @5 Y  _) V: ^1 E: Y
      for(int j=0;j<3;j++)6 o! o9 G: i+ c' A  L
      {* N; g* f+ {* u8 K
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
" y( l( x" K8 @2 y% n- r# y/ I1 J      }: g0 W7 k- `% |" m. T
}
8 @- l* M- e3 N; P: c3 q5 l0 Y13,三点求圆心
" s6 h; {; N1 y; |0 G. J' W#include<iostream.h>
8 T+ w0 D+ r* _9 q  f#include<math.h>   s) s5 H  |0 t& N7 U
8 u- w+ H) `% }0 H' u& H  i, ?6 Z
int main()- }3 C7 C7 v) f7 b2 N6 w
{
; m5 q% @/ N$ E/ U( P+ u      int x1,y1,x3,y3;- W% s' @3 |! u+ E) ^) C
      double a,b,c,d,e,f;
) K. I5 |/ W( \2 L      doubler,k1,k2,x,y,x2,y2;  T4 a  X9 S( B
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
/ @9 \' L# M! b0 U      cin>>x1>>y1>>x2>>y2>>x3>>y3;
" J4 I- R2 c5 `  K      if((y1==y2)&&(y2==y3))
, F5 b5 s" `. S+ w' f, K      {
, S! t! i% D; f+ V' }. u            cout<<"三点不构成圆!"<<endl;& }. [. K8 u, p
            return 0;
- h" e, `3 C1 E( H6 ]2 P0 }" O      }
. u. F0 {2 u1 q. B; R/ ], h% ]: f      if((y1!=y2)&&(y2!=y3))
/ j* B4 o9 J7 S- N3 @      {
; T' }# {6 j* X5 ^6 N) c! f            k1=(x2-x1)/(y2-y1);1 t4 e! t  K* Y+ o) i
            k2=(x3-x2)/(y3-y2);. y+ @5 i2 _. X: f  I
      }: s% o7 g* X- v
      if(k1==k2)3 L$ o3 M9 {/ K! a) B! W
      {2 [0 W1 ]7 }. B: B8 }% `8 C; D4 j- ?
            cout<<"三点不构成圆!"<<endl;8 P8 k7 S1 l( o. n
            return 0;- I( o$ ~5 N( H" g( \& r
      }
( b# D- Z8 ^" R/ w; C6 o5 c* A      a=2*(x2-x1);
4 l4 [' ^) F& z- c3 k      b=2*(y2-y1);" U2 M) Q5 X+ F/ s3 H& m
      c=x2*x2+y2*y2-x1*x1-y1*y1;
# M' w2 ^7 v. r- ^% `, |      d=2*(x3-x2);2 N' u) S: P. W" ]3 u9 h* W, e8 ^- K* I0 ?
      e=2*(y3-y2);- F- `- f3 H- c
      f=x3*x3+y3*y3-x2*x2-y2*y2;6 G' c# G/ J+ I
      x=(b*f-e*c)/(b*d-e*a);  O& W6 B) b( l$ D
      y=(d*c-a*f)/(b*d-e*a);
' ^0 I6 N  b+ L/ b$ l8 ?8 i  N      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
" D/ U; {% Q9 k0 B  J  @: r      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));3 D( a% U3 Y, j* N" j# O
      cout<<"半径为"<<r<<endl;
. ?/ P; Z4 f- o# N6 n      return 0;; x/ G* J4 a9 H0 a  w7 q
}
: b: W5 |$ i) `2 a# Z14,查找圆心$ e$ e7 @0 p8 A! u" `
            UF_EVAL_p_tevaluator ;  A+ {$ C1 F7 J1 i
            UF_EVAL_arc_t arc;! ^* o" [- q( j3 r8 Z
            UF_EVAL_initialize(obj_tag,&evaluator);0 ^0 _& `. G' T2 E5 H
            UF_EVAL_ask_arc(evaluator,&arc);
, O$ Z  w% M# S/ j/ j5 l            UF_VEC3_copy(arc.center,point);           5 Q; x* a5 c4 P4 B. p3 @2 S
15, message_box
% _2 p3 t' M8 x- ^- cvoid message_box(int *res_mes)# g0 Y0 ]! L. Y; v4 t  v5 p0 V6 C
{
$ \3 `0 [! b' [, \! N8 O+ D9 y      UF_UI_message_buttons_sbuttons;7 H! H* t- V8 s1 L3 m# R
      buttons.button1=TRUE;
* a* D* R; X4 A/ m' T6 s! M      buttons.button2=FALSE;0 x) P2 P9 |3 w* J% A5 s. ?
      buttons.button3=TRUE;: E& ?( S- |, [. @
5 |  ~' p, w! `! N( H) [
      buttons.label1="OK";) y; @1 c7 w" W, P& ?' t% |* `
      buttons.label3="CANEL";
8 A8 s9 v& V3 z( G8 M% i- {; x7 A6 E
* \. }* Q! ?$ W6 m6 ?6 r      buttons.response1=UF_UI_OK;" }: [) P/ a8 b6 M' b
      buttons.response3=UF_UI_CANCEL;; w$ X" B6 i; W) f/ G/ d; A7 J3 j

  V# U, S8 @2 s% T6 ?# a( U* X0 u0 f      char *string_msg;
; g5 n: x8 u7 z, W: G& X5 Z  j      char*material_msg="ALL selcted objects will be removed";
' [" C% j1 n; [/ C9 P( b      string_msg =material_msg;% {* o' y# _" W. B
9 z% k- u. Y0 m
      UF_CALL(UF_UI_message_dialog("",: G% P. C' S9 h- }
            UF_UI_MESSAGE_WARNING,2 _& Y1 T' ?0 y! }8 I$ k  D
          &material_msg,
/ f- a2 k- n7 c            1,
+ n! d2 |- T* ?2 Y5 |            TRUE,
  s1 Q+ f1 a2 d+ [( V" E, k: q            &buttons,
( p0 c2 S! @! G. p             res_mes ));
- ?3 j% A! d# b. u) m}; r/ B1 {8 ?2 P1 A
16,选择过滤
. P, G+ c& m: e! m( ?  Bstatic int init_add_face( UF_UI_selection_p_t select, void *client_data): K7 x1 J: t" x! E# R8 s; b2 X# \
{
4 ]; h4 o  g0 T4 R8 g) U      int nums = 1;
3 C, {& \4 A8 z5 q9 k      UF_UI_mask_t masks[] ={
, w5 T- s" M  \' u5 g            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};+ ~4 W5 f0 {4 Q- j& I

5 ^, v6 V5 ^6 Z  K; Q; G            if(
9 e' n: {" p5 g3 p& D' S                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
" Z8 q: L& ]" J( e$ k/ v                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)! \% Y9 y- P" x+ Y; e( |
                  )
$ i4 b: }3 l3 L+ g3 H            {
. U; R! f3 |) s' ^: G                  return(UF_UI_SEL_SUCCESS);$ i$ P' A3 U0 o0 w) Y
            }
! F5 G2 k7 b# }1 L0 [            else
5 O" C4 k3 t' h& r7 U            {     1 n+ o$ a5 e% i9 k" S. z& H  n
                  return(UF_UI_SEL_FAILURE);
) q; i& J! G. }' \& @- {            }
+ Y3 z  h- D3 c. T9 d' @  h5 ]. e}( m4 w! f/ ?+ h1 q% Q$ D& N
int find_tag(0 b* z6 K+ Q& e+ \
                    void * client_data,//用以传输过滤资料
+ A) a5 p8 i0 u8 K% M2 P                   tag_t object//现在鼠标所选物体ID# M" w0 a) K* v  g) D
                   )
5 s8 L: j( G: e* K) B& L7 U& d& F{
- I3 ~- N, T6 p( p      user_data *obj;  f$ v) ]2 p5 K7 P% z3 a
      obj=(user_data*)client_data;
9 P2 z; P: R/ f' k- ^- G      int find_face=true;//接受
5 Z3 [+ d1 h: q8 z4 Q      char *string1;
# A# l2 m8 C: |  _& E. c% q      string1=newchar[133];$ V* M3 e" K* E! ^
      string1=UF_TAG_ask_handle_of_tag(object);% G3 L8 a3 G6 T: z
      for(int i=0;i<过滤的数目;i++)
- d8 R  Q0 Z0 w( l; u& F) z4 B      {& S1 ~: f8 k/ e& [
; }2 z4 U$ S& A/ H6 u+ M
            char *string2;
; g9 A4 T3 r- Z7 Y: @! j6 Y+ @; G5 @            string2=newchar[133];
, e# Z/ @4 U: q' j' Y: j7 H1 R/ s* i7 w" X            string2=UF_TAG_ask_handle_of_tag(物体ID);4 A0 `" W; U1 A2 G2 L! {; R/ F- M
            if(strcmp(string1,string2)==0)5 c( T# Y* y+ j5 ^
            {
/ G( V6 z& ~. W. J: U0 U                  find_face=FALSE;//不接受
9 `" [- k: M0 a1 h" u3 ]- y" y" F" j& M( g" a
            }
0 s. O$ U1 C1 Y            delete []string2;' q1 T. d, Y4 Z' t( p+ ~
      }7 u$ o0 s$ D# W6 }  I. i
      delete []string1;9 l9 `/ Z3 T* w
      return find_face;4 \4 n1 L/ R6 r
}
- c5 H# [; E4 U5 X7 }' I8 U+ J4 `: \* C- _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了