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

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

  [复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2015-3-2 10:31:39 | 显示全部楼层 |阅读模式

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

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

x

6 k! s6 ?4 |1 ^7,裁剪片体
! P. W- Z# l" v0 Mtag_t  *trim_objects;- J$ V/ U3 x8 k; C, l' [
trim_objects =new tag_t[count];
. w. ?1 i$ [4 p( Wtrim_objects =bound_id;9 Q& B9 @6 k9 u. U6 K5 J3 Z' u( ^
voidtrim_sheet()
0 Q- j2 j' e7 O# Y" D! {& M9 x{+ u+ k, T0 w+ @8 r8 I# W

, ]. w& v. P- D4 \% g      UF_MODL_vector_t projection_method ;
# e. n! Y/ \$ k: z$ r      projection_method.reverse_vector=0;
9 z3 T& O- b8 ^      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
2 \7 d; E6 x0 K, a      UF_MODL_vector_defined_by_union_tdir1;3 W! s' o0 @. ]9 U! c5 A4 h8 f
      UF_MODL_vector_direction_t dir2;* w+ R5 L/ S2 t' T2 n. j
      dir2.xyz [0]=dir[0];
- |7 E2 W7 \5 H) J2 V      dir2.xyz [1]=dir[1];
* H& x' w. `; v2 e& }$ z      dir2.xyz [2]=dir[2];- D# E7 Q  x- K6 p  L. d
      dir1.direction=dir2;# s- n9 K/ I7 X
$ w5 C, @  B% D5 |& E# s$ w4 D' h
      projection_method.defined_by=dir1;
& r0 T4 m5 i- ?1 O6 m  T( X+ t! j/ ^
; N) {7 s; P7 y+ l      double point_coords[3] ;
* @, z* B" N. ]4 @: V) H4 a; z1 ]) {5 j5 k
      point_coords[0]=center[0];) D3 m9 P) m% K( S/ {9 {1 Z' o3 F
      point_coords[1]=center[1];
' L" S9 M& ?& Z: y9 P! r      point_coords[2]=center[2];; e( Q  I, S3 T9 b

: E$ U3 p! K+ W# @! t! v& W      int gap_point_count ;1 b$ N6 R+ A9 Y, A6 E6 M' |
      double *gap_points;
/ q) K) |9 E8 w" Y$ R6 {      tag_t feature_obj_eid;
. l+ h- S1 }9 r2 d1 ^& j      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
* Z# x! g1 ]& n- C; t/ K% D                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);  [& T+ V# J8 @7 i( {% g+ M9 V# i

