PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

- P! ~7 s. \- q0 c6 ^7,裁剪片体
: D0 U* r, ?" s' Q1 s* }7 `3 Etag_t  *trim_objects;+ ?. `! r0 x/ m5 D
trim_objects =new tag_t[count];
0 B# a* T- h; B1 Dtrim_objects =bound_id;
5 Y& G" m7 T- L# r5 m+ Gvoidtrim_sheet()1 ]0 V0 a' U+ l2 ?
{
3 G) A8 h' a7 j, H/ j  U+ R
) N( {% {# D/ k; z: b7 B- j      UF_MODL_vector_t projection_method ;
0 `+ _9 m8 o& u8 ^; x, ~      projection_method.reverse_vector=0;/ b& c8 `5 n7 A7 r
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;+ n! f. V7 ^5 f  ?( F' K
      UF_MODL_vector_defined_by_union_tdir1;& Y3 N% e+ o! y+ G* W2 B0 |
      UF_MODL_vector_direction_t dir2;# x3 A& b; `' _& O1 m5 B0 U0 @
      dir2.xyz [0]=dir[0];* |! a3 g8 Q* D
      dir2.xyz [1]=dir[1];
" {& G# B& N" G# h) W, ~. }- m' y- O      dir2.xyz [2]=dir[2];! h4 C5 T1 y# i2 p% T( D
      dir1.direction=dir2;
7 z1 i7 D! M) ^1 U/ g' c
; ?$ U/ i' P8 m! w      projection_method.defined_by=dir1;* c1 B$ H" R! O: S4 x
, f  x2 u/ a+ I+ `; @" ^
      double point_coords[3] ;
; F. t6 d  q1 T6 c2 T# s+ R/ f
3 ~$ V5 x. G& Z3 |      point_coords[0]=center[0];
8 X( ^8 ]! J9 a% _      point_coords[1]=center[1];! v) e( e. D( v7 @- d8 F& x4 c
      point_coords[2]=center[2];( \4 j) Y" O; ]" s9 z0 I
) a7 A& Q7 j! [6 E6 m, X# f. J
      int gap_point_count ;
9 x# r2 @- J( u2 a( V      double *gap_points;
, P2 y' e7 A/ s% O0 H9 n      tag_t feature_obj_eid;* e4 [5 V9 D5 S& V3 D9 }) V
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
+ \" m) e1 `9 J* X                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);' }5 O/ K% Q" y( x! f

. g6 m. l( A# [3 t& K, m( [# \}
5 Y( ~0 Q" u0 v5 N4 t6 J8,offset偏移
" s. J$ h% O- C  E2 X/ M; i8 Q, L! U& |3 F- x, r8 V, ]- A# V$ D0 @( g& J
char   distance_str[] = {"10.0"};//偏移的距离8 |" v) V+ f7 G7 f) L

5 W* Q3 p, N7 G% j! J! hint  num_curves;
! m9 @7 p9 @8 X1 t. z2 f5 wtag_t *offset_curves;
6 [/ @, g; @4 G5 W7 g3 hUF_CURVE_offset_distance_data_t  offset_distance;# _; f! s  w) U1 o
offset_distance.distance= distance_str;0 I( N* c. O% ?. l
offset_distance.roUGh_type=1;) Y- @+ |  |8 N* K
UF_STRING_t   input_string;7 f( J- }% K- M0 V4 [$ n; k3 D
input_string.id=curve_id;//加入想要偏移的线0 b+ J; V( D* q! L. }$ N4 y0 N
input_string.num=1; //偏移矢量方向数量# t5 d! M0 p3 d, p
input_string.string=&string_count;//偏移线的数量
, K5 [' V! b9 b, \0 b9 hintstring_dir=UF_MODL_CURVE_START_FROM_END;
, N* j" _- p4 g1 [2 Dinput_string.dir=&string_dir;( Z5 I  }1 y3 d

8 ]! f  @! L0 c6 R4 n+ V2 TUF_CURVE_offset_data_toffset_data;
) G! X' f; l4 M% [3 ~! I2 [
& R: G2 j& Q# K0 poffset_data.offset_def.distance_type1= &offset_distance;
( n' i% ]3 r. A; R* Q9 Uoffset_data.input_curves= &input_string;
) Z3 i' x# l! L9 A& k- a7 yoffset_data.approximation_tolerance= 0.01;# k, i  l8 X* r% w# f- T/ `
offset_data.string_tolerance=0.001;4 s/ |# h. V5 o/ o! R: r5 _
offset_data.offset_def.distance_type1= &offset_distance;
- V+ J! a3 ~' ~. \- aoffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;8 E+ j/ ~) I, f) ?3 p& J2 F
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
# D3 ~! g8 d8 t0 X7 [; a' J# h&num_curves,&offset_curves));4 c3 K6 h( e7 p$ `/ @
9,创建平面- y* |3 T1 C3 D& S( r
UF_STRING_tgenerator;
% K8 o# @* |! ^% ^UF_STRING_p_tge = &generator;
4 {" u0 s0 M" m
& O; R, ^  U6 c0 lUF_MODL_init_string_list(ge);+ R9 p4 n" b1 X
UF_MODL_create_string_list(1,12,ge);/ g2 e7 ^( |( ]# ^
* K- l% H/ o& n* G/ ?# u: T. y" Y) b7 J
ge->string[0]= 1;) L' }0 R  m) P9 V
ge->dir[0]= 1;//指定线从开始到结束% S9 C6 |, `6 _1 g! j8 x
ge->id[0]= arc_id;//指定边界的id
9 j: @; c7 n4 Ldoubletol[3];
5 t5 B  J, ~+ ?$ Y* `2 K' x, a$ \tol[0] =.001;//直线公差
, j5 n0 i" K# v1 ztol[1] = .5* (PI/180);//圆弧公差5 E0 X& U& \; Y; p# k8 e6 ]
tol[2] =.02;//不起作用$ {" Z: b8 M- A* ?' l8 Q
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
2 K) q  ]9 |8 o+ b- q# p6 N0 U10,选择% U' f6 J4 F+ m3 b. B) T
1),点选择
# i4 N& \/ G  l" rtag_t point_tag;3 P" \, N. H2 Y' F2 ^
double point[3];
6 n2 p' t0 {3 }5 d  J6 P8 Y0 I       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
! r5 J0 I8 h7 {5 y  ]7 L( z3 L       intpoint_res;
( V  k0 G- b" t- x% x- S; \# K- `  x+ H5 F6 Y' F
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
# b* t' i" E1 A, b; I. Y5 wpoint,&point_res));
4 F9 {3 W2 U/ l, J9 x( _9 qif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
8 T; _; m6 c, \# G! l! z) S{
6 f6 ]6 e2 m; }- ~' w$ e& c* p4 b }
3 o. A6 R1 u- v: S2),向量选择" J) \0 W+ h7 v
     int  mode = UF_UI_INFERRED ;4 ~$ s! k  K; R% A9 v
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
4 |& a, T/ ~0 k- g  v% c4 Xdouble vec[3];
# Q4 E- W6 w% X, R. ndouble vec_pnt[3];
7 F2 H' m; M9 S1 X* qint res_vec = 0;' g% O; F5 Q! K! A
     UF_initialize();  2 M7 {$ b; K( w3 S. o
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,) R3 ]) E! O8 ~% r
           vec,vec_pnt,&res_vec);* j6 E" q7 k: E! w( w/ @# M
     if( ifail != 0 || res_vec!= UF_UI_OK )   7 e) }* v/ ?' m! B
     {     & q0 ?- ~; Q# P7 \2 a
           UF_UI_ONT_refresh();
' d5 E8 e- |- k3 g$ }4 v* x           printf("No vector selected \n" );8 ?1 z& o2 V0 {
     }
( V4 b( S2 I" j& M  h4 r$ Q4 O' d  W& x     else9 A3 a$ ]' x' [: I
     {
, I7 b. I5 l% w  e4 P9 z7 `9 Z           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",8 V) N$ M: ~8 s- n4 R
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );! U8 Y1 P# {8 ^& t( X8 g, ^% e9 s( P: U
}6 m) V: W) _/ E. ~  ?0 }0 r! U9 K1 E
3),平面选择
/ ], j5 w- O. j/ x, u; ~9 Utag_t plane_eid=NULL_TAG;
( ]- g9 w9 A( |$ t9 V4 y2 V: Zdouble orientation[9] ={0,0,0,0,0,0,0,0,0};* ]5 A; b+ ^7 Y2 D- n
   double origin[3] = {0,0,0};
- w: R( }. O0 G2 o   double pts[6] = {0,0,0,0,0,0};
2 L! g. C( o( o: D- L   int i, error_code = 0;
. z! _5 t# O; F' k( g; U  @5 z   int mode, display, response;
$ f9 v+ e4 [0 ~; A8 q4 D3 q   mode = 1;                    
* l8 j$ t* u; i7 n. [  p7 x. D' [display = 0;      
1 Z& L" I3 @, WUF_initialize();
9 M0 \4 I' z1 A/ y( a% x   error_code = UF_UI_specify_plane(
: [3 q; \3 s' x  Y1 n' {5 r( h/ X         "Select Plane", &mode, display,5 N3 b8 X) v' r. K8 t5 Q7 @6 k0 o
         &response, orientation, origin,&plane_eid);! P: a% I8 Z% j/ u% ~

$ a! _! w/ V* J   if ( !error_code && response != 1&& response != 2)( S' k* R$ ?* E3 U( S3 M; l
   {
( k5 N, v7 T* m3 M6 A                     for (i=0; i<3; i++)' |% b+ C. w% C% W# D  {6 e/ e
               pts = origin + orientation;3 P% H: o" p5 q, ~$ S5 u
                     for (i=3; i<6; i++)
2 R4 D+ j# z/ J( P& f0 q( ]( X0 p# `! q7 \               pts = origin[i-3] + orientation;. ]& N9 F  a  H4 T4 X
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);' D9 H0 V& h7 P4 Q$ P
   }' d2 J' q: t8 b: q3 u2 V
11,临时点,线2 X* |, R) A6 v4 x* P; \) D/ C$ [
void display_temporary_point_line (double point1[3], double point2[3])
& X( ~$ a2 D8 R8 Z5 ^" [+ ?( [: Y* n{0 U8 u6 Y/ b; v  k  J' D. ?! V5 ~$ V
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;6 i! s4 X0 a$ i0 S* T
  UF_OBJ_disp_props_TColor;) o) l1 o) S, ?2 ?* H
  color.layer= 201;! e! c% t5 {0 W
  color.color= 186;
8 l! Z& J; C% z: ]9 v8 r  color.blank_status= UF_OBJ_NOT_BLANKED;, c  j' h" e; j# B5 N6 m# S  v+ t
  color.line_width= UF_OBJ_WIDTH_NORMAL;
