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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

9 i9 M) Z' Z, [2 M7,裁剪片体2 E, m9 }: p) M3 W. H
tag_t  *trim_objects;
# Z' d: W& e9 @+ y- _6 ]4 v- x: itrim_objects =new tag_t[count];
4 F8 L% C9 H# L4 {0 H) X/ Gtrim_objects =bound_id;; Z- D% U: r1 L& C' h- w
voidtrim_sheet()
" I/ E" w( R4 Z{
# b2 _: r2 t% v- l
5 D  y! @6 t9 i2 ^, `+ W      UF_MODL_vector_t projection_method ;
& b6 _2 `) S  S* S' w, E/ H3 R) U      projection_method.reverse_vector=0;; A' h) K: R+ O* G8 j  v* J
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;* |7 _. b9 @' p& |
      UF_MODL_vector_defined_by_union_tdir1;) y! _( m: G+ D2 y
      UF_MODL_vector_direction_t dir2;: e. D* ^9 K0 J% Y" i7 e4 P0 S
      dir2.xyz [0]=dir[0];
7 N3 \) M% b8 |      dir2.xyz [1]=dir[1];
0 r. G/ u% m7 z' ~9 U% R, Y8 @, D      dir2.xyz [2]=dir[2];
( v6 E/ d0 e3 @7 D: ~  F      dir1.direction=dir2;4 \8 X/ e$ F% Q& \- V  l

9 j+ z9 l4 z& K1 M5 R      projection_method.defined_by=dir1;
* M0 |/ h  ]4 Y+ V8 I( [
5 V( _% J  _* L      double point_coords[3] ;
2 G+ A& v# ?1 @
1 R9 i5 w  F  C, p+ w+ [% i9 m      point_coords[0]=center[0];
6 T; g; z' C  c' |2 Z      point_coords[1]=center[1];5 L9 }9 v) W7 w8 O, X% s
      point_coords[2]=center[2];# J+ x" S" ?) h8 G0 _) n0 l8 c% o
: W9 P" j3 b% K
      int gap_point_count ;* E  z, k- A( ~) y- z
      double *gap_points;
7 `/ U/ y0 `0 q# r1 r4 O4 K      tag_t feature_obj_eid;
; w9 b! U7 D+ X2 l& Q% p* W      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
0 w# Y5 K* w( p6 U                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
' K& z! i" Z. r* Z
9 x  U, f, D% b/ p- R* F( e}
+ H0 d4 p7 ]8 J- Y8,offset偏移  @" P  o4 j: O, L

  Z4 f  }, \3 C; ^% ?6 a. }' Rchar   distance_str[] = {"10.0"};//偏移的距离5 F& h: y  H# J* n, ?