* `; n! l& ~1 Q6 Q}0 k: R. I9 O0 @/ R9 n) x
8,offset偏移
+ d/ V& o& k( v7 |" z" i1 t4 g
& _- G) z* d2 p, a- |- Ochar   distance_str[] = {"10.0"};//偏移的距离
! T4 k% a# l, e1 q3 }; ~" i( `2 h- D, r7 i  v' n
int  num_curves;
4 V$ [7 e0 I8 Stag_t *offset_curves;- p- R4 M% d7 u0 Y9 s9 m5 M
UF_CURVE_offset_distance_data_t  offset_distance;
: Q) }$ ?& L# s% N2 koffset_distance.distance= distance_str;
( j& G/ C9 x% j9 ^+ foffset_distance.roUGh_type=1;
; y: u% H3 i  {$ t! rUF_STRING_t   input_string;
1 ?2 p9 Z. @0 F$ j% _input_string.id=curve_id;//加入想要偏移的线0 B: ^- M2 }! X
input_string.num=1; //偏移矢量方向数量& R% J6 j; [/ Y4 b
input_string.string=&string_count;//偏移线的数量
/ |9 i. T1 _/ H9 Vintstring_dir=UF_MODL_CURVE_START_FROM_END;( U8 h9 y5 @( Y' G8 |9 m
input_string.dir=&string_dir;8 d" F7 L0 n5 [- o/ ^  [, c

0 e/ O; o" V7 J' w- MUF_CURVE_offset_data_toffset_data;
9 j( p  {6 W: Y& W2 X
$ K& _  s7 _8 c: @2 U( |offset_data.offset_def.distance_type1= &offset_distance;7 v" g- z5 B/ s+ Q. s
offset_data.input_curves= &input_string;" B+ D) u- j! B& l
offset_data.approximation_tolerance= 0.01;+ Y+ M* B$ m, Q/ I* ~- L
offset_data.string_tolerance=0.001;, F3 b3 N7 O( `$ E4 k/ B$ v: o. E0 |; ]
offset_data.offset_def.distance_type1= &offset_distance;% [4 W4 ^) _5 |& |6 }0 C, w
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
! u4 q5 J" T4 V8 e! G( DUF_CALL(UF_CURVE_create_offset_curve(&offset_data,, d6 X' o6 N: a8 R6 M4 x
&num_curves,&offset_curves));
; l- }  U' B# `4 A1 A9,创建平面
# f# t  k, S+ F$ v- W* y8 [UF_STRING_tgenerator;7 M& Y8 y+ o$ |' L; r" w
UF_STRING_p_tge = &generator;, }# S+ V1 V3 i9 u
) j2 ?6 ]  M) B1 V/ @/ t7 \
UF_MODL_init_string_list(ge);
% |8 _. H" s8 _0 i& ]$ r! V/ wUF_MODL_create_string_list(1,12,ge);
, w, r$ s/ @8 d( R, a+ A! ?  B) c3 m" S. `: o
ge->string[0]= 1;
; U9 R: Z- f% C1 _+ i9 cge->dir[0]= 1;//指定线从开始到结束% v# [* U: p# ^5 @, B# ?; c. J5 }
ge->id[0]= arc_id;//指定边界的id
: r7 T' v) O* W, q4 @) Zdoubletol[3];/ L/ Z) C' Y7 {5 ]
tol[0] =.001;//直线公差1 t) ?. p! E" e6 q
tol[1] = .5* (PI/180);//圆弧公差: Q3 G/ ]' d9 i2 }
tol[2] =.02;//不起作用4 b+ b' u7 y2 s0 `7 H
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));0 O7 L0 e, P! o7 Y# {& E
10,选择: X5 ]! s2 ~  m/ p' I
1),点选择# ^7 \# O" r% x( W( }  [
tag_t point_tag;
3 a5 U" Z- h  h- o  n$ Wdouble point[3];1 _  H  d! {" s9 S: @
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  + L6 a/ V7 }: J) N* t: q! q
       intpoint_res;
