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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
3 v. U1 Z" ^6 J7 F2 c1 c9 h# P
7,裁剪片体. M# ?- z8 M) k
tag_t  *trim_objects;
* g# h& s  E2 N, X3 ?. D- g3 q* Ptrim_objects =new tag_t[count];3 M( h' ]( O. A# \2 p8 l$ d& R2 P
trim_objects =bound_id;7 {/ u9 D: ^! J. M1 [4 u+ F0 r
voidtrim_sheet()0 C; m& e( K7 n  G/ J# ]8 f2 I
{2 T& N1 ^% \: i* n- w
& I2 d7 `; ~+ t; U# M' g
      UF_MODL_vector_t projection_method ;
0 B8 ^# O. m0 r) x. J8 o9 a      projection_method.reverse_vector=0;
1 V: r7 u; |* r, s      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
: w0 }- |6 c" v6 y      UF_MODL_vector_defined_by_union_tdir1;- {0 q; z" r" `: V6 r! J/ s
      UF_MODL_vector_direction_t dir2;  \& r8 e( Z' t
      dir2.xyz [0]=dir[0];. l1 S/ L+ e; c/ P$ v4 Q
      dir2.xyz [1]=dir[1];
0 P9 A* R/ T( }, V' g+ m9 Z3 ]      dir2.xyz [2]=dir[2];
$ V9 L& J" D9 {+ [      dir1.direction=dir2;% U4 e; y" U6 w2 s; ]: E

9 o- h% v" p8 i: [; R4 B9 s+ P4 X      projection_method.defined_by=dir1;
" m- p! c) k6 F: {4 y- {& x
) y& J" P( E2 K" P9 i6 g& u  _      double point_coords[3] ;
" J% s: X6 ~* f9 M+ Y% @1 z' ]. r+ G" r. }& f3 B
      point_coords[0]=center[0];% w7 M# [8 S) s6 d
      point_coords[1]=center[1];
0 ?; x* V% e  ]# F3 m; G      point_coords[2]=center[2];
* n5 c+ D  t7 e5 [1 ]: c- @+ Y9 P/ x- h, x
      int gap_point_count ;
# `0 W/ l% ~* t3 N. W      double *gap_points;
1 Y. w, D  E* @) ]3 w- w      tag_t feature_obj_eid;
3 v1 R- _4 f0 ^      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,2 f+ Y3 J+ e2 ]5 e- H& r6 J  ?
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
( W0 z. n( l6 \+ p3 M/ c: }  s" A' g2 m) i
}
/ c5 [$ ^- H) d7 c8,offset偏移& U* W8 R5 s+ z9 O1 h( t, D
' C; c' K- ~9 v) a9 {! E
char   distance_str[] = {"10.0"};//偏移的距离  O8 m# W4 D" \

, `) Z2 q) H: ~' X3 p; xint  num_curves;, x' o! D1 l6 ~
tag_t *offset_curves;
9 n, W) Z# K# B" b- x; `UF_CURVE_offset_distance_data_t  offset_distance;! N' r& [- ~7 Z" ~
offset_distance.distance= distance_str;
3 x. w) x) n6 T# [6 g& a2 Yoffset_distance.roUGh_type=1;) k; u; c  |- b! o. Q6 `
UF_STRING_t   input_string;/ d, o" x6 W9 p2 {: k
input_string.id=curve_id;//加入想要偏移的线
* W! A& _7 Q& d8 kinput_string.num=1; //偏移矢量方向数量0 c( |" ?: T+ I9 F! K5 c5 t
input_string.string=&string_count;//偏移线的数量
8 a1 f+ V2 @: V# r$ d+ Dintstring_dir=UF_MODL_CURVE_START_FROM_END;- I5 N# E# F* A, Y" l; j) _" D
input_string.dir=&string_dir;5 J3 `/ p( c" ?$ l6 F+ s; A0 P
* ~% \! ?& Y2 v1 J. P% X' n6 o) ?
UF_CURVE_offset_data_toffset_data;6 S. e) f; ~! H! W& ~/ x
5 `3 J- W2 y4 q6 ?- i+ I$ k3 e
offset_data.offset_def.distance_type1= &offset_distance;) L$ p' Y# i& N
offset_data.input_curves= &input_string;+ J3 h/ N/ N) z4 f. N
offset_data.approximation_tolerance= 0.01;
5 u5 ~7 b; R5 z9 R, }offset_data.string_tolerance=0.001;7 Q8 G/ Z& J) T1 i' d4 k
offset_data.offset_def.distance_type1= &offset_distance;# ~/ h* K; A0 U3 n4 N2 ]% U
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;# ~- ^6 [- Y' l" Z" k2 B+ e
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,' c9 i8 b& f2 R, V9 W7 Z+ D: i* }
&num_curves,&offset_curves));
. c, D* _$ j. W2 V; I9,创建平面
1 v- G) w! b  w" I$ O3 t5 R( KUF_STRING_tgenerator;3 B4 E" C9 X) G) h0 o- r7 \
UF_STRING_p_tge = &generator;9 y1 h/ K% p9 j0 f. p

