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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
5 z- Z* V6 D6 h/ N' L; j! \6 c
7,裁剪片体2 g/ n0 ]( O* |+ e) q+ ^
tag_t  *trim_objects;7 h* s$ K8 ~$ |1 t7 m3 k- Q
trim_objects =new tag_t[count];
7 Q9 O; I& A3 G5 t$ @- A( Ptrim_objects =bound_id;
. o& |) }2 F4 a& Svoidtrim_sheet()
7 c6 L& u5 d" J/ t( \{- u; K# m3 w, o) ?' S1 O9 u2 M: G

- ?" L3 Y5 `' ^$ K- l8 f) s0 h( V      UF_MODL_vector_t projection_method ;
' g/ U% ?7 t2 E5 C" ]: z/ n      projection_method.reverse_vector=0;
* p6 [' ^2 x8 k4 d/ g      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
; s) f/ {# e3 s      UF_MODL_vector_defined_by_union_tdir1;
4 j* I2 E9 @" X+ v5 ~      UF_MODL_vector_direction_t dir2;/ L% L7 @( `1 T. f- `; `6 @
      dir2.xyz [0]=dir[0];
# \7 k" J/ [' G& \7 r6 p      dir2.xyz [1]=dir[1];- Q! r& M  C1 j% ]' x$ S
      dir2.xyz [2]=dir[2];! u+ b8 x& o: a3 I
      dir1.direction=dir2;
, Q' i& M/ E4 c- X; V9 {) F
3 g2 `1 U' ?. ]' j      projection_method.defined_by=dir1;0 P* l, }9 k8 _/ T5 |

1 G4 S/ s3 `) n, ?0 b      double point_coords[3] ;0 w+ e! b7 u) @* F1 B' ~

- h1 U- ^$ ]. a      point_coords[0]=center[0];
- J; e5 r( T  Q+ d' @: k      point_coords[1]=center[1];8 v* _: O* {* [) Z5 U( z
      point_coords[2]=center[2];
& k. F, G. Q! ]. D* S5 k, {. J: ~" Y+ N: e
      int gap_point_count ;
; J' P6 o  Q9 [$ c      double *gap_points;
. R$ m  q/ [2 ~0 Y, i      tag_t feature_obj_eid;
+ r: E  |8 Y4 s$ K& z; H1 H      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
; W! Y  ?- X7 L. h3 O: _5 S                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);4 E+ Z$ P' _/ x0 G8 Z

  {% Y& y9 D5 [}
9 s9 H) ~- v" _+ H8,offset偏移2 r7 J/ }! Z$ P8 c' O! D' a

5 I0 T- Y2 \) z9 kchar   distance_str[] = {"10.0"};//偏移的距离
; R, A3 M$ `/ Y" E. R. I) v: y; u8 Q$ m
int  num_curves;5 U7 r6 e4 r- L  i) m% w+ U
tag_t *offset_curves;. {% y; ?" F: r6 I
UF_CURVE_offset_distance_data_t  offset_distance;+ u" Y" e! j( U- x, `; O
offset_distance.distance= distance_str;
3 r+ J' j2 F$ ?offset_distance.roUGh_type=1;
/ [) |2 m, y) N6 E0 FUF_STRING_t   input_string;6 o, k* @  |9 m  B* X, K3 \6 s
input_string.id=curve_id;//加入想要偏移的线
0 M1 R; k# j  w, T2 V  j' h5 Cinput_string.num=1; //偏移矢量方向数量3 d; t; P/ R4 H, S5 Q% |2 F% Z, H
input_string.string=&string_count;//偏移线的数量# G1 v7 j* t8 f' H1 n/ l7 W
intstring_dir=UF_MODL_CURVE_START_FROM_END;, t5 S: D4 d$ S9 |3 k# Q
input_string.dir=&string_dir;
. k8 \1 \; T# {) B( v5 s; X: B3 y4 l9 f- c
UF_CURVE_offset_data_toffset_data;" ^$ R9 T4 ~' k6 O