+ T: v5 {. L% r* G4 B4 h! |8 Y% R+ ^, R( f( x/ _  W. A' g
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
2 S$ {" d0 S8 R% L8 q/ a' mpoint,&point_res));
- O% r- z- |" i% Xif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)3 F- {" z  D4 Q) y( b! |. U
{5 g: Y% @1 m' O& z1 B% D
}
1 a. s3 S2 I* j0 {. f# s2),向量选择2 G) V" h4 d1 N3 r' c7 S+ P
     int  mode = UF_UI_INFERRED ;8 P$ m4 k; ^' q/ b( [  O
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
3 g; D, p8 z% k& cdouble vec[3];3 _" X6 X6 y( a" M8 j6 O2 t
double vec_pnt[3];6 I, Z' E; p4 y( t2 @6 V
int res_vec = 0;' n% H# h, p  N$ S/ U" V
     UF_initialize();  , p) I2 D) m! r+ ]4 f+ ?
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
# o5 I* x' S7 t  q( G' A           vec,vec_pnt,&res_vec);
5 |9 n; ]1 N7 B  s* r6 Q$ w+ V2 E: h     if( ifail != 0 || res_vec!= UF_UI_OK )   
% Z1 S! M# `: D+ }8 m6 a     {     
7 w$ u( Q9 u! e  F! M           UF_UI_ONT_refresh();0 G! L5 R- F! r2 \2 }
           printf("No vector selected \n" );
- L3 i: q  e" O6 r# W) U     }3 u9 c& N8 o3 h* [0 j
     else/ k6 h2 m, \) a/ D- i
     {
% x. M  p. n" |) ~           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",0 F# g/ Y1 k! Y+ S( E
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
! ?& _. v& @3 [- J7 |. o' P; u) V}
9 g5 s& ?% g" }. E: z3),平面选择+ Z1 R) [" W4 S1 U
tag_t plane_eid=NULL_TAG;9 F9 r7 |* X$ j4 T
double orientation[9] ={0,0,0,0,0,0,0,0,0};
/ p3 J7 u6 E+ I% U) P, A   double origin[3] = {0,0,0};
4 H/ w& j/ `0 b8 E   double pts[6] = {0,0,0,0,0,0};
; f0 L+ H' K- y2 V; P/ c0 V   int i, error_code = 0;7 s$ F; e+ f, F
   int mode, display, response;2 k$ s( N" G8 z9 \+ _- {0 S3 g, i7 C  J
   mode = 1;                    
7 w, g, P9 i7 l4 T0 gdisplay = 0;      
; \' k2 t' j# BUF_initialize();
  y6 M) U) k: P6 @2 d* J+ J   error_code = UF_UI_specify_plane(  J" y6 r) m' @: [
         "Select Plane", &mode, display,' ~* j! D# }0 Q) d( Q1 b& V0 U
         &response, orientation, origin,&plane_eid);* e5 O8 u% J5 n
$ H. L# O( V: M4 n/ ?) I
   if ( !error_code && response != 1&& response != 2)
( [! K5 w+ ~; x$ T/ ~8 p7 b1 o; o   {
" F1 y+ w# _0 S                     for (i=0; i<3; i++)
7 S5 \& o% D( j- |- l& F               pts = origin + orientation;6 w7 l+ u4 m& e& H
                     for (i=3; i<6; i++)
* B/ F$ g3 }7 j7 @               pts = origin[i-3] + orientation;: W% B& O, O7 d5 E3 ?
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
7 w2 ~, K& `& S% X( U3 r   }2 |- ~3 B) k+ A# ?4 L
11,临时点,线- R- {" o+ N) z9 t& e2 t
void display_temporary_point_line (double point1[3], double point2[3])
, {5 O/ d; t8 f* Y, b8 Z{* F4 y( e$ n# A% R, T6 i0 V
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;0 @0 R) H1 F7 l& `+ j+ v* v" f
  UF_OBJ_disp_props_TColor;
9 i7 j9 m" _/ w/ d' h* _! y! [  color.layer= 201;1 g+ X0 a# s( h
  color.color= 186;* `- l1 f1 R0 m# m0 ?+ @5 N
  color.blank_status= UF_OBJ_NOT_BLANKED;6 f* D; b7 h; F2 u
  color.line_width= UF_OBJ_WIDTH_NORMAL;* {  X& E: S$ G  X
  color.font=0;" ^' q5 H+ V% x: ]7 s- X( N; {
  color.highlight_status= FALSE;% g- ]- j# [2 N/ t; k. D
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
0 X9 L9 @* }+ S( a  `6 V' }
  E8 P) [7 v$ H' b6 aUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);- w* i4 z3 n" R' t% R0 H" |
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
1 k+ B2 u% A% V+ a8 z* OUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);( L( }# p1 ?0 N- \* z, {; I
}
) a8 E) T+ l1 O: L( ]12,WCS与绝对坐标转换5 a2 `+ d$ `' i5 U% a9 W
                        voidcycs_wcs(double point[])& J6 n2 k1 u; d) N" U3 C! o0 F
{3 D/ t- L, H* q& t0 l
      tag_t  wcs_id,matrix_id;/ C, E% G+ B+ F; K1 ~
      double matrix[ 9 ];( k0 d/ S) T! U# w% x  X; e
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
$ e6 w7 L: T$ G; O% m      double wcs_origin [3],vec[3][3],point_origin[3];6 p+ ~# z. k- I! a) o
      //1,得到工作坐标系
" j9 a( w; [; t  H* f, y& F8 c$ L      UF_CSYS_ask_wcs(&wcs_id);  a6 O  M# I% a. p/ y+ {
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
9 f) |8 i! G; w& ^& Q4 e0 Y2 W' x# H' N      UF_CSYS_ask_matrix_values(matrix_id,matrix);
4 M' g9 R* w, W1 X5 C) N: F8 W+ l3 l
      //2,得到工作坐标系轴向量* s) C  T6 q* Y- v2 I
      UF_MTX3_x_vec (matrix,vec[0]);
3 h% \6 S  r: w8 }2 O* I! h& ~; t      UF_MTX3_y_vec (matrix,vec[1]);
9 K" m( k3 @& J. z0 z4 S      UF_MTX3_z_vec (matrix,vec[2]);
9 Q5 j6 U& r+ S: u9 O9 F
9 n3 I9 b4 w6 L# c! m' ~4 v' k      for(int i=0;i<3;i++)
7 S/ L7 {$ _7 w) a$ n7 f      {     
, F& H; O/ I8 b* o  {7 X6 z            double tol;
% N. N. e9 i; `* `//3,得到点到工作坐标系原点矢量& E8 S8 c) y1 S6 I- c
            UF_VEC3_unitize(vec,0.000001,&tol,vec);
% Z5 \& B3 n* d# ]7 T$ W//4,得到点到工作坐标系原点矢量
' `9 b5 n' Z- Q$ h+ j            point_origin=point-wcs_origin;
* _& z: p& S6 K' ~; O+ b      }4 W7 F1 Z: h( |- r. m
      for(int j=0;j<3;j++)* T( d+ y7 g, S% `
      {1 b  b" B% i0 l, j8 C/ o" e3 A4 r
            UF_VEC3_dot(point_origin,vec[j],&point[j]);: O; u6 h  ~% V- X& e+ F0 X) r0 A
      }
1 O1 \2 g# `9 p* ~  O% a}: ~* z; r; h) B& w. K- o1 j. j' T0 p% R
13,三点求圆心9 o' m* a9 a" `/ ]& t! t  `
#include<iostream.h> # k4 a* K, y% Q- `4 w; D9 `# e
#include<math.h> " W9 i0 O0 {+ D1 s) A. U) `* R
+ z, z! z. r0 n6 [( X" R- f9 |
int main()
5 R  i" [& y0 V: _0 F{
: D% i5 @9 d) i  M      int x1,y1,x3,y3;9 z* S2 i4 L7 M  L7 z* ]
      double a,b,c,d,e,f;6 u$ n3 t5 m: n9 V7 b
      doubler,k1,k2,x,y,x2,y2;0 o) u1 U! R. v$ }8 i
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
5 [) U( l" _$ {" V1 K# ~; |5 z      cin>>x1>>y1>>x2>>y2>>x3>>y3;
) u( a: w2 w3 U) t9 l. O) y4 n- d      if((y1==y2)&&(y2==y3))
3 @& U3 Y9 B" G* \- N      {
; u! d3 }* _  N1 Y$ c$ w            cout<<"三点不构成圆!"<<endl;
3 a4 E+ }( D. N& v9 Q2 A: ?            return 0;+ K0 q" P  d* l/ \. g& P
      }