7 F% {1 k' _; B2 V0 G' iUF_MODL_init_string_list(ge);
% D- r! u! Y4 AUF_MODL_create_string_list(1,12,ge);
; @. h9 E/ f) P2 ?# z
8 E5 N! [: @8 V' J3 Y: d9 p3 `; @ge->string[0]= 1;7 h5 y( f# M0 z: l  ~
ge->dir[0]= 1;//指定线从开始到结束
8 ^! I5 l8 B. c- |ge->id[0]= arc_id;//指定边界的id
/ [1 \# g  A* `doubletol[3];
# c& }$ X4 I+ F( P; c  ^tol[0] =.001;//直线公差, p; `6 h' A* i  [% A
tol[1] = .5* (PI/180);//圆弧公差
% u2 s; w5 I! y9 I! R! itol[2] =.02;//不起作用8 _- ~8 I) n0 W" }$ S; l# ]
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
. N8 n5 T# }" o4 D; p; A$ E8 a10,选择3 G7 O1 E# C! G) @; }# Z& w
1),点选择
! g4 u0 H+ V! O1 Dtag_t point_tag;
& ]4 g8 P) S, W2 C6 ?double point[3];! l7 ^3 x) Y5 _
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  8 k# E6 a; I4 b2 G; A
       intpoint_res;
& D9 f/ w' T0 t& F3 i7 {
8 T1 |6 R) O; m+ K1 I3 l% T+ x5 dUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
- C" D+ V2 p: O$ Z1 j  bpoint,&point_res));3 ]$ c& s  F0 v# I2 p
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
# _& x' B$ B2 Y* N" R: o4 S7 _{' J. H/ k' G7 R( j, d- a: C
}5 e, R( j; J3 @5 ?& R6 v  C- Z
2),向量选择
' i* y2 y4 N9 P     int  mode = UF_UI_INFERRED ;
$ w9 }7 s# [* G* ~& ]  f0 G0 l% {     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;% G4 C2 B( w7 G
double vec[3];
! U  ]$ W9 O9 H, N2 c  }double vec_pnt[3];
! b/ ^$ |1 V+ _# gint res_vec = 0;! }' Y6 |) ^- ?  B+ n
     UF_initialize();  ) Q; d4 M5 J! u3 R6 S7 H
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,# _! f$ M' E6 U6 y* E) E
           vec,vec_pnt,&res_vec);