, I, n4 N. F3 x  color.font=0;2 ^+ k+ H2 e- D. J( n! a
  color.highlight_status= FALSE;
+ e* A. K8 H0 K2 ?/ R  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
* ~/ K2 y6 s( q, J2 _, e0 {. Q0 ?( m( J% g* M
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
4 G! N1 \: H% U3 h; e7 W4 wUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);! e! {* M* z+ o. x+ u6 m
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);% C: c% C3 R: K7 n$ c; k
}
4 W0 c/ ]4 u2 \' M/ ?% f12,WCS与绝对坐标转换! n: B6 e* [& ~' I0 \. w+ j+ A
                        voidcycs_wcs(double point[])
+ M1 E( j- G3 v4 F, `1 H, u! n{
1 r3 M9 o8 D% X" x. X* P      tag_t  wcs_id,matrix_id;
6 [6 a, N3 a1 x7 H7 Y& Q; z      double matrix[ 9 ];1 y3 i4 S# U4 {9 S: j! T
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量- P- |/ `: A/ r( ]  H7 m2 q. g
      double wcs_origin [3],vec[3][3],point_origin[3];
! F8 @% v& X3 ]5 F      //1,得到工作坐标系4 I; c7 i1 k; _) V) i. u1 _
      UF_CSYS_ask_wcs(&wcs_id);" _' r9 q: ^5 W( h. h
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
' N& l/ D7 B7 x8 s% x      UF_CSYS_ask_matrix_values(matrix_id,matrix);  s0 S8 T% H( ]- ?& d4 @

/ `" N% S- P4 W! S2 E) D      //2,得到工作坐标系轴向量3 g2 F# b" Y7 @" P
      UF_MTX3_x_vec (matrix,vec[0]);
1 P, e8 N+ z4 q, k6 I/ j      UF_MTX3_y_vec (matrix,vec[1]);
$ `( R- |3 |# L5 @& A      UF_MTX3_z_vec (matrix,vec[2]);# Z# U$ f- k" s* O: ]8 g
' k/ L2 C5 O% A+ U; X
      for(int i=0;i<3;i++)
7 M6 }0 [9 k# @- T( u% O5 ]      {     # S+ e+ |& t! o  h
            double tol;4 m2 l+ K. B* m
//3,得到点到工作坐标系原点矢量
2 }1 d5 }( _  |            UF_VEC3_unitize(vec,0.000001,&tol,vec);/ {1 D; v) O7 O) j! a1 b
//4,得到点到工作坐标系原点矢量, q1 `9 S2 J6 ^! K( B; u& d) e
            point_origin=point-wcs_origin;/ A4 S9 v9 M9 ~# \7 ]" j
      }' g" n) s! M6 i# F. g# d
      for(int j=0;j<3;j++)