3 z$ j0 o8 [- [3 u      if((y1!=y2)&&(y2!=y3))5 `7 V, l* o+ A
      {4 k, T& F/ x  A# r
            k1=(x2-x1)/(y2-y1);' C0 F1 }+ ?9 g; V/ U/ T0 {
            k2=(x3-x2)/(y3-y2);
& H9 v  ^  d6 j, p8 F8 @, a      }$ X4 u8 }6 R# s
      if(k1==k2)- t4 r# |9 q  S& Q1 n' R
      {
  C8 D8 H8 r, a0 L- I# [3 [            cout<<"三点不构成圆!"<<endl;1 n# b* g% v; b8 |6 i: ~
            return 0;
* N" `" F4 b& w% d0 \! n) J      }6 C! H) R- ?; K; X8 r5 x
      a=2*(x2-x1);
2 L6 C9 |# p2 V5 k: C      b=2*(y2-y1);$ s* l$ K2 m( {! E
      c=x2*x2+y2*y2-x1*x1-y1*y1;5 [/ @! R+ W! Q5 o& @
      d=2*(x3-x2);" w5 t& y5 j- P' u8 R
      e=2*(y3-y2);
$ G& Y8 R& a+ I  H2 ]( O      f=x3*x3+y3*y3-x2*x2-y2*y2;5 I) L) M( H6 ]1 E5 l' d
      x=(b*f-e*c)/(b*d-e*a);
/ h/ ?8 [" G6 }* ^; X6 B      y=(d*c-a*f)/(b*d-e*a);
- h! O: D; k6 ?; q      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
$ V  [# b* ]" t# K6 q7 `) e9 Y      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));! k6 t% ^& \  U0 W6 o2 _$ ~# ^
      cout<<"半径为"<<r<<endl;
/ }$ Q% A; x; F. T" ~; U# G      return 0;
. e; I) U2 L' V7 \. v: ^/ \}
/ B4 S6 U; ], a) @( _( @14,查找圆心
) a3 E' @0 K6 L! }6 ~            UF_EVAL_p_tevaluator ;
5 B) c" }$ m% a5 d5 w8 C( c: Q            UF_EVAL_arc_t arc;6 I  b0 p/ j' m
            UF_EVAL_initialize(obj_tag,&evaluator);