4 J; a. U# S9 Z3 g- |offset_data.offset_def.distance_type1= &offset_distance;5 w  ?* g5 s$ u2 |. x5 w
offset_data.input_curves= &input_string;. ?* h  O+ `4 j& h) O9 z
offset_data.approximation_tolerance= 0.01;4 `/ h) |2 c3 v/ F
offset_data.string_tolerance=0.001;
1 S$ Q" a; {* y' V5 koffset_data.offset_def.distance_type1= &offset_distance;6 O0 k/ h( b* p' x# }
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
, l4 l) ]9 i$ x6 a2 f" ?1 ZUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
" _' l6 U! J* `1 X2 ?&num_curves,&offset_curves));, Z3 y1 B& M  y8 W
9,创建平面5 o5 [1 [; v$ Q, S4 ]! Q& W1 C$ l
UF_STRING_tgenerator;( [4 c- }9 J/ G! H; s
UF_STRING_p_tge = &generator;/ A+ m" C/ r/ \! b2 m' }% w8 |

* F: |! p" y" k1 ~7 n% ZUF_MODL_init_string_list(ge);
- `+ r. _5 `' i" G5 eUF_MODL_create_string_list(1,12,ge);
* H+ f" w8 w- @# j+ C' R% h8 o+ `4 p# C3 u6 S6 I; }9 F3 V) a# F
ge->string[0]= 1;1 C; L  L5 X: E; S' a
ge->dir[0]= 1;//指定线从开始到结束
, i3 c- q& |, ?& j2 C# z+ xge->id[0]= arc_id;//指定边界的id
$ L: R3 h) J* @doubletol[3];. l( Q& E  h7 x- v
tol[0] =.001;//直线公差
+ L4 J# ^9 d1 J, y3 _: Mtol[1] = .5* (PI/180);//圆弧公差
9 O6 [9 r5 ~/ Z& u4 n6 Ltol[2] =.02;//不起作用
! e% y: q1 b/ \* a. u$ ?UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));) \3 `: s& ^+ M9 H
10,选择
* z) E9 W# E" }2 n6 E# B8 ]- d& t1),点选择
0 n! {6 Z" ~+ `) }: @tag_t point_tag;/ C& [- G9 \+ H; h3 M0 I( f2 n
double point[3];) w* L6 N9 d" f8 A8 x7 Z
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  6 s9 Y) q1 M6 k: q! l5 D
       intpoint_res;