, b7 Q7 t' I+ |1 s3 \- |. q% o0 |      {
8 R8 T! V4 G! f$ C9 A0 V4 S            UF_VEC3_dot(point_origin,vec[j],&point[j]);
% E+ N( i0 c. ]" S* ]+ P' K      }. H; f/ [. b1 r: M
}
2 X: K9 m' W, h" z13,三点求圆心
- S  ?2 `; h9 R- W& v# g#include<iostream.h>
8 V% F# k  |* G#include<math.h> $ G  x) k; q" b
4 V( A- K$ z% x8 d
int main()# B. x' {6 W: I1 r9 D# i
{
5 ?% X: n/ V, c      int x1,y1,x3,y3;; ?) {  r; q' {3 m1 b
      double a,b,c,d,e,f;
, i4 t# a* \7 O" n1 C: B2 @5 v      doubler,k1,k2,x,y,x2,y2;1 S: ~2 z% m9 l- C% t
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
+ _! v7 m3 i# d      cin>>x1>>y1>>x2>>y2>>x3>>y3;
; \+ Y; p- J; l. W  m5 p      if((y1==y2)&&(y2==y3))
/ V: _  I6 W$ D8 h9 ]% Y4 R      {
1 _4 ~3 P3 [9 Y- t% d            cout<<"三点不构成圆!"<<endl;
" S9 k/ {' a; f) b1 }+ G            return 0;
/ j9 d/ L, s' g/ O3 w9 F      }4 v7 D3 h7 H; I# `" ?' ?
      if((y1!=y2)&&(y2!=y3))
