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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

1 @3 J9 E, ?4 w, e3 @# `  U! R( m7,裁剪片体
1 Q4 j. P6 l  O4 |7 v$ ^tag_t  *trim_objects;% P( m. {% B# J
trim_objects =new tag_t[count];
( b  K1 k  F  `* n: p7 otrim_objects =bound_id;. r  ^) q; J* I6 W- K
voidtrim_sheet()( x& L: {0 G9 }) o) T# `. {$ p1 U
{7 f, P& x, B6 `6 Z8 t% l3 j

3 s/ L( U+ t7 M2 c      UF_MODL_vector_t projection_method ;4 J: ^+ E/ ^" U- Y; y" c% ]9 y( N
      projection_method.reverse_vector=0;
% g/ ?* N; a+ J7 u& ?& w( r3 p3 ?      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
5 G; X6 n* @8 ]0 Q      UF_MODL_vector_defined_by_union_tdir1;
& n- z$ A1 P$ z' E* r5 D      UF_MODL_vector_direction_t dir2;, k8 f; e- O- B& R& w
      dir2.xyz [0]=dir[0];
) e& S) `- d5 Q      dir2.xyz [1]=dir[1];/ ]6 E6 n6 k! A6 a) w* K5 R
      dir2.xyz [2]=dir[2];* O$ e9 |+ @/ J. E: p" \
      dir1.direction=dir2;
& f2 h5 n% _5 j. _9 c4 N( F8 V# G8 b4 z
      projection_method.defined_by=dir1;
# D) P! p  g. u$ W7 B  S' x' J; T' o% o
      double point_coords[3] ;
: T4 A: Q" j1 |  S* ~: w: I5 R) t+ q' m0 e+ F
      point_coords[0]=center[0];" i/ _( _5 d+ }
      point_coords[1]=center[1];( y8 i' T, i, x. {) W
      point_coords[2]=center[2];6 Z+ A+ v5 z& M, n7 H* T

& E" h0 H5 x8 N0 X. J; [% {7 }7 Y      int gap_point_count ;7 [- A3 S  A( k7 D" j7 b
      double *gap_points;2 N& {8 {0 z6 M% v0 @6 f
      tag_t feature_obj_eid;7 r( _% k9 C' V, H; M) Q! e
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,  u+ d7 r! i- x: `
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
6 ^& c- U7 i! E# r6 g
9 c* t% d1 l2 I0 t6 C& l}' Q9 w3 _6 p4 G8 w7 B3 g( r
8,offset偏移
# ^4 @  W7 _1 v, u7 w) Y' `7 w7 ~# W
char   distance_str[] = {"10.0"};//偏移的距离
0 k# a9 k( g7 X2 W. I% a
/ L0 K* B: Q3 {7 R! }* Lint  num_curves;# S3 ?9 E! D' n  y4 i8 k* ], ?
tag_t *offset_curves;
% R8 [7 c3 J! ]+ i- XUF_CURVE_offset_distance_data_t  offset_distance;+ w8 J) p. ]% l0 u* W' d: x+ V
offset_distance.distance= distance_str;% \; A" U6 X; r4 [3 U! S6 \  [  U
offset_distance.roUGh_type=1;
, [  o! ~2 l7 w* L! R5 W0 S1 QUF_STRING_t   input_string;5 P! f& ~1 `( A5 ]+ Q8 W4 L
input_string.id=curve_id;//加入想要偏移的线
# q6 }, F; S/ }$ G1 x7 Cinput_string.num=1; //偏移矢量方向数量
. f7 `% v3 j! d/ M/ Z1 g$ oinput_string.string=&string_count;//偏移线的数量
7 ]. I0 A, U2 X8 Y+ kintstring_dir=UF_MODL_CURVE_START_FROM_END;/ x' Y9 m; j, K  n
input_string.dir=&string_dir;8 v' o8 j5 h; L* F  C7 ^7 c

7 n2 U: N! K5 D# QUF_CURVE_offset_data_toffset_data;' O# W/ C" Z; `( L# ?

+ T; _0 c. U6 K5 O9 }, `! S, [offset_data.offset_def.distance_type1= &offset_distance;  ?. R( ^! z. `; X
offset_data.input_curves= &input_string;6 D8 G, B+ {+ ~8 `9 b3 t$ j
offset_data.approximation_tolerance= 0.01;7 A# T8 I/ ^8 [6 k. Y( s9 F. P
offset_data.string_tolerance=0.001;
4 [$ l8 F% d/ i  S6 Z* |offset_data.offset_def.distance_type1= &offset_distance;
) E) r. v$ ?' K% j. L- w& {8 B+ }# z3 Uoffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;) v% ?  F8 }' j& W0 q, c* z
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
! a! d* N3 Z$ v) F9 ]' c8 f&num_curves,&offset_curves));
& l1 j( t; t' ~) {- [. h9,创建平面6 Z% C! B7 l1 b2 l5 Y- @
UF_STRING_tgenerator;
4 Z! K# U* l/ p# D5 lUF_STRING_p_tge = &generator;& p" [' s) T) A3 @* \8 Q. Y

9 J" m/ ^* I6 tUF_MODL_init_string_list(ge);: \! G. T  D1 }! Y
UF_MODL_create_string_list(1,12,ge);) ]: c+ p5 V5 I0 H/ B2 C
2 |2 l0 S7 H5 d
ge->string[0]= 1;2 d/ e. y) }* `, q: [2 f, k
ge->dir[0]= 1;//指定线从开始到结束
& B* X1 E( y" t: ^$ \2 ige->id[0]= arc_id;//指定边界的id
7 `* W7 o0 K, f+ R+ s/ kdoubletol[3];
! L4 Y: [% T/ I& _2 H% J: ttol[0] =.001;//直线公差
$ A$ B- n& }" \5 P  E/ R3 ^- Q9 Htol[1] = .5* (PI/180);//圆弧公差
) H. E  z. U; D8 _3 }tol[2] =.02;//不起作用" T: Y6 j* r6 q' V0 |0 t( s% |
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
4 ^# u+ `! O* U% }10,选择
# C: ]% W. f; v1 {1),点选择
1 M! u) k# @/ C6 `) btag_t point_tag;
' y' G8 w+ k) Z' Y5 C7 l- W' Bdouble point[3];5 i* P2 d- C' @
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  $ o8 ^4 r5 z# T+ v5 g+ l  g& q" @
       intpoint_res;
9 C: X. r1 \, @9 F+ Y
$ `  H6 A1 \6 l( v+ L. G9 }2 uUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
* W. K+ R, s& G/ xpoint,&point_res));
" D; a- C/ Z0 T) B1 T( ?& iif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
; `2 ]5 J% y  [$ P: |# v4 m9 l{
; z6 K! D- D) S  P$ o/ A8 x }! S/ u) ~$ L4 `( l' J
2),向量选择6 q$ v$ Y9 \( {) ^
     int  mode = UF_UI_INFERRED ;
! P' }8 T$ P0 |* j1 R% g     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;) G8 o" h$ q7 l- g. [7 [
double vec[3];
7 j% l- p$ Z. |5 J! Ldouble vec_pnt[3];
5 P6 |& ^& N, N, p2 z5 oint res_vec = 0;
  l* p: y5 h8 B' F, H+ P     UF_initialize();  & T6 X3 Z  E' `) i
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
* h% a7 C& x# J' F" r           vec,vec_pnt,&res_vec);; D5 G  T1 I2 C  ^. A; v0 |( C1 i1 W
     if( ifail != 0 || res_vec!= UF_UI_OK )   9 c1 i! |" V; O% F. C3 \& h
     {     $ m3 t* A2 q+ U) v7 V
           UF_UI_ONT_refresh();
: Y! F5 n- y* A5 i3 n% D  J           printf("No vector selected \n" );
; f  s8 [* m5 o     }3 i, y) b; h- k1 ]; I$ }  p
     else