# H2 R- E% d5 B            UF_EVAL_ask_arc(evaluator,&arc);0 C5 b9 P7 U' j5 {% `
            UF_VEC3_copy(arc.center,point);           5 i4 S. d, e/ x: K
15, message_box' E5 B$ {/ F, U& C1 l+ D
void message_box(int *res_mes)* C1 k! U& w; [, F" q8 q9 @! Q
{! S. a$ t  a7 ~5 P6 T* t
      UF_UI_message_buttons_sbuttons;9 C: g  h4 T3 A, R+ a& z
      buttons.button1=TRUE;) I! m3 \7 R# K6 n3 t4 N2 h
      buttons.button2=FALSE;0 H5 |6 {1 x; ]8 o- W4 b+ {$ O
      buttons.button3=TRUE;4 @2 B6 g0 A# H* a
8 d( q- k0 _+ K
      buttons.label1="OK";
, o8 G* a7 K2 K( \. O; c" h      buttons.label3="CANEL";& ]: T! W9 r, a/ R) P) E% c  c

1 Y* J3 b7 \+ o( M      buttons.response1=UF_UI_OK;4 P) e. E' _# {) M/ C. G
      buttons.response3=UF_UI_CANCEL;7 K- |# W3 q* k' Z3 ^' A3 K9 i
* a$ @' y3 Y) M" k# k! ]
      char *string_msg;
2 r* w2 R/ d0 N! u+ ~; P" u" P- n      char*material_msg="ALL selcted objects will be removed";5 ~5 [' `% _" ^( B, V3 s
      string_msg =material_msg;5 {' N! K1 R8 V$ f1 `
0 ^/ m/ W* C/ v2 [% Y
      UF_CALL(UF_UI_message_dialog("",
7 |5 s  a* |2 a0 b            UF_UI_MESSAGE_WARNING,
1 n+ W+ x9 m) w$ o$ w          &material_msg,7 L6 u: a- m4 j% J
            1,/ Y( }/ ~- y) w5 t0 i
            TRUE,( C: v$ |$ o! J
            &buttons,/ [) }5 D" Z/ z4 }; N
             res_mes ));. Q( r+ o! J( t6 {' L2 d" h$ C# X! J
}
' Y% R% A7 S: W16,选择过滤" p5 S5 U: X' ?
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
& d1 C! [7 _0 V5 R1 {. i{
6 W$ {3 Y. E" @6 G- W/ N9 I      int nums = 1;0 G- Q( a, x: w; g# h
      UF_UI_mask_t masks[] ={& J) k( ^; a/ L" J) |
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
& ^; N) p# Q) d3 N6 L: a0 b+ Q
            if(+ G( h  f# K' ~. b% I1 M9 c
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)7 a3 z+ I7 i  L4 s( J! l
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)* f0 b. q2 J+ R. l: M% r. l8 q
                  )
3 l$ I' R7 Y# R( r; ?; d) t            {: l# J6 c; }9 l5 J7 }8 S# C# y
                  return(UF_UI_SEL_SUCCESS);' I+ [! T1 \( l! H8 N! j' ^
            }; A0 i1 u/ |% K9 s5 M
            else% @) I$ ]) o' _0 n" r6 k) N
            {     . l7 U# n; H; |; p
                  return(UF_UI_SEL_FAILURE);
8 m  Y) f" ?+ ^- `& c" h; Z. L9 @            }& e" v3 K& B5 b
}
+ t; e; [, |5 p9 A) z8 nint find_tag(. Z: X& T. L6 {% p! @
                    void * client_data,//用以传输过滤资料
  C0 r7 f- _& n0 U' X                   tag_t object//现在鼠标所选物体ID& D7 v/ ^0 `# D" W1 x0 m0 ^3 _
                   )
) Q7 S, w  t3 q: _; X4 L& \{" Y4 }+ u- U3 |  ]0 V
      user_data *obj;
8 c  F' Y8 _$ j' f* Z: J2 `      obj=(user_data*)client_data;8 i( v# V% K4 F% G. F$ e7 M
      int find_face=true;//接受% B% o" Z/ Y3 H9 Z( l9 C
      char *string1;) B2 p$ J4 M1 X
      string1=newchar[133];
: N! H5 E& k6 w7 N2 |      string1=UF_TAG_ask_handle_of_tag(object);: A; p" w3 K8 s( ^! o7 m) i# q
      for(int i=0;i<过滤的数目;i++)3 W8 [/ }, S2 I2 w/ K0 c6 W2 n! C
      {
+ v. F8 \5 `7 T* e( X! i
& i( A% a: R  b- `8 \' W& S            char *string2;$ l  ]" ?. R, q
            string2=newchar[133];
0 v9 I* @, [0 V# L* q            string2=UF_TAG_ask_handle_of_tag(物体ID);
3 [+ F; u+ G3 D$ l            if(strcmp(string1,string2)==0)
7 Y$ L9 ?: t) E            {
* `% W: B+ w! R/ T+ d* N                  find_face=FALSE;//不接受
( Y, o) _/ d% X  q" f$ t: \7 A. W5 R( h2 H
            }2 M0 U9 E+ b! C" ^% T
            delete []string2;
- c8 }3 u3 z, ~      }
+ Y1 G, s1 h" f4 f      delete []string1;
$ k( }, I/ B% m! n# U8 t      return find_face;
7 T' k& B$ |% Q) ~- N5 c}
; h7 H# U, u+ N: Q/ n* l$ P
6 H$ J: {4 i5 u0 x: e+ v
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

0

主题

2

回帖

10

积分

新手上路

积分
10
发表于 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.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了