5 u2 p6 a/ z6 B- [1 }      {- H0 O* E; s5 T( p* z6 l" U
            k1=(x2-x1)/(y2-y1);! [" O3 m8 u: o. R& D
            k2=(x3-x2)/(y3-y2);
; v$ {6 g, O& c, q5 Y: ~" f9 O      }! a- `+ H  O% {) I( ^
      if(k1==k2)4 [" T9 q$ y! D' h' v; z& C; Z
      {
: }- Q6 _: f% T% F8 ^            cout<<"三点不构成圆!"<<endl;
! y* W9 V" B: i) n4 ]            return 0;7 F6 x1 S& c5 @" s. }
      }5 Z; n0 ?, l9 c. M9 U
      a=2*(x2-x1);
5 c. }4 `, a  @/ V. ]/ o% h5 m      b=2*(y2-y1);
0 ]9 s- m8 P) k2 m% P' |1 Z& a      c=x2*x2+y2*y2-x1*x1-y1*y1;  W" G0 c' _8 F# r- g9 {+ L0 l: u
      d=2*(x3-x2);
  T6 Y0 n) w. D  m5 d. w8 \      e=2*(y3-y2);
& b2 o0 d, g9 j! N      f=x3*x3+y3*y3-x2*x2-y2*y2;7 c. W, {1 y9 s2 I9 `% B( v
      x=(b*f-e*c)/(b*d-e*a);
* O  A0 Z; e( S: Y$ s      y=(d*c-a*f)/(b*d-e*a);. F" b: L. d; N) {
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;" f( `; a% F$ P$ R; }
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));# Z; k! q, S" l, c  v9 `& e
      cout<<"半径为"<<r<<endl;
& \5 F, B, ~5 t! g2 u0 }      return 0;4 X& l8 y3 i" y; E4 Z5 X/ {2 J- c
}" w! J' Y$ V% n7 S) o
14,查找圆心2 n- s/ ?2 C% a- ^* Y
            UF_EVAL_p_tevaluator ;/ }( m1 b( z9 T+ p
            UF_EVAL_arc_t arc;
- Q# Q+ |8 X+ V* h! n: ?3 A            UF_EVAL_initialize(obj_tag,&evaluator);
; `4 S) N; m! [& L1 x9 f/ `* o            UF_EVAL_ask_arc(evaluator,&arc);2 X* [. B9 n9 ]$ C  `; V
            UF_VEC3_copy(arc.center,point);           9 Y3 I7 ?7 x3 V3 f# G  i
15, message_box
* _: V. k+ [* {4 _7 p! L: Qvoid message_box(int *res_mes)
, p0 q6 |1 e* f9 G% e0 }' d{
% x- a6 H+ g6 a0 e& ^4 m" r      UF_UI_message_buttons_sbuttons;+ m; V2 V% ^( Q0 r) m# l) [
      buttons.button1=TRUE;
4 r2 l3 X# Y3 L% {/ P* d( Y      buttons.button2=FALSE;5 `/ y# W% S3 M" h3 e
      buttons.button3=TRUE;: p+ ]8 W% [8 X4 b% F* h

' B6 P8 F: a- F. N# j. r      buttons.label1="OK";
3 I# y* I3 N# C+ z( k      buttons.label3="CANEL";$ g2 }4 Q0 H7 S* `) J, f
5 X) [" d! F& e3 W' O& {$ F
      buttons.response1=UF_UI_OK;
* p2 \9 P3 F' V3 O- P! f$ m      buttons.response3=UF_UI_CANCEL;
/ O8 b/ e9 _  X4 p% V- c: j  T$ Z( i& R$ n+ t7 e. F
      char *string_msg;& O; Q( i) Q9 \
      char*material_msg="ALL selcted objects will be removed";" k- k" `8 q* g. r
      string_msg =material_msg;. x" f7 w% R) E1 z
. U1 H/ g! l! ]4 t
      UF_CALL(UF_UI_message_dialog("",8 g! N- j- ]9 m) x
            UF_UI_MESSAGE_WARNING,
+ }. q' j8 M. M- O          &material_msg,. W* j1 ]) H/ H
            1,; z; i' o1 T; c% O
            TRUE,8 U. U! f% L$ Z3 _7 ?
            &buttons,
" }7 V7 Q' |# q6 U             res_mes ));
, e: U3 y6 }( A- F}
$ Q+ _# V( y9 @* w. g16,选择过滤( h9 T, j+ L+ d% M; m
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
' ?5 P6 P8 U& P6 t+ y8 g" B{$ U& G% [+ n& Y0 ~
      int nums = 1;' p* t' N& [) |
      UF_UI_mask_t masks[] ={
5 B) c" X- `% E1 [# u# y            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};0 Q# A- y, K: `* T: l  f
0 r2 G2 y2 k8 T, j( Z4 _
            if(5 K! @& X8 w  t3 g
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0); P2 U+ S) ^7 P, Z6 o5 s9 I
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
! s$ L- `5 Q3 K6 \. I9 Y& ]% k                  )+ {% U, T' F# h# j
            {- b) X  ]) X# `, v
                  return(UF_UI_SEL_SUCCESS);( A& F" f! R7 s. k- i
            }* f7 \: J: w% F% Q) L
            else
6 C# I) m# F8 C" @! h5 G, e            {     
1 g) M/ l" z; A) E$ W$ P3 @* q. L% m                  return(UF_UI_SEL_FAILURE);
$ ]2 c: w% }- W& ^3 C* A/ C            }
" V5 a( X& S" J7 H# O% u. D5 X}
3 k/ ~- j' x, C0 o! T. t6 K, uint find_tag(
& |3 f. k3 S: |" t" P                    void * client_data,//用以传输过滤资料2 y, B/ U9 }9 U! |2 {& E4 q5 g
                   tag_t object//现在鼠标所选物体ID