9 a# {: f5 {1 n; ?) U     {6 G! e# S7 m/ [3 q
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",6 r  k1 f! I" w& h
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );( {3 j6 I0 }2 B2 H5 f
}! H* B$ l7 j; h' o$ T, u2 q% X; j7 I
3),平面选择% S7 y9 O' s3 s8 M. v9 E8 C
tag_t plane_eid=NULL_TAG;3 B+ N) W4 A" u+ p, L! F
double orientation[9] ={0,0,0,0,0,0,0,0,0};
& K. y- D2 |2 d* `   double origin[3] = {0,0,0};
( Y8 A1 I5 q" @6 ]  @   double pts[6] = {0,0,0,0,0,0};
  n: P# s5 N: u5 O2 B4 A   int i, error_code = 0;
% ~7 v* ~5 \( M* ?1 N; p/ a6 A   int mode, display, response;4 P$ Q7 a+ ]& y; \: E6 O* ~
   mode = 1;                    
0 Y" Z0 C4 C, \- Kdisplay = 0;      " r6 S+ |8 ~$ f! X
UF_initialize();
" p3 ]. Y# y7 M, t   error_code = UF_UI_specify_plane(; l% `9 u/ t; ~" N2 h0 v( C6 J) Q
         "Select Plane", &mode, display,