; \+ `1 d0 ?4 d' o4 r. y3 Mint  num_curves;
" Y+ s) r  n3 A! }tag_t *offset_curves;' L: @' L/ u' I. g
UF_CURVE_offset_distance_data_t  offset_distance;; h& z: W- j1 o- T
offset_distance.distance= distance_str;. Y2 H5 g* B: A$ J
offset_distance.roUGh_type=1;) s# T/ W: B3 h- ~7 A; p
UF_STRING_t   input_string;
1 ]7 Z$ B3 R+ T1 P" ninput_string.id=curve_id;//加入想要偏移的线
' D% S8 f$ P3 ]input_string.num=1; //偏移矢量方向数量
, P% Z" ?+ o: U1 Z, z3 I) sinput_string.string=&string_count;//偏移线的数量1 T! G! t1 `) O% Q0 Y
intstring_dir=UF_MODL_CURVE_START_FROM_END;; w% e9 U( q; _9 X4 e$ O; c
input_string.dir=&string_dir;
' T; `3 F: n$ x1 y: R- M  u6 ~* m$ P$ P+ ~& c' k1 G: M+ A* p
UF_CURVE_offset_data_toffset_data;3 x2 K, q: @+ J7 B. V& k, x1 S3 A

5 v3 W8 c: I) G1 e9 H/ e& Ooffset_data.offset_def.distance_type1= &offset_distance;. m, x: J' x, l% x6 s. z! m
offset_data.input_curves= &input_string;# [! r8 d! }6 c. h0 E7 r0 Q5 m
offset_data.approximation_tolerance= 0.01;1 a* @9 H/ B  i2 X9 p$ X4 a
offset_data.string_tolerance=0.001;# g# E1 c7 }3 _$ I) E
offset_data.offset_def.distance_type1= &offset_distance;5 M0 @& A3 U( k6 W& n* y4 q! r
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
4 m* ~. V9 f& k' p9 _) M$ E8 o, eUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
& h2 A% [' t$ d6 ~. t% ?&num_curves,&offset_curves));
. m+ [! U, i  ~" m4 V9,创建平面' d! b. h$ Z9 C0 G
UF_STRING_tgenerator;
( T* w: K$ G6 ]! O/ o$ ~UF_STRING_p_tge = &generator;
& U3 c* d. t& K' ^9 n0 @" W- Q4 S+ h# x% l4 G
UF_MODL_init_string_list(ge);
5 [7 y1 Z! g. }UF_MODL_create_string_list(1,12,ge);
3 }2 ^4 H+ d6 ~. I3 i8 f
1 A# `( H  O) V+ `  |+ pge->string[0]= 1;) `6 P) P% C% b+ R
ge->dir[0]= 1;//指定线从开始到结束
1 G! N: }* g/ @ge->id[0]= arc_id;//指定边界的id4 W8 B  J! r( M  L' J
doubletol[3];
) o% R- W8 S& |- jtol[0] =.001;//直线公差
/ p& @# z: |/ o* L# f% \( v" ttol[1] = .5* (PI/180);//圆弧公差! h' B, s9 ]# a2 q
tol[2] =.02;//不起作用. u6 J) X* [. P. z% o. g$ Y1 {
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
# j. l5 N7 [1 ^& e10,选择: |+ \4 U$ O) I. e
1),点选择# U: Y' P% c, u6 g' ^( P1 \, C
tag_t point_tag;
+ S( T' M4 s) F' ~double point[3];
1 b5 Y) H; w1 J& c       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;    e4 ^5 c2 C* P; W5 l* J
       intpoint_res;% v  x( n3 c1 X# i+ [5 a4 U- N
* |5 r2 J0 g$ q8 m& R9 h
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
, w7 S, i$ K" spoint,&point_res));
: i- w( w3 z- U, L' c1 A) [if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)% N/ s( U6 D7 n7 f5 I$ z7 y" O% |
{
% C: d; ?7 S& J* F5 W$ k* R }; `% z! v/ ^( C0 p& j0 t- [4 n  m
2),向量选择6 n$ F( h- Y3 x+ S
     int  mode = UF_UI_INFERRED ;
. D0 n6 r9 d5 i+ E$ _# N     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;. W  \) j, T! ?
double vec[3];6 h; R; o- F1 g8 x* [: d
double vec_pnt[3];
# `/ h  ]+ ]2 d. V9 Bint res_vec = 0;3 _1 n. t9 l; t. ^; `. W
     UF_initialize();  
% [' [' D( i9 w1 \     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
2 ?% x" H6 w/ w6 g2 t3 q( J           vec,vec_pnt,&res_vec);
( P0 a6 n' j9 t     if( ifail != 0 || res_vec!= UF_UI_OK )   
+ V9 t  X$ |8 t% A% O     {     
1 z- v5 d5 t  ], H2 j% k           UF_UI_ONT_refresh();9 H9 l. ?" Y9 t# T/ W- h
           printf("No vector selected \n" );
& `3 y! I* D& ], Z     }
: w/ a" n. I' s, X     else' C7 }: l. j7 x
     {
" K" G4 }( u! p0 \4 b( f6 ~           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
8 p9 j1 A! Q2 N- A                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );& G2 {% U- ^3 }/ y" T
}
! C, b  }! }, g9 j# M3),平面选择
9 y9 ~, O1 G( S/ t- R/ f, [tag_t plane_eid=NULL_TAG;$ u  j4 p* d1 ~, u( [; {
double orientation[9] ={0,0,0,0,0,0,0,0,0};: }3 t1 G: \0 A2 H3 ~: b
   double origin[3] = {0,0,0};
7 E$ a- v- _3 l: @; T0 V' ^   double pts[6] = {0,0,0,0,0,0};  Q& W  X5 o! T" A& u# z# p: ?
   int i, error_code = 0;. s8 k& z0 u' H6 L$ ~4 w7 k
   int mode, display, response;
3 y) k& D$ |: f" ^. _   mode = 1;                    $ |) A+ [1 X8 L! o, }$ C
display = 0;      6 Y# Q+ B2 ~. y. N" l
UF_initialize();. M( F) O+ M" t3 @
   error_code = UF_UI_specify_plane(
: V! K# S; _( B- k         "Select Plane", &mode, display,
2 U/ U$ ]0 c+ l/ O# A( O$ w5 ~& k         &response, orientation, origin,&plane_eid);
1 z0 n; g& T1 A* s3 P' c; I+ O' w
' ?% v6 I$ P. A: _   if ( !error_code && response != 1&& response != 2)# I1 X$ z! Y( v
   {
4 O, A% o+ {) I0 D9 \                     for (i=0; i<3; i++)8 z7 D, M0 R7 H, P9 M( G
               pts = origin + orientation;3 R$ E2 n( M- B2 p& F& c
                     for (i=3; i<6; i++)
6 e- }& s( S% p9 {. n9 e0 \8 p: \2 Q! J" ^               pts = origin[i-3] + orientation;
9 Z* q2 F7 T0 p8 o, r         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
. _2 _$ U3 f' Z0 U* v+ p6 G   }
8 M' Y/ e" E4 N5 k+ w9 ?0 j11,临时点,线
4 I$ V- W: Y# h) B6 Jvoid display_temporary_point_line (double point1[3], double point2[3])1 e$ r, o% T) Z* Y' T2 P5 i
{8 V8 l( ?! S9 G2 h: T" x; }9 A
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
& U+ Q3 f; ^% |1 q' g  UF_OBJ_disp_props_TColor;
8 T" M' p8 k; L- z/ K# B5 M/ x  color.layer= 201;- T  ~0 }' L: T' K4 {& u: W, j
  color.color= 186;
4 }" |: y& n" @; n1 R% R) c  z6 p  color.blank_status= UF_OBJ_NOT_BLANKED;
' S, [, Q+ o7 o- {* _& O0 g  color.line_width= UF_OBJ_WIDTH_NORMAL;
& N9 G8 B2 U; t2 ]  color.font=0;
5 [: N# f0 q% b* H. D7 b/ t  color.highlight_status= FALSE;
6 X+ i9 f% x/ O! Q! r% ?4 E  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
( i/ E% d! u- I6 B: `& ^+ x1 D3 L6 Y
: E2 }; @, m: Y/ o2 U4 X8 H" \UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);/ i4 L7 G  [' g0 D: A$ O4 [
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);  N$ L- h" p' V6 j; H' P
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);  M) R1 j) Q: n- N
}& U8 `" g" Y% R
12,WCS与绝对坐标转换+ b' n0 k7 j: u# F% L
                        voidcycs_wcs(double point[])' q, X1 v  K6 R% _, S
{, U' \  k# s" R) I* p& E" P1 F/ ^
      tag_t  wcs_id,matrix_id;' N2 p( Z! g* |: w. R4 j
      double matrix[ 9 ];
" g+ e  a" p0 g/ b) l      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量. R" ^/ m4 x1 M
      double wcs_origin [3],vec[3][3],point_origin[3];7 U% m. f2 U! q1 S  p6 B& V+ l) o/ i
      //1,得到工作坐标系; `" Q! p! x! ]7 Q4 }! U7 W0 Q4 O
      UF_CSYS_ask_wcs(&wcs_id);
! F7 h, W/ m- F9 F9 }8 g0 J4 Y      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
1 }- O! t2 ~% M      UF_CSYS_ask_matrix_values(matrix_id,matrix);. L, D8 H4 \" J7 a& W
9 ?: r# N3 o5 o  Q
      //2,得到工作坐标系轴向量! P) m2 ^' E1 w1 {$ p4 a" K6 V3 @. T
      UF_MTX3_x_vec (matrix,vec[0]);! B1 ?- T" g- ?
      UF_MTX3_y_vec (matrix,vec[1]);5 E, h, R. k( D2 C6 Q
      UF_MTX3_z_vec (matrix,vec[2]);% z0 a5 w! g; a# k3 a5 R* F

) z, \. b$ e2 u3 P) q5 \' T      for(int i=0;i<3;i++)
5 V( Z* R2 d( W+ B# e: w      {     
" @+ P6 [9 e0 J& X* N! l% g            double tol;
+ ]3 N9 H2 O3 k7 C//3,得到点到工作坐标系原点矢量
5 b1 g* O, Z( Z# R            UF_VEC3_unitize(vec,0.000001,&tol,vec);* b* w7 G! c) C3 [3 y
//4,得到点到工作坐标系原点矢量
9 D$ ~" i: k' [/ p5 ?! i# [! W  X3 T            point_origin=point-wcs_origin;
9 s! b) ~4 ]% U7 _0 L      }; q5 A" i- s1 K9 O) |
      for(int j=0;j<3;j++); B& Z% B, }1 K5 p" M" M
      {- L0 L+ B2 [. T! l
            UF_VEC3_dot(point_origin,vec[j],&point[j]);, m* @+ Y$ C' y' O
      }
% j* U3 Q! M- a' W; c}" e6 ^: M# g& b
13,三点求圆心  a7 K# X& n$ G: f+ q/ {
#include<iostream.h> ! U5 M2 N. F( {; A$ g
#include<math.h> ( o. e% G& u5 H5 Y8 {5 g
+ Y& [6 J! ~9 J# Y6 Q2 u
int main()1 w9 o# E; K% [/ k
{/ L# L  h3 d% _* M0 B8 O2 D
      int x1,y1,x3,y3;
& }: V( `) e8 y5 V$ O  j8 f      double a,b,c,d,e,f;2 A) p, [0 S+ P; ?4 k8 ^
      doubler,k1,k2,x,y,x2,y2;
- K6 p7 {, y$ ~, M+ ^      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
; z+ n. ]7 C+ p: `( e. i: a1 w4 n* v      cin>>x1>>y1>>x2>>y2>>x3>>y3;
1 P+ t+ u$ \/ q* \" w      if((y1==y2)&&(y2==y3))* ~, h) A, }, V( ^* {& N
      {8 s& ~: |) r1 U7 G& m/ w" k) P  z2 G( M
            cout<<"三点不构成圆!"<<endl;. U/ x. j+ Z  y. ~2 T: e
            return 0;" k$ P* q) L- ^, c3 o( A  o3 D
      }9 E6 V  }% L2 b
      if((y1!=y2)&&(y2!=y3))
% t7 [$ c% i4 R# l% F9 ^/ c3 U) Z      {; a) P; j4 V2 r* G3 n+ u
            k1=(x2-x1)/(y2-y1);0 t5 _( k. b0 M: I- ^" Y
            k2=(x3-x2)/(y3-y2);+ Q( d' o. k; p2 ]
      }
, k# `- i- e1 U7 v5 h& c2 X+ n* a, v      if(k1==k2). R1 f7 p) t2 B0 H
      {
3 {- L, ?6 _' ], ?6 A. r$ O            cout<<"三点不构成圆!"<<endl;
3 v6 m& N7 N/ N% G% o" v            return 0;
+ F% {/ z& w1 c2 E' I9 t; h      }" [0 @  N% {/ M
      a=2*(x2-x1);/ A# [- r0 R$ M  I2 c
      b=2*(y2-y1);( m2 A$ p; V6 J8 r
      c=x2*x2+y2*y2-x1*x1-y1*y1;
1 M; v8 C8 }7 M/ y6 W      d=2*(x3-x2);; Q2 ?0 h; A4 I" Z, D; O
      e=2*(y3-y2);3 I5 t, f/ I/ V- X4 F5 s
      f=x3*x3+y3*y3-x2*x2-y2*y2;
+ @" Q: i- S- e6 o0 B" }      x=(b*f-e*c)/(b*d-e*a);& M: q& @" h- }9 D9 l
      y=(d*c-a*f)/(b*d-e*a);
$ K( s& ]1 k# |' n- a      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
$ I/ [) n- ~4 y3 r      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
; J1 ~3 }9 E6 [' z7 b) u0 j      cout<<"半径为"<<r<<endl;7 Q. ?0 k" l/ d
      return 0;2 \6 z3 [4 e$ d0 q
}/ A5 Y, `" X& m5 W+ k4 l  z, l
14,查找圆心* R8 x+ ]' I- Q& [) ?
            UF_EVAL_p_tevaluator ;
2 P- F+ `! r% Y* h            UF_EVAL_arc_t arc;3 A+ r) J' N6 X) v
            UF_EVAL_initialize(obj_tag,&evaluator);: k3 B# j2 o. V7 _! T2 r
            UF_EVAL_ask_arc(evaluator,&arc);
  D5 h- Q1 _" o$ u            UF_VEC3_copy(arc.center,point);           8 ]: C" E' F' v. G' a* F
15, message_box7 p7 h/ h1 b4 T& C/ S4 F, t- n. K3 |
void message_box(int *res_mes)
$ u! ~5 C6 g; j7 ]# h, C{# C# @4 z5 ]/ F" F& g
      UF_UI_message_buttons_sbuttons;
+ r) I9 o3 q/ f1 g' n7 S      buttons.button1=TRUE;' l# ^8 b( Z% ?4 s4 Z5 X  A
      buttons.button2=FALSE;: R$ a+ `9 U* O& Q; G: {5 i
      buttons.button3=TRUE;
1 h' G+ b* ]8 n0 X' J: f; Q# J9 p  E: T+ X1 D9 z
      buttons.label1="OK";
: r5 G  o$ \! X+ s% K: j      buttons.label3="CANEL";* f1 G2 e2 t7 Q: W  |, S- N* |
' `4 c, R7 y9 ~/ |" I% \6 E
      buttons.response1=UF_UI_OK;* p2 _9 N  y* L: U+ C4 z+ S
      buttons.response3=UF_UI_CANCEL;
: \) |! h; P& a- R
6 Y% K* H$ L* l/ J4 A      char *string_msg;
7 W; J+ `. o" l+ Y! z; R      char*material_msg="ALL selcted objects will be removed";
0 U- L9 ]" p  C8 S8 H3 A; a' j      string_msg =material_msg;
# M  e" n* {7 J% c# |; u5 C8 `5 b" [/ [8 m% C, ^' N
      UF_CALL(UF_UI_message_dialog("",
2 U  L! E) v* Y5 h- g1 ?            UF_UI_MESSAGE_WARNING,
( q/ H$ [2 N: ]4 s0 j1 }          &material_msg,
6 X5 C0 H8 X+ u% O. e            1,
1 w2 @, b$ r2 c1 I6 q4 l! K            TRUE,4 e$ l# b" X  B* \
            &buttons,, Z# j0 {/ \& [( }+ s. j
             res_mes ));4 l- k' s, G7 V+ q0 }
}$ Z' L, l' R7 c6 J$ y
16,选择过滤+ P* h6 K4 f& b9 c
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
1 ?) e$ \1 C* C1 M# j' z- ?{: G5 z; T+ F, J1 b' T) a
      int nums = 1;2 V# |/ e) R1 e1 ~( x8 [* |
      UF_UI_mask_t masks[] ={0 c# g- a9 B( p
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
$ V8 J  `  K' k! B
1 `" m0 d* ?4 M0 j7 p" v            if(
( h, y6 m( g# Z! U/ S& [8 \8 {  B  w                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0). q2 a+ D: ]4 w
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
' b6 E  z3 M' Q/ e8 y6 V                  )  I5 h! U5 o# s4 R7 g' e! z8 c
            {
; c! ^: m3 f* g; @5 z; O3 ^3 L                  return(UF_UI_SEL_SUCCESS);& r5 }1 z, f5 b/ C2 F5 H
            }
5 F5 T7 s( [- d7 U) `3 v            else
. A$ t8 }4 r. u$ F. ]3 v            {     6 A0 K3 _; J9 J
                  return(UF_UI_SEL_FAILURE);
/ |5 P/ v6 a& S            }
6 t% B. }  i( u7 n# F}; m( u7 k2 B3 z$ E
int find_tag(. b3 Y$ i6 r# b8 `3 k$ L2 g: v. a- @
                    void * client_data,//用以传输过滤资料
" C! o) K$ h. n7 _% F: V! E& P                   tag_t object//现在鼠标所选物体ID9 J/ {. G! M' s/ W% R9 f, A9 t
                   )2 R' r1 ^' K4 P
{' _- U1 K7 B! t: z5 F
      user_data *obj;
% V" y2 A. F% c      obj=(user_data*)client_data;
2 V  k9 W1 [, s7 c! n: h      int find_face=true;//接受% ]5 I: M! r6 I' R5 U0 `1 E1 o
      char *string1;) H* x% \+ U0 n$ s" `6 O: T- r
      string1=newchar[133];
- {# S$ V8 h5 v5 F6 S/ C6 L# S7 j      string1=UF_TAG_ask_handle_of_tag(object);
0 K3 e9 F$ K5 R6 F2 Y      for(int i=0;i<过滤的数目;i++)
3 |: t! Z* W+ E4 c      {
- z, |# i( {4 D* u( |' Z6 W- z4 F& C0 ^( f. }# K
            char *string2;
; Z+ \, e4 o/ v" ?1 a3 C6 a3 A$ K1 H            string2=newchar[133];" P# e( M5 ^" B( X6 q3 _* F
            string2=UF_TAG_ask_handle_of_tag(物体ID);
, B# H" y6 n- Y( q1 s, G            if(strcmp(string1,string2)==0)$ P, N. `" K( s' G7 b1 Q
            {( D( k) x7 b3 K, D
                  find_face=FALSE;//不接受0 c& B& V2 H% Q( {* R9 U) l

3 K# @4 m5 X" H            }( H5 N1 S, |% E! b1 a  B) [6 H
            delete []string2;
# t, T* ]# s; `9 B8 y      }% @) J# D9 H8 Z/ v0 O9 m
      delete []string1;
# g- Z- K' v8 u! c      return find_face;- _" w; y& h0 T$ O" x
}/ z1 i  q' a! J- O9 B9 ~

4 q0 s0 i, i# e" B; F- p! K1 e
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了