* ?# I& s8 q5 V5 b& F                   )4 t5 q% b$ P, ?+ }; A5 b1 p, k5 y  v
{
) P$ \3 V- e; P. o6 v8 c  @      user_data *obj;1 G1 S2 i8 ^6 O! F
      obj=(user_data*)client_data;+ ]: W& F) ~; E, @4 s
      int find_face=true;//接受
3 O, r( e: m- Q      char *string1;: C% Y5 U) C' e  D+ R
      string1=newchar[133];2 ^5 u/ q( z( [
      string1=UF_TAG_ask_handle_of_tag(object);3 I( _  r. B8 V6 V3 P
      for(int i=0;i<过滤的数目;i++): [& ~8 N  O' V
      {
1 C; s# x+ `. n) t* R. ~" D! s# M, L( {, r  s" P
            char *string2;' X( t0 x5 u2 p/ L: q
            string2=newchar[133];
7 Z# |: M0 M2 L4 k8 K            string2=UF_TAG_ask_handle_of_tag(物体ID);4 [! p  }; A1 a% A
            if(strcmp(string1,string2)==0)0 n% {8 L. S' b8 [1 N5 H) o* n
            {
: o! f! p7 j2 x                  find_face=FALSE;//不接受
# O9 D# P  Y8 r! _, b. u" M
8 {' c- }- @9 f$ o6 I$ u. Q            }
% [) V+ m$ v, b( ^2 z            delete []string2;
6 h4 n' A, X. U' T* Q. u      }3 @- C0 z' C" j3 u% u* F  m% `  ?
      delete []string1;
* J# j3 b* E! n; \4 Y$ Q      return find_face;: B# @9 c: A: k
}! J0 Z' V: v2 ?; P

! H9 o, o1 O0 t1 t; i% B% H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了