# z' ^4 m# m, j' a/ B4 q; d7 S5 s# [         &response, orientation, origin,&plane_eid);" ]& o: v+ m2 A* x2 Z8 }9 A4 E
. r6 d& u0 Z7 p1 I
   if ( !error_code && response != 1&& response != 2)2 P. _$ n& v0 {% ^- ?' @$ S
   {
% a4 S7 a2 v; g% c2 h& G                     for (i=0; i<3; i++)
# p. H+ X( L1 H2 p. `9 S1 {% ^2 I               pts = origin + orientation;+ v; P$ A. _, _; _& B6 D
                     for (i=3; i<6; i++)- j. H) i& P+ r; Y' V
               pts = origin[i-3] + orientation;
( A9 K1 @( r' C7 }- u         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);3 \1 l- L+ `7 S) N. ~1 [
   }' M8 \2 C7 M1 C" y2 |
11,临时点,线, @( c; E# u7 D5 }7 h
void display_temporary_point_line (double point1[3], double point2[3])
, }% Z2 s7 [4 d- A) T# g6 K{
% G* ^' v, e& Y6 c' F6 t  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
) y: R# b3 X% M8 y1 y/ N/ x  UF_OBJ_disp_props_TColor;
/ O# U% v; G8 @& @8 E- W1 W  color.layer= 201;9 d$ a7 ]+ n& z/ l  b9 D7 o
  color.color= 186;1 I" t1 ]5 @. i& h5 O4 a* ]; x
  color.blank_status= UF_OBJ_NOT_BLANKED;& g& u1 o# Q! i8 V5 p
  color.line_width= UF_OBJ_WIDTH_NORMAL;
+ ?/ E5 m% L4 x7 z. K( m  color.font=0;  Q5 C- v# R% A3 N+ K+ G7 W1 y
  color.highlight_status= FALSE;
2 m# `4 Z, M7 O: s& p0 |  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;" M1 f' x9 A1 n5 h- a$ b

4 O* u' G9 P) U% D- SUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);1 X  o( k5 \/ K" |" Q
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);4 }" i, K1 T5 ]$ V
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
* k  t! @# u0 U, K+ @}/ e$ B3 `+ H7 j4 T$ a3 m
12,WCS与绝对坐标转换- k. z3 A9 N; ^- P* L; I
                        voidcycs_wcs(double point[])
7 l$ C: e6 w! q  W+ h{
8 A2 G+ B3 ]* d+ [      tag_t  wcs_id,matrix_id;/ \0 e8 X" h! s+ C7 ~
      double matrix[ 9 ];
$ F$ }1 K' e& e      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量7 y! R7 R! x3 @" o
      double wcs_origin [3],vec[3][3],point_origin[3];
- O6 }9 O) F2 I7 S' a1 Q4 A% a      //1,得到工作坐标系( \! ]2 ~# ^0 O8 w
      UF_CSYS_ask_wcs(&wcs_id);
1 ~) B3 p6 v# b, b# p      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
3 X& B6 R5 L5 @7 _  p! i      UF_CSYS_ask_matrix_values(matrix_id,matrix);
# Z0 O) v2 P% g- Z) W) M2 h# Y. w& L) E- [9 v; h! I, U8 T" Z% F
      //2,得到工作坐标系轴向量
4 a9 x( [2 A, d1 m      UF_MTX3_x_vec (matrix,vec[0]);" N; t; y; A; Z6 v3 e% @
      UF_MTX3_y_vec (matrix,vec[1]);0 J8 i( D% w2 X6 m2 l
      UF_MTX3_z_vec (matrix,vec[2]);
* S( m/ E8 Q0 ~8 ^' a, s# C$ U# ~. K
      for(int i=0;i<3;i++)
, `' _+ }1 d8 d8 R% ^% A5 C      {     
% T9 J( u4 @8 y$ d4 c/ {            double tol;0 s: b, g) W, i. g* W8 S/ S1 F
//3,得到点到工作坐标系原点矢量
! ~1 z9 U/ r8 O1 Z: Z" M( `            UF_VEC3_unitize(vec,0.000001,&tol,vec);4 }+ Z+ D9 I" f2 `; h+ B: W9 u
//4,得到点到工作坐标系原点矢量
$ W; m( S; X, {. |            point_origin=point-wcs_origin;
! u. r0 K% @2 X  z, O      }
: b/ C/ g: i2 N, Y8 \      for(int j=0;j<3;j++)0 W& E4 K; |3 q+ V$ ~' v1 m
      {
3 L8 _% d: V) s. \) M+ \7 k            UF_VEC3_dot(point_origin,vec[j],&point[j]);
8 ^( ]! n: G2 ]: f5 W4 \  l, w      }
( ?% r) R4 G% i}& u. ?* a/ D+ B% B8 n7 b4 ]$ ]
13,三点求圆心' C, c- s( u* x0 [
#include<iostream.h>
7 Y+ e7 q# Y+ G, j: U#include<math.h> 9 n9 r0 l' X% j% E+ a5 g

  `3 |& A5 g9 `1 v1 J* @int main()