% Q7 E; H- }3 V- ]/ S* [6 N" |8 B: g8 _/ w7 f  R8 \) O+ ?
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
: a6 I& e$ r$ W6 B5 m. opoint,&point_res));
, i, J* ?/ O6 f: n6 y. s, W. vif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
% Q  E+ w1 P. U% c* a7 p{4 R) N, }! {: d; y6 {
}" `. M) x+ C# r4 W8 ?" N
2),向量选择, W  I+ J) I6 A! m; l" r
     int  mode = UF_UI_INFERRED ;4 G0 R5 J/ s/ O3 T% y
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
9 D& j3 b& T8 Q. c: ydouble vec[3];" J- x* s$ O, g- _9 F
double vec_pnt[3];
7 f$ f4 V/ C, w' P- W% oint res_vec = 0;
% z: t8 s  s9 Y5 o# D3 w+ q+ W     UF_initialize();  
% w# b% F$ s5 B( I  H2 C- c     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
7 f. Z# u- k; |0 U1 i2 x& c           vec,vec_pnt,&res_vec);
( [! x" O6 G' w8 I     if( ifail != 0 || res_vec!= UF_UI_OK )   
9 S4 e; e/ B. v+ N, Z1 v     {     
+ Z8 a/ z# b4 U+ O2 }- v. q! _           UF_UI_ONT_refresh();. V; V+ q2 K6 }, a/ z! t, k
           printf("No vector selected \n" );
# e: \; f. k/ S0 U$ z" H     }
# h# _# @# C% M  i) Z+ Q% ~     else& Z, h+ o+ _  F/ c
     {
/ B  l: Z$ S  c) F4 A- N  S           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
+ F& f4 L: U8 x- _3 v' X3 r1 j7 b                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );5 t2 S( v8 h$ q* `# X, T
}+ O7 b; w  g( E$ }5 r& z! y
3),平面选择, r' k& Q0 i4 I! W  Z
tag_t plane_eid=NULL_TAG;( l" A, X! H1 \. T& t- u1 G
double orientation[9] ={0,0,0,0,0,0,0,0,0};3 ]2 n: J: A4 [
   double origin[3] = {0,0,0};. V3 M! G' O7 N) @- t3 F+ s5 f
   double pts[6] = {0,0,0,0,0,0};
( |$ B# K, e0 n4 q% |9 L7 g& ~   int i, error_code = 0;
1 M8 @5 f1 V% j5 P   int mode, display, response;
$ B9 u' h+ c8 M3 D   mode = 1;                    
6 M: W/ }2 i/ z, c! \0 D" N: K) K  @display = 0;      
4 r2 D' I9 {7 }UF_initialize();4 d" c7 n9 J4 S' h
   error_code = UF_UI_specify_plane(
3 `5 T( w6 i) z% ^% z/ f' p         "Select Plane", &mode, display,% o) W7 ]9 T, S8 p; n" R- |) d
         &response, orientation, origin,&plane_eid);! X& }  a5 C1 d8 I, p& O7 F
$ t. N: W- Z. G1 L, I# H; ?
   if ( !error_code && response != 1&& response != 2)
$ B2 s+ M; A6 H7 S& A% F9 ~   {& W' X# J: f4 P$ O2 m6 ^  G
                     for (i=0; i<3; i++)
% @+ ^. B: v0 V/ ?. r               pts = origin + orientation;
4 f/ e, ^. E9 w) i                     for (i=3; i<6; i++)
: e' G# C) z  G               pts = origin[i-3] + orientation;: n# B$ L8 }3 [' S8 A* a- M2 b: O& \
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
! X) e: H! [3 l- q! U0 x   }+ z3 A: t& W( n( v: a2 @7 L" p
11,临时点,线
. T/ d  D# d5 t( R( U* evoid display_temporary_point_line (double point1[3], double point2[3])
: b. k+ h* y6 k{- N; b. Q0 h. d. o
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
: A. Z  T; m6 a  UF_OBJ_disp_props_TColor;$ r7 |/ b% r* x4 b7 M
  color.layer= 201;9 g( s2 W: T$ M- k# ~
  color.color= 186;7 \! \6 e0 |) U7 n( [
  color.blank_status= UF_OBJ_NOT_BLANKED;
0 }2 Y+ ]0 ]& I; R$ `" M) S2 r  D, K7 O  color.line_width= UF_OBJ_WIDTH_NORMAL;% Q, J0 x' G& F) Q5 F
  color.font=0;
( L9 H1 X! ?. b9 r* o  color.highlight_status= FALSE;" U9 G+ p5 e2 y& @3 D
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;0 V$ A4 S# e, B1 C& o

# W7 l% S; O6 O2 L. hUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);6 b9 h$ `4 K4 _
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
/ c5 N! b3 Q+ LUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);5 d' A% [0 N$ p7 C
}& G  C$ G2 a& W0 J% U: r' p
12,WCS与绝对坐标转换" {, H5 s. X3 n8 V( H) w2 w" X1 c
                        voidcycs_wcs(double point[])
5 r$ M/ M$ j# \& t( C! I- P  E{" j5 L" C  h' }* B: M- `
      tag_t  wcs_id,matrix_id;  a& M1 o* f5 Y  J% [  i- }: ?
      double matrix[ 9 ];
. }/ ^7 }; ]. d% }# E      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
4 ]) V+ n/ h3 B3 a7 p1 y: D      double wcs_origin [3],vec[3][3],point_origin[3];$ {  f% U; J# Z! e/ W( @) r
      //1,得到工作坐标系
& Y6 `  Q1 g" F/ ^7 J* _" Q      UF_CSYS_ask_wcs(&wcs_id);
4 c* }7 \! Y8 I& L      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    8 w9 H, L2 c, f; t( [
      UF_CSYS_ask_matrix_values(matrix_id,matrix);
9 T/ `0 g. m+ L! K5 g$ |" }0 {. j; h. M# v
      //2,得到工作坐标系轴向量
" q# L" x1 V# l4 b      UF_MTX3_x_vec (matrix,vec[0]);
8 v/ E) i5 g) r      UF_MTX3_y_vec (matrix,vec[1]);
4 ^, ^+ v1 F* c; V3 T8 t" i! ~3 G* k      UF_MTX3_z_vec (matrix,vec[2]);
( ^5 }8 ^' i$ o" k6 a+ g3 E2 }6 ^* M8 W- k7 }1 {, D
      for(int i=0;i<3;i++)
. s7 t; v( C8 }' D      {     
# J' x+ e7 z: C5 h# P+ ^            double tol;
4 {: \# f( Z/ A3 ]1 A8 m& h//3,得到点到工作坐标系原点矢量
3 r% q6 Z3 c- r% Y% t  D/ G6 ]% G            UF_VEC3_unitize(vec,0.000001,&tol,vec);  T; }* `, U$ m6 d5 s: {) y
//4,得到点到工作坐标系原点矢量4 \$ p* `; t9 q- I6 \
            point_origin=point-wcs_origin;; X& m6 }# N, h4 I/ c: ^" x
      }