/ ~6 ^& I' x& f% C) s- b  H     if( ifail != 0 || res_vec!= UF_UI_OK )   
' U; T  F8 `) H2 i+ h) }     {     
+ O' x! L' y3 U2 F9 P           UF_UI_ONT_refresh();8 `$ Y, U0 j& d, [. j9 P. _
           printf("No vector selected \n" );
, g! y: z: W5 Z2 r1 ~/ n  P     }
3 e1 v; t9 u+ I9 g! |* N  ?; f     else4 Y# c% U2 W7 y9 [0 H( ~9 k
     {& E: Z$ z* P, c' L
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",' }2 Q" q- V  D# h
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
+ ?- R7 A9 Z4 f$ p* Y2 l- R( w6 B}* g  J' Y% l  @
3),平面选择3 k. E# d/ Y) q" G# E
tag_t plane_eid=NULL_TAG;+ V: H% U; e  }7 E7 b
double orientation[9] ={0,0,0,0,0,0,0,0,0};
, P. L9 z* e0 P7 D% q( Z   double origin[3] = {0,0,0};
9 {' [$ y# q- @/ c% m+ K4 Z/ h' T   double pts[6] = {0,0,0,0,0,0};7 p& F' u8 S+ O5 F
   int i, error_code = 0;
. }% C3 V5 y' v1 f   int mode, display, response;
4 j1 H/ i+ }9 w# ]' S   mode = 1;                    5 e$ S) T7 J% y: d4 i7 E1 J
display = 0;      
8 u+ r; M+ @2 g! \UF_initialize();' c; }! |; N' ^
   error_code = UF_UI_specify_plane(
% [/ j0 Y1 M; \3 h         "Select Plane", &mode, display,( ^& ]% }/ [$ n" e
         &response, orientation, origin,&plane_eid);4 o! f1 R! Y2 n% U) l* j) z7 X

* M+ E  w0 N+ h: h+ g! @   if ( !error_code && response != 1&& response != 2)
( ^2 i5 a; I3 s# a5 l' m1 S   {9 @& F# R; r% m$ T7 L) _/ ~
                     for (i=0; i<3; i++)
1 I+ ^; S5 u2 w' o  L' C6 x9 _               pts = origin + orientation;7 C4 i, i0 l; W6 D8 r/ A- M
                     for (i=3; i<6; i++)7 p5 K3 i' z" z4 T& Z
               pts = origin[i-3] + orientation;
1 a9 z; s4 ^; G         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
9 e: I  s. J, @   }8 _1 d. n- z: Z
11,临时点,线
% [2 J& j* x" ?2 Y+ hvoid display_temporary_point_line (double point1[3], double point2[3])
$ _% a. \9 @. z{
: i6 i4 b" R1 ]: K1 a- O/ v* j  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
# l3 y7 _* L8 x- g" e% I1 P  UF_OBJ_disp_props_TColor;8 M! {, p, o! ^: F/ }# U+ b* S
  color.layer= 201;8 e+ D  A  ~& `( L3 D
  color.color= 186;
5 h+ O$ D+ N3 {' m0 D$ w, K  color.blank_status= UF_OBJ_NOT_BLANKED;
+ D% f4 @+ n: _, ^. K  color.line_width= UF_OBJ_WIDTH_NORMAL;: b' I$ m! j- _' F& n
  color.font=0;
" M3 H& E- I3 v7 o) P0 G  color.highlight_status= FALSE;
+ R2 N4 `4 o' b4 l5 R  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;" G/ P" P, B/ w# T5 U! m! A+ E

# j1 M% @& ]3 v3 sUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);4 L. j+ f' d: ?! A
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
" B* I  q5 u) _# f8 uUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
/ s6 G% p, j# d) f7 F! v# k}6 v0 y# j, L/ C+ J% }
12,WCS与绝对坐标转换6 X+ h3 F8 V- }7 y
                        voidcycs_wcs(double point[])
4 I9 B* S, T: w* L9 Y% A: T5 G{
9 Y9 I7 @' U0 U" M* m& T      tag_t  wcs_id,matrix_id;/ v3 B4 J( C' ?0 m; J% ]8 p
      double matrix[ 9 ];
. V8 Z: N# b4 x: k      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
( s& N0 W& u, h9 Z# A+ W8 b      double wcs_origin [3],vec[3][3],point_origin[3];, `  Z* t' z+ U9 Q: {: T, w! o
      //1,得到工作坐标系4 `2 f3 m& U8 W0 m4 p0 x
      UF_CSYS_ask_wcs(&wcs_id);- @, K1 U$ u, L: @' S9 }5 {
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    3 w8 ^6 f# e- p( A
      UF_CSYS_ask_matrix_values(matrix_id,matrix);
3 ]4 O* A1 W/ t% ?3 W8 V/ z  C: A  C/ \$ g0 s# S) y. k
      //2,得到工作坐标系轴向量/ Y4 _; N" \( L
      UF_MTX3_x_vec (matrix,vec[0]);
; \& o( {% q2 A9 F      UF_MTX3_y_vec (matrix,vec[1]);- A4 Q+ \3 R  D; T6 [& o: b
      UF_MTX3_z_vec (matrix,vec[2]);
5 g2 d6 Q9 b2 F  F2 K- [5 t- V9 D/ S+ M8 f* }. c
      for(int i=0;i<3;i++)
! n% |8 H% i! ?& d/ t& X* Q      {     
9 L1 r6 u+ G, ?; _$ c# ?            double tol;
# V' [( s7 A# ^//3,得到点到工作坐标系原点矢量0 K# ^2 }$ Z' j, C- j- O
            UF_VEC3_unitize(vec,0.000001,&tol,vec);. i& G/ W' b9 l* u
//4,得到点到工作坐标系原点矢量, d( k/ c. K7 u" J. K# @2 l
            point_origin=point-wcs_origin;' I6 n; n. G& j5 i" ]% w* v( ^
      }
; u/ I3 O1 w  H6 [4 U$ y      for(int j=0;j<3;j++)
& {, Y; y% \/ r% _6 @) K      {
) t2 [# S$ N/ }: @. H: r# I            UF_VEC3_dot(point_origin,vec[j],&point[j]);
: M) r( g* @' @      }; P1 P$ s5 A2 I8 y5 s9 s2 Z
}3 l& m3 k$ h  `# o3 S3 t7 b1 y
13,三点求圆心
) ~" e5 w# F$ t9 `9 M#include<iostream.h> ; a1 t. j  Q: p) p- }
#include<math.h>
; ?# j7 Y$ t9 n0 l" B  O- Q+ x2 w4 M0 y& [0 X4 n+ Y0 p8 m$ T
int main()
2 Q" Q9 i+ Z* p- @  K( v! _{
/ ?  x' W0 L8 z      int x1,y1,x3,y3;- b7 ]1 t3 `2 h
      double a,b,c,d,e,f;- N* C# w5 d7 e2 n8 f' Q- D4 i( P
      doubler,k1,k2,x,y,x2,y2;7 D* K; \" Z, V) |4 Z) ]9 i+ y2 A
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;& H( ?6 J8 }7 H$ h& R0 ?
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
1 o( d! f( F8 Q; O      if((y1==y2)&&(y2==y3))2 h* r3 F+ B& X$ b$ X6 p; W( E
      {
$ A6 i' \8 T( L! T# n5 q            cout<<"三点不构成圆!"<<endl;; t- q/ L. o: C
            return 0;1 h# n$ ~) r1 O  w" `# `6 J# P+ ^  C
      }
  i6 ], [) W. ]3 p      if((y1!=y2)&&(y2!=y3))0 b* Q$ i1 K6 }! `$ W2 ~( a3 h* o
      {
7 f+ i4 z0 D0 s4 i9 P; k5 H            k1=(x2-x1)/(y2-y1);
( J$ f( q* o, g! s9 R) G( P6 c            k2=(x3-x2)/(y3-y2);
2 ]. ~, q+ X9 q$ b. p( c- @) E! I7 l      }; q/ F8 t& C% N$ b$ J% g
      if(k1==k2)# M; ]/ P" J' @1 T
      {
" ^) I$ }5 X( D) l' C' W' a# z$ m! C            cout<<"三点不构成圆!"<<endl;
* ?' I  T9 u" }0 H/ \            return 0;% L; Z; R8 a, }! ]
      }. n3 n8 w2 q1 h9 q
      a=2*(x2-x1);
. q& ?& X5 Z& {1 T( B; h      b=2*(y2-y1);
! Q& x6 d% h; P- g0 c5 k      c=x2*x2+y2*y2-x1*x1-y1*y1;
( v9 J2 J. K/ ]0 V; b# T      d=2*(x3-x2);
$ I/ s! N/ f/ Y7 U; M      e=2*(y3-y2);
' U- J* F; F; P4 }  G      f=x3*x3+y3*y3-x2*x2-y2*y2;5 Y4 p/ j2 {  s) a
      x=(b*f-e*c)/(b*d-e*a);
% `+ _2 x: ~) J$ @8 {# @3 n# s      y=(d*c-a*f)/(b*d-e*a);- U- \- X7 m) ]0 Z- K$ B# P
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;. C' \5 L/ _: |9 m2 P! ^
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));! J( o5 `# {8 l
      cout<<"半径为"<<r<<endl;* p0 L: i" T! k( A+ J9 e/ [
      return 0;0 d  {; D7 d# u
}. |6 q" R. L5 ?: |/ H) a& }1 ]' G0 A
14,查找圆心! a) ^2 c7 v1 j/ r: W
            UF_EVAL_p_tevaluator ;
& X' E! l. g$ n! u            UF_EVAL_arc_t arc;
5 d" n8 {" t5 P0 e            UF_EVAL_initialize(obj_tag,&evaluator);4 }: {+ |8 g: P1 R: E
            UF_EVAL_ask_arc(evaluator,&arc);' e" r& D0 `5 `7 p* {% l
            UF_VEC3_copy(arc.center,point);           
" N' `/ p% k# m! d1 ^5 s. o15, message_box* {8 p% Z" D. l- w
void message_box(int *res_mes)
: {9 T" ~1 G+ S* c# i6 z{* b+ B4 o& W' e
      UF_UI_message_buttons_sbuttons;# `! m% V( d3 R2 h' o' y- ?
      buttons.button1=TRUE;
* F! w& F6 W! N2 p' t2 m) g9 |      buttons.button2=FALSE;
& v5 x9 Z/ e0 \, K- |: N      buttons.button3=TRUE;# c. r+ i. I0 h/ @3 I" `
# Y% E* }1 k8 P8 S( K
      buttons.label1="OK";
+ E- r- W3 X# D/ y7 S# W      buttons.label3="CANEL";5 E  g7 G; }" e- a2 w: P1 F

& I7 g% Y( e  z/ @" Q      buttons.response1=UF_UI_OK;
/ ?2 e* i. F9 L2 N: W/ y      buttons.response3=UF_UI_CANCEL;
" e6 H& ]& Y, E7 A5 W( w$ N" U
1 t  G+ o0 M) v      char *string_msg;
/ M8 S- G3 S( p$ n; K0 k      char*material_msg="ALL selcted objects will be removed";
% m. ~: ]7 U1 e+ m" s      string_msg =material_msg;6 P, z/ W7 p- m2 U% P( d3 \1 _

" }( U: x: [% C2 {      UF_CALL(UF_UI_message_dialog("",' N( Z, B; j9 Y7 r! P
            UF_UI_MESSAGE_WARNING,
: ~& Z) |6 ?* @          &material_msg,) o- ~7 V9 z9 ~$ f$ W8 u+ C
            1,( _, I6 N9 d. D
            TRUE,, k2 N0 T: ?1 N, h% f4 n/ ?
            &buttons,9 `; b* B3 s4 Z! |, l$ ?
             res_mes ));
0 ~: X. p$ U" g}0 T* c1 |+ x" D. p" R' v
16,选择过滤
! A6 K# W- n" ?: S3 Tstatic int init_add_face( UF_UI_selection_p_t select, void *client_data)
- |& t; I8 J. I1 U7 Y5 M! O{! P+ Z6 o; U% F+ O5 H" z- R9 {
      int nums = 1;
2 {. t# J7 v* y7 {. c  V, H3 r, E      UF_UI_mask_t masks[] ={/ c/ L5 L' v6 k" n! D: q" y/ k
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};: a6 S3 B2 H2 i
! Y1 T9 S6 S) z
            if(* C5 ~) D( x, b& q
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0): }' \, h! N* j' Z1 M% h
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)( b) r7 b6 s: k0 G& S6 F
                  ). y: D5 K) }$ x! g9 }
            {+ H8 x$ E0 ^. @8 z3 X" f. `& R4 k
                  return(UF_UI_SEL_SUCCESS);7 M4 X0 {3 x& u2 T" V
            }. N* h, F1 c4 N- [9 p
            else( j0 N7 F9 L/ z0 @# a: G2 x
            {     - R3 M8 \$ a. O6 e
                  return(UF_UI_SEL_FAILURE);# \+ X; Y3 |5 j  X, J. t+ j
            }
9 n! T- S8 Q7 f, N' F& [8 t}+ E/ W# ^% X! n5 G7 v% e8 u
int find_tag(
. E/ f9 e- K8 P, L                    void * client_data,//用以传输过滤资料
; B! O; q0 f5 ?                   tag_t object//现在鼠标所选物体ID
4 t5 x- O) T( m0 n+ U. i                   )
, _. C4 }7 x6 w8 M  F1 D{% t  N. |6 S7 f9 W* f% u. t/ X
      user_data *obj;
/ w8 m& C% R) J      obj=(user_data*)client_data;: H* S. f( Q0 a4 r
      int find_face=true;//接受+ V6 h* F% @2 Z3 f4 T
      char *string1;
' f& R/ p2 F' R; X- f' p      string1=newchar[133];/ O  I7 {5 ^6 U4 H# G: W. F) `, ]
      string1=UF_TAG_ask_handle_of_tag(object);1 \5 X5 L" D% `$ _$ Q& z( c7 T) w) |
      for(int i=0;i<过滤的数目;i++)
6 N5 S3 h8 K. @- _: ?      {
" i  [: F2 _) G+ g6 Z# m5 Y9 J9 O- u. O! J' J
            char *string2;% L6 D, @4 \/ O9 C
            string2=newchar[133];
! z8 K9 K- I8 w6 G5 v            string2=UF_TAG_ask_handle_of_tag(物体ID);5 z3 h! ^/ A8 r1 n8 h/ a
            if(strcmp(string1,string2)==0)
# K' |: a2 j6 y2 y0 r' }            {
8 _9 g' P2 y+ g                  find_face=FALSE;//不接受
) e. ]$ ^( b! l6 j. Q8 b: T/ Y* ]& w" _, i7 l3 s% V% _! c+ t+ t2 _
            }
0 c2 }! U& z/ r6 V            delete []string2;" r! r' n2 C' I7 ~2 |! b  v
      }9 O3 y; @+ _9 S, B; M& H- X
      delete []string1;
; X& z1 X- r: r      return find_face;$ A2 s6 P) C" \0 J
}
9 X1 ?7 {6 ]4 n
3 P& q1 |# a7 i+ P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了