5 L+ |# D' ]& p, N) J, y{
2 `  t- P6 N/ i) Z" [6 S9 V" D4 L6 G      int x1,y1,x3,y3;8 T$ U& m: M- }( G1 y
      double a,b,c,d,e,f;
# G+ Z$ A+ d$ W, k  }( q9 R7 x      doubler,k1,k2,x,y,x2,y2;
) A+ r  R. C3 Y4 }2 @6 C      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;  [  `6 n; T7 @4 a- h: x
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
4 o6 {2 S# }  [4 E& O" Z4 D      if((y1==y2)&&(y2==y3))
4 ^  f/ W+ v, t0 h      {1 N' t6 p2 B- Q( |/ ?5 G1 S
            cout<<"三点不构成圆!"<<endl;
+ l  w" a9 X- [            return 0;9 Y# j4 l" U* d# a& V& f
      }
$ G) X# ~' A6 l- d2 a      if((y1!=y2)&&(y2!=y3))* o$ X' A4 c1 e% P6 J5 G
      {
. r$ f9 S3 e( e' H1 ]            k1=(x2-x1)/(y2-y1);
- l, A$ h1 L" X/ {4 k            k2=(x3-x2)/(y3-y2);. M' F- x% \7 t- \/ u; O, d
      }
0 {6 [7 L2 g. f  Q' }0 j) i      if(k1==k2)
4 V, b( d9 }7 T' |) g) H      {
3 {- J5 |; D; J$ v9 S- S% O  p4 ?            cout<<"三点不构成圆!"<<endl;
3 b3 o9 _* j( u  E2 f' J5 W9 w" B            return 0;) Y& k/ O% r! w  l/ j  a; U6 H
      }' ?) ?* ?5 P+ O, F( I  I
      a=2*(x2-x1);" M& T! P. U5 m; x; E' c* f4 r
      b=2*(y2-y1);
6 p" h+ h* a" {- V      c=x2*x2+y2*y2-x1*x1-y1*y1;# K: K9 [& _! B2 q7 g+ Y6 V' k
      d=2*(x3-x2);2 ~1 C% E3 F: v: @
      e=2*(y3-y2);0 g  Y7 ~- ]* p, n7 c
      f=x3*x3+y3*y3-x2*x2-y2*y2;1 R% p( F, `9 Y( T0 x! f& ?
      x=(b*f-e*c)/(b*d-e*a);) a& [& s0 o3 y$ n
      y=(d*c-a*f)/(b*d-e*a);, E1 l7 [* t) D, u, w+ ~
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;0 x8 S# n4 t  T! D* p( R
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
7 M. p- N7 h1 K+ Z4 G9 z4 `      cout<<"半径为"<<r<<endl;
) B( x  S7 y* a* w1 a; j4 b" }      return 0;
$ E8 w  N; ]. z$ {/ e6 y0 @+ l5 e; }$ C4 S}
+ t7 k5 S0 E8 x14,查找圆心7 M. U& t3 {) l7 h7 H$ s
            UF_EVAL_p_tevaluator ;$ R' J6 L6 O4 k, Q+ [
            UF_EVAL_arc_t arc;
$ e* R0 S4 X, ]7 Y; u1 {            UF_EVAL_initialize(obj_tag,&evaluator);
* g; J' v2 t- {+ ~            UF_EVAL_ask_arc(evaluator,&arc);' P! D; w# \& F% `7 [
            UF_VEC3_copy(arc.center,point);           
/ W! ~. F% a. D15, message_box0 m$ M7 N& Z' x% R/ K. s
void message_box(int *res_mes)0 O# V  p9 q1 O9 A
{
) {! Z  k  v! g  ?      UF_UI_message_buttons_sbuttons;
* L1 K5 u6 @' [  D      buttons.button1=TRUE;
9 v4 [0 J  S5 m! A& B      buttons.button2=FALSE;
- _! `# E7 S! M0 a* ~$ U      buttons.button3=TRUE;. ~+ r& o; M) k0 }- m7 s
+ q# x5 D$ O, V2 m* b
      buttons.label1="OK";
* y. }1 h6 N  m: V; C" x/ d      buttons.label3="CANEL";
5 G  R' Q" `1 M4 ~& {2 r4 M2 f( I: [2 ^* O+ I
      buttons.response1=UF_UI_OK;8 ]# v+ A; O- U  j2 W2 V
      buttons.response3=UF_UI_CANCEL;
9 P0 v. P3 x. t4 D8 }
1 i  r* s+ C! B/ u6 D- a8 p* p& b      char *string_msg;
& a) i+ c4 t# K. j7 a0 A      char*material_msg="ALL selcted objects will be removed";
' v) b* C" M% u  Z2 a      string_msg =material_msg;
- T1 i- A$ F+ Q9 M+ c
4 n2 Q4 r5 Z$ ~5 ]$ K* p/ [      UF_CALL(UF_UI_message_dialog("",4 Y- \! [3 U  W  A# `
            UF_UI_MESSAGE_WARNING,4 w( \( u8 X) L3 A0 |% ~. ]
          &material_msg,2 V% l  V$ J) E7 v' r
            1,1 X' W, v$ ]3 C( K) |' w6 [6 @
            TRUE,
& n9 M5 {$ r2 N+ H            &buttons,5 r( p9 P( k* @( X' j% h+ f$ L8 [
             res_mes ));
/ J4 B- E5 G4 G: D0 Y}
- ^& [5 N1 N% H! H0 h% j, |16,选择过滤# x# P# A& r) y8 w+ W  {# E
static int init_add_face( UF_UI_selection_p_t select, void *client_data)( L) ~7 u8 b" q$ h: e
{
3 r& P1 p; d7 b' h) p      int nums = 1;) ~7 i' T9 E+ B4 C3 q' E3 d
      UF_UI_mask_t masks[] ={; t& q9 h9 _- q0 R5 M! v
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};2 L% i* |: G4 o+ S5 e0 L8 o

4 l2 C& R7 p8 [            if(/ B2 B! w: x6 v- O  `' u
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
) E' _' t0 M- T9 _8 n                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)+ g0 t) ?; U/ h/ r& r
                  )
* T: ]6 f0 {, o2 Z6 ]  E4 U            {
7 B5 M/ @3 O1 x" k+ O/ s                  return(UF_UI_SEL_SUCCESS);% q% l9 G$ l4 G' T; E
            }1 t" C5 z% v" L6 o0 R
            else
$ p5 a4 B8 F  L: |0 C            {     
/ s" z: P1 Y3 n$ `. i                  return(UF_UI_SEL_FAILURE);9 i% m- T; L2 y( l; w
            }
! K+ L4 W9 D. h( J}
+ X* N7 ^' c/ g  R; ]int find_tag(
. J: i' B- s! ]                    void * client_data,//用以传输过滤资料" F' q$ K1 s7 ]9 H2 j; s
                   tag_t object//现在鼠标所选物体ID, |; ]. o& e6 _: E* n
                   )
( J' \! i) J; A3 a{3 [  r% o* R- l4 j
      user_data *obj;9 i/ Z9 m/ K( I
      obj=(user_data*)client_data;" W' R3 O' o* |
      int find_face=true;//接受
0 ]% a; v; b" L  w3 n      char *string1;' J4 O  I% h: b4 T, E
      string1=newchar[133];
1 l6 }! K% K" N/ B  k1 O6 J      string1=UF_TAG_ask_handle_of_tag(object);
3 [: w( f! N' Q4 A& C7 D5 F8 A      for(int i=0;i<过滤的数目;i++)3 _+ e1 {5 |4 v
      {6 A" l: s+ n6 i9 j
! H$ Y: p9 Z# `0 L
            char *string2;: S2 v4 ]5 Y! ?
            string2=newchar[133];
1 N/ t* `; y* O8 L+ V            string2=UF_TAG_ask_handle_of_tag(物体ID);* U; ^- t. j% z7 k, i
            if(strcmp(string1,string2)==0)
7 T3 \: \) p" _            {5 B: f  Z  C0 C
                  find_face=FALSE;//不接受: z7 `2 ~$ R2 Y
5 h. T2 M- }, S9 f; x6 W) N. b. W
            }
7 {& p8 d" J9 d3 e            delete []string2;% ?& e( J' a+ j- s5 W: x; @: ?/ c
      }) ^  E  X- V- _
      delete []string1;0 m; z2 K  K0 Q( R
      return find_face;
! r2 ]( p' F1 t}* i7 _. n9 A5 q8 H7 W/ |' w
1 u  u. u5 e5 {! C7 W! x( W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了