5 Z1 [' a* s% K0 t      for(int j=0;j<3;j++)- B5 O: U# r" E0 l+ g
      {
* ]0 p& l! q8 m" K- J) X  y            UF_VEC3_dot(point_origin,vec[j],&point[j]);
9 u: ?/ Q1 z4 x; Z( w' t  L      }* |) m" o$ L1 _* r
}  k$ D* ?# S+ L8 q( T3 p
13,三点求圆心
. G0 N* Q7 \, X1 c#include<iostream.h> 7 W  b4 v# k/ |: `1 t4 d/ e/ Q
#include<math.h>
% K9 w5 T' ?' {; Y
+ C% z* c& S5 J9 L( j' S" A5 {  Q2 ^int main()% K) H7 k9 T0 r+ B
{
5 ]/ S: b& i6 @  ^6 _9 o  G      int x1,y1,x3,y3;
* s6 ^- Y# `! f% A$ {- N* M6 g      double a,b,c,d,e,f;
2 F( C: k+ S1 Y      doubler,k1,k2,x,y,x2,y2;
- Q5 |- S6 V+ L2 v6 S$ b2 b6 Q7 u      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;& o: o+ u, C3 r( U
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
: a/ f5 O8 x6 \" {      if((y1==y2)&&(y2==y3))) b+ \$ }) x0 C
      {2 U2 ^# f+ |% O1 k* q# J3 n& G
            cout<<"三点不构成圆!"<<endl;
3 M: z! s* \7 w            return 0;
2 W$ G% Z7 q$ T! X, y      }
- A7 [$ P" e2 r4 v      if((y1!=y2)&&(y2!=y3))5 o: U# c+ q2 h
      {6 f0 b, E: F7 H/ n* Y
            k1=(x2-x1)/(y2-y1);% b" ?8 |( B/ ^3 B) ]2 B* T4 O
            k2=(x3-x2)/(y3-y2);
5 n+ j4 m& H, }5 E, O5 S      }
9 q$ H& r. Z# D$ G      if(k1==k2)
* x; \9 n$ t( P% C4 J* x      {) ]  x3 Q5 k+ e: }  k5 a. ~! L2 o
            cout<<"三点不构成圆!"<<endl;
# I) ?9 m$ _8 n7 n! f            return 0;4 t  a% F+ b9 A1 v: A6 u& M
      }! r  h9 D2 h9 c& t' [- ~
      a=2*(x2-x1);
; w) }, D0 `4 ^& J      b=2*(y2-y1);1 o$ j- ?' x) e+ c# p! y* O
      c=x2*x2+y2*y2-x1*x1-y1*y1;4 Z+ A# J# K& u/ I# m
      d=2*(x3-x2);
" s( V( e6 v  S$ _0 |! y  Y      e=2*(y3-y2);
  b* b; P3 _2 T5 k; d9 i      f=x3*x3+y3*y3-x2*x2-y2*y2;3 R2 g4 c0 a9 [# d/ s
      x=(b*f-e*c)/(b*d-e*a);
7 R9 @  l6 c7 P( i, L) s  c      y=(d*c-a*f)/(b*d-e*a);3 K' k& n9 c7 a
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
5 B. ^" h$ k, D: A) F2 m$ n/ Y      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
0 k0 n, h& J3 d      cout<<"半径为"<<r<<endl;+ ~! w% Z# c7 v  [5 D! }: h
      return 0;
6 i# |$ \+ V3 r( ~  O/ F}
, t7 I7 D- g, B/ P8 _14,查找圆心
0 s9 ?: v7 W  o  L7 r/ ]# |4 [5 X            UF_EVAL_p_tevaluator ;
; e* p  x1 ^8 n' x, R            UF_EVAL_arc_t arc;
: P- x0 i: ?+ c  }6 w1 M- C$ T* Z            UF_EVAL_initialize(obj_tag,&evaluator);
9 R3 Q$ a0 z, F  D            UF_EVAL_ask_arc(evaluator,&arc);
* L) W' \; J. V3 ]9 F% @( Z2 V            UF_VEC3_copy(arc.center,point);           
* X1 `. k/ X* w  @1 r15, message_box0 {& o) r* {' _
void message_box(int *res_mes)
' |8 u/ S) K: s+ D1 ^$ s" v{" l! [: ^; s6 Y1 I" H1 }8 X
      UF_UI_message_buttons_sbuttons;
! f5 F  K. `" m# k      buttons.button1=TRUE;
7 U9 k* r6 P) K- Z/ s      buttons.button2=FALSE;: O5 k* i3 O, C* y1 m; g
      buttons.button3=TRUE;
: B; `; T0 i! x# `" p% Y9 e/ q$ A- G9 |" B- {
      buttons.label1="OK";  \0 b, F' b  m2 w5 J
      buttons.label3="CANEL";
0 ]: A( c. u0 v
: [: S; U9 r+ {% |+ K. t1 M4 H      buttons.response1=UF_UI_OK;
% U! N: L6 [' l  v: P* W5 ]      buttons.response3=UF_UI_CANCEL;  t; B/ v% M0 g7 r. P3 c

  q; e. `& h% w      char *string_msg;7 A" \) ^; v) k1 A8 O  d7 N9 Z
      char*material_msg="ALL selcted objects will be removed";9 W1 R" ^& R* q% ]
      string_msg =material_msg;: p" R4 F  r+ E4 [
  i' r6 l) b. X
      UF_CALL(UF_UI_message_dialog("",8 t* F( z8 ]' y; a9 l9 u' R* z
            UF_UI_MESSAGE_WARNING,. D# R: `9 Y; z$ J3 {
          &material_msg,
/ d* [  s/ E5 \            1,1 [8 z" r: z  [" D
            TRUE,0 I2 h2 L& H9 }1 [2 S
            &buttons,, b1 d9 N1 z( G: O  m2 R& W
             res_mes ));
' C# u8 i$ j' Z1 @/ U}. ]0 U4 Z9 E7 f4 Q
16,选择过滤
. _- v( m. H8 i$ Y8 |! A4 v" jstatic int init_add_face( UF_UI_selection_p_t select, void *client_data)( {/ o7 K6 j9 T# S& ?
{
; }; t. g7 u- B& }% \5 v      int nums = 1;
6 Z7 K) W8 j  J+ J7 N5 x: x      UF_UI_mask_t masks[] ={
5 g8 s7 m6 Q! y) u& m            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
! d7 r9 `2 {% M2 N8 J2 @* N0 n& P- d- z1 F9 Q8 h
            if(
  d; M9 U8 t: M; e0 L+ G1 V                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)5 a6 j3 ^8 }* w  Z) e: B
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
2 z; a$ ~+ \! T3 p                  )
' M; M" F& F3 y+ y- O' S            {* Y5 [$ X: Y4 T
                  return(UF_UI_SEL_SUCCESS);! t; Y; {' u, S0 ?) u
            }
/ L7 x$ `- j- e            else
( o1 z# x% M- y            {     ' w' x$ F! Y9 f
                  return(UF_UI_SEL_FAILURE);
, k  U2 l- B# B! o: |9 I2 u- p            }- E" Z# {) e  G( k. I0 i
}
& i  L# l. U: R: Lint find_tag(; a, g2 b( K: l; I' ~
                    void * client_data,//用以传输过滤资料
* F: h7 v& U0 q1 p. ~                   tag_t object//现在鼠标所选物体ID
- _7 Q3 D" r6 r. q3 t8 `9 o                   )
8 D8 V. A& g  q{
8 F2 h7 G/ Z; e      user_data *obj;
. v" N; m, q* M! h      obj=(user_data*)client_data;
- |, c& c& s3 i3 a: h/ d      int find_face=true;//接受5 h% ^, |7 c, M5 m4 h# t: ~6 f! z
      char *string1;
8 m9 \6 H. k' {6 Z* u      string1=newchar[133];
7 y% k) U1 y6 \5 W' M% i/ W      string1=UF_TAG_ask_handle_of_tag(object);/ \$ @, ^) u& q: a- G2 ]4 g
      for(int i=0;i<过滤的数目;i++)( r' f$ T7 r& y5 Z
      {
: @8 y  D+ V. s( K) k$ Z+ Q) c7 J; N9 g: g' j
            char *string2;! I4 D( _* F. K' w: x, ~: n# f
            string2=newchar[133];) Q) h, @: t, @: b) T% i" G5 z0 j
            string2=UF_TAG_ask_handle_of_tag(物体ID);
1 N. `; T. z; f2 U4 q            if(strcmp(string1,string2)==0)" N0 ?) N+ Q% q6 X2 I- Q8 ^' D
            {
5 j2 l2 e. [" N* G( d                  find_face=FALSE;//不接受& l# ^6 ^9 b- _

  f, U: y7 |. K8 v0 F            }
7 F5 H! n" n+ e5 q" j$ J# r1 a$ p            delete []string2;9 Z) c" Z6 o' y" k1 {
      }
/ O4 `2 `+ U% [1 |) e. j      delete []string1;
1 m# C9 |: u/ K' ~' }6 q( a      return find_face;. {* m4 Q+ }" h
}
, [3 i& Z0 X7 z# @( V, S: w: a6 N+ y: i& u& \- l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了