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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
' c0 K% o1 i3 ~) }
7,裁剪片体
# a2 f6 A* F" G8 otag_t  *trim_objects;# W8 H- z+ f% d4 @5 d' B/ l8 r
trim_objects =new tag_t[count];, V' O# E1 u( x$ f+ o
trim_objects =bound_id;$ y/ r1 q, U& i4 e, c) ~
voidtrim_sheet()2 {+ f8 a" ^9 h+ u% f
{, y; a: Q& b+ i  ]
- l8 e$ S% J& F% A$ p# B
      UF_MODL_vector_t projection_method ;
4 b2 G* p' W: N+ N      projection_method.reverse_vector=0;) _' \% {1 _' t0 f. Y: T) A6 q# r# B
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
: z# `0 E' C, p1 V+ j* b      UF_MODL_vector_defined_by_union_tdir1;$ z) s6 r, ]* L" L3 R3 z+ x
      UF_MODL_vector_direction_t dir2;8 C, u+ ~$ S- f  H
      dir2.xyz [0]=dir[0];
: A2 f5 Y: M: g& `; o      dir2.xyz [1]=dir[1];
$ D' g; C" h3 L4 }1 I      dir2.xyz [2]=dir[2];
) b& U5 g2 N; G      dir1.direction=dir2;
/ c) h5 y0 U, B" C: X4 {" Y# P7 T8 S/ s0 K' S
      projection_method.defined_by=dir1;3 D# S. ~1 G5 h
/ h. o: i# T+ D5 r8 g$ S6 l
      double point_coords[3] ;/ I% X: r) e$ f$ Q5 {
3 ]7 B& m7 ~* o
      point_coords[0]=center[0];5 V5 ~  x- q+ B, D5 q
      point_coords[1]=center[1];
$ |5 B/ L0 P9 _7 Q2 _4 E+ z      point_coords[2]=center[2];8 E2 X# u; Z( e- @3 x: I3 L
9 o6 _4 B' v% T' k: R' R2 N
      int gap_point_count ;% Z6 d, h: I7 b* ]
      double *gap_points;& M  h1 w  ]) w0 _1 @) U9 I" P1 T
      tag_t feature_obj_eid;9 j3 G5 u5 J' J5 a9 W8 e
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
% L# Y1 O7 @/ M" W                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);) N, D; n% i2 g' d! g" z

$ z  C: @$ u# b( X& |$ R3 [* P}
& [5 ?  w) @  u9 I8,offset偏移
9 R6 x4 a! [! w: V% y& E4 c6 d) V# \- L( b& P! T
char   distance_str[] = {"10.0"};//偏移的距离; V9 z1 c9 m, r* y7 C* l

; H1 [+ @- x% W9 |$ i( vint  num_curves;8 S# H9 {% _7 }- f) j  r
tag_t *offset_curves;: j' P; r# [0 a9 d  @: e# e
UF_CURVE_offset_distance_data_t  offset_distance;
) n: p2 r, ?& b- ]/ ^( E* qoffset_distance.distance= distance_str;! M2 O/ J6 `1 M) J6 Z9 f4 v& U
offset_distance.roUGh_type=1;: g7 ^8 a5 k3 v
UF_STRING_t   input_string;' p' {# L; o8 Z7 g
input_string.id=curve_id;//加入想要偏移的线
  h* a7 {# X0 ]! l# @  J1 F7 cinput_string.num=1; //偏移矢量方向数量
) Z; x# n, r1 a, dinput_string.string=&string_count;//偏移线的数量
4 z  J) S# D2 A; X+ [6 \3 \) }intstring_dir=UF_MODL_CURVE_START_FROM_END;/ z& `0 @# i( q2 L7 p* r# {( t! K
input_string.dir=&string_dir;; y  t) X! i& l" f: G/ n% p: a
6 s5 L- y2 T3 H2 _4 y; W5 G
UF_CURVE_offset_data_toffset_data;, h- l" m( P" |8 M/ y- ^$ j+ N

, @" j# K! C  C' s. H( Q5 f5 ^offset_data.offset_def.distance_type1= &offset_distance;
2 p! t' U8 ]% r& c) ~9 T1 d7 yoffset_data.input_curves= &input_string;
) B- B0 ?3 ^3 m  ?offset_data.approximation_tolerance= 0.01;9 K/ T4 ]( y. g  `$ H
offset_data.string_tolerance=0.001;
( y6 H* B* P) ~1 V# z( d  Ioffset_data.offset_def.distance_type1= &offset_distance;$ p: p' o* H8 t2 O7 j/ {
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
5 M0 Q4 \' d; ^: L& o9 V! LUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
' t, i7 Y, Y9 c5 J9 v8 W&num_curves,&offset_curves));1 e9 {, [# Y2 Z
9,创建平面
& _6 y$ z/ G! O( e  q, TUF_STRING_tgenerator;
8 Z+ `# `# V9 B, P) nUF_STRING_p_tge = &generator;
! ]' T. J( l3 z! \8 G4 f+ G( _) T: p, f' N+ R0 s& I. M$ q
UF_MODL_init_string_list(ge);" a! C) P  f/ E( t
UF_MODL_create_string_list(1,12,ge);
1 r' N( }) l) A- r) P, P8 P/ s8 B. p# p! y3 Z( `4 O. K+ ]4 w: A
ge->string[0]= 1;9 z5 H) b6 B& K- W1 M3 Y
ge->dir[0]= 1;//指定线从开始到结束
% Z* E: R( O( ~4 v3 ?% Oge->id[0]= arc_id;//指定边界的id
! K9 L7 B9 k$ r) E( e4 Idoubletol[3];
+ B5 |5 c9 i: p: l; d6 rtol[0] =.001;//直线公差. x% t  t( q- c: e
tol[1] = .5* (PI/180);//圆弧公差
. ~6 }) N9 T. U  B0 C& f" E  Jtol[2] =.02;//不起作用  P. w* X& l0 d) Z8 @) f- O( L
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
: _7 N6 \+ w+ N  h+ s# Y$ [+ p! _7 x9 W10,选择0 ~& ^7 G- g  x2 t( |5 r' U
1),点选择
. Y" ~- W: s$ A* Ltag_t point_tag;/ B" [5 l! O! a  y" i) t( u
double point[3];
9 u5 K: c# @! M0 B5 ~       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
. i4 ?; J/ ^- u9 [       intpoint_res;9 C& |$ @% U+ V/ n
  o2 M. l5 E/ A' G
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,0 E. t* ^7 R; \% B# l
point,&point_res));
+ e! j" [5 N) _$ f& l& P& g3 I4 g4 b& Aif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
/ J) O* n- z1 c$ A7 @9 g{; @5 l; l" S0 s  n# y* m3 y
}
/ `' b! @) _5 L, X* A2),向量选择1 I4 v+ k0 A& H  O) R" y
     int  mode = UF_UI_INFERRED ;
6 e+ R2 k% C" x$ D9 R8 W; a     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;4 F, q. L3 i7 Q( J. ?) i4 r& Y
double vec[3];: e# f0 W4 P% Y! ]$ Q, v% }
double vec_pnt[3];
. i! H. X2 G9 e7 w+ @+ ~& i6 U2 Iint res_vec = 0;
* k6 w) m4 t: L) u) p/ p     UF_initialize();  9 c, F8 N% e  ~6 p) H
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,) \' M5 v7 L- b
           vec,vec_pnt,&res_vec);" D8 e5 s+ z& b5 S! I
     if( ifail != 0 || res_vec!= UF_UI_OK )   
& V9 s9 i$ N9 Y     {     
; a4 M+ _4 ~/ h- ^+ t9 d) r           UF_UI_ONT_refresh();. `( Q/ m- s9 v" Q& K+ ]+ |
           printf("No vector selected \n" );
/ Q: Y1 J7 Z. x8 ]( m" l" W     }
4 m; |8 l2 ^% N3 B9 k5 l     else
  k* T+ A  ]/ u; h5 ?# y  _     {! ~" D! N1 Z- n: |3 J
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",3 S9 o6 S, f: s! h1 J1 m1 ?
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );, ]' m0 J1 ~$ N$ q2 n
}
# Q- a3 e$ l3 Q3),平面选择# Y0 Z" R; ?. W& f; D
tag_t plane_eid=NULL_TAG;8 `; z* |& {1 T( W* h' u  ^
double orientation[9] ={0,0,0,0,0,0,0,0,0};9 V: J2 Q+ E, N0 B2 |
   double origin[3] = {0,0,0};
/ m! c2 `$ J. k/ b   double pts[6] = {0,0,0,0,0,0};
! k; m% t- `1 C' g   int i, error_code = 0;
; v/ j% @6 b' }   int mode, display, response;& @5 r6 @5 U" e& R
   mode = 1;                    1 A% X$ t4 Y+ c2 [3 N4 J
display = 0;      / R/ C" L8 g1 ]% A/ v
UF_initialize();
, g4 w1 {8 L; R0 M8 _; w' `2 {   error_code = UF_UI_specify_plane(1 c8 K5 X' v$ Y; `7 T
         "Select Plane", &mode, display,
, g) x: ~! N/ z( \. R5 h$ g: p         &response, orientation, origin,&plane_eid);
3 ?. i: s) W$ Z. ^6 ]8 o5 E, ]3 H3 t  X
   if ( !error_code && response != 1&& response != 2)
8 `5 f2 J8 u& N/ ^0 S9 I4 e   {. @) @7 [! [0 M( C
                     for (i=0; i<3; i++)1 K5 J; l- Z/ m9 |/ x$ i
               pts = origin + orientation;: q" H8 a# g' _, W
                     for (i=3; i<6; i++)
  Z# |! m6 Y+ f6 o4 P5 q& f               pts = origin[i-3] + orientation;
5 g2 i1 s, }# F& _( U5 B# u" H6 W5 D         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
1 l& g1 j# ^- l4 }, Z7 i   }
0 b, u$ o6 L) c9 x1 j2 _6 ~2 I! u11,临时点,线, F$ P0 n5 o$ e6 R4 B
void display_temporary_point_line (double point1[3], double point2[3])
" f+ z+ r" l7 b{4 a  t1 T/ e8 M# A: Y/ a* }
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
# P8 o  y0 e2 z4 `; W0 q  UF_OBJ_disp_props_TColor;
3 i# b, \/ x2 b! J- d% i) K  color.layer= 201;, n/ d5 |# `0 Y; J# t+ F0 j- K
  color.color= 186;& c9 ~  @( v5 q% o! E
  color.blank_status= UF_OBJ_NOT_BLANKED;
) c: x$ R. t; G$ \9 c8 _# w  color.line_width= UF_OBJ_WIDTH_NORMAL;
0 }' \- Z& i' L7 F% w  color.font=0;
6 m* ^' R! V# ?: l2 [  color.highlight_status= FALSE;  c5 Q8 L" b. z
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
8 g% |; m3 x/ _. L! p  \4 h* w1 R, Z% k' _7 E  W1 J
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);& l5 |% d; g0 F: b
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
. Z. Y# n" O8 Y: Z# UUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
8 \; Q- Y3 p1 w' t  h* c& R3 ]}
; ^" t3 w/ L) M: H* v12,WCS与绝对坐标转换3 d" B/ D  ?& k) R- q; W+ k& r
                        voidcycs_wcs(double point[])
" B3 X" q1 a1 [) j- C3 d: E. U{1 e$ V9 M( B9 l/ e+ T
      tag_t  wcs_id,matrix_id;
3 D8 q" f( l$ S# B6 _( [      double matrix[ 9 ];
4 c5 T6 G5 g* e# \8 `& B$ m3 f6 o3 F      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
: {/ Z# E, q* y: c      double wcs_origin [3],vec[3][3],point_origin[3];
! ?  k2 m- S7 q      //1,得到工作坐标系
" r0 a% s( U" @4 M8 b8 Q0 u      UF_CSYS_ask_wcs(&wcs_id);# T8 A9 \; a  I6 r# R( s( m6 w
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
" w# F! E7 g7 @      UF_CSYS_ask_matrix_values(matrix_id,matrix);
5 }0 w- F/ I# v- J: j$ q0 u: J$ \- i
      //2,得到工作坐标系轴向量
. [* ~+ R' y' M* L. l. @      UF_MTX3_x_vec (matrix,vec[0]);
: Y# d$ A7 ]* {* i$ I* X# m5 ]      UF_MTX3_y_vec (matrix,vec[1]);- R! U9 k- e' [6 L
      UF_MTX3_z_vec (matrix,vec[2]);
* t% ~0 U4 q- C! @# V* A8 M8 G' @- m- `: v
      for(int i=0;i<3;i++)
" ]9 a9 D/ f; V# d' |0 I      {     
7 M# T/ n! K' n) r            double tol;. |# N5 E9 Q: d
//3,得到点到工作坐标系原点矢量5 Z$ `, K0 P6 L( t: G6 ?
            UF_VEC3_unitize(vec,0.000001,&tol,vec);+ _& I2 e, W+ j1 `2 m
//4,得到点到工作坐标系原点矢量/ s& r+ d1 x7 [6 R9 k$ P
            point_origin=point-wcs_origin;
* K( I6 e# i  g) i      }3 ~1 [* C0 B- Y; Y1 R
      for(int j=0;j<3;j++)
+ e5 o$ I2 {1 @) p# g* e# y8 D      {
+ K6 m0 M& U$ S/ r+ ^4 R1 K  V            UF_VEC3_dot(point_origin,vec[j],&point[j]);/ \. G" ^% k: \6 \$ i7 u+ Z
      }
; z' z0 ]  m% A6 B, k0 @}
! E2 }& S4 |% p8 U13,三点求圆心
! b& [" D, Y' M9 R#include<iostream.h> % b9 I! A( Z' j' o# V
#include<math.h>
$ y# U) b$ w% R+ e4 Q9 f3 v: }5 e- ~$ W2 I* ?# Y
int main()3 M2 a, x% w; n. W" [# A
{+ W: j" s' |" f) v  L
      int x1,y1,x3,y3;* _! j) c& L* |1 D) B2 b
      double a,b,c,d,e,f;
7 Y9 f/ `0 t4 w; a  x( d      doubler,k1,k2,x,y,x2,y2;; ?% T6 a! z% Y) n% O
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
" f4 M% l* |. M8 P2 V      cin>>x1>>y1>>x2>>y2>>x3>>y3;
) Z% h  J6 e$ D) C7 @7 g  q* _8 a      if((y1==y2)&&(y2==y3))
2 a" w8 d) |/ s* W: x      {! b: q$ K6 T# m
            cout<<"三点不构成圆!"<<endl;
/ h# \, C6 _9 C: g# c, ?            return 0;
/ ^# t* l! B8 [. x6 B9 b5 {* R      }+ s" q4 o. h8 e7 G* u8 d+ M) A
      if((y1!=y2)&&(y2!=y3))+ c+ r+ C' Z/ K7 s9 v! S
      {+ F" R* C5 Y( U* O2 t
            k1=(x2-x1)/(y2-y1);
  j/ n2 a# w% C/ G0 |! k3 r            k2=(x3-x2)/(y3-y2);
# y. J: B& o- l1 m. Q+ Q      }
# i, n" m. ^! {      if(k1==k2)
; c3 J2 x8 j- }2 Y" z1 D      {
1 ?. Z8 j3 z+ H            cout<<"三点不构成圆!"<<endl;# T+ ~9 U0 f$ r. y, J
            return 0;
" Y  O! {% X/ w      }
  ^# {* S' F: f) Q! o. R7 X, M) c      a=2*(x2-x1);
" p/ {; R9 V. [& [      b=2*(y2-y1);$ a: V+ ?( K" T7 B7 c3 q7 N
      c=x2*x2+y2*y2-x1*x1-y1*y1;
9 L+ i" n( G, P      d=2*(x3-x2);% G( j; t* e$ E
      e=2*(y3-y2);
7 N* i+ f8 S# H; T5 t0 q. Q      f=x3*x3+y3*y3-x2*x2-y2*y2;
5 _2 A/ e. [* n* ^      x=(b*f-e*c)/(b*d-e*a);: [. E0 F3 l6 H( f7 C& V  G7 S4 ?( G
      y=(d*c-a*f)/(b*d-e*a);
1 A* x8 W7 Z, a% W6 @      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
6 p( d* h- I$ K3 s" V* }' s      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
$ E# D/ X# l' z      cout<<"半径为"<<r<<endl;
0 I" m  G0 J3 r5 U6 j! U7 o; _. s, A      return 0;) s( g+ L* k& U& |' a5 i; [
}
$ H% e8 y" u+ }( ]# @+ F14,查找圆心
8 G$ C' G3 ]) b& b: J$ b            UF_EVAL_p_tevaluator ;" U8 R, K' i. I& |( M; T* e, O4 U2 `
            UF_EVAL_arc_t arc;
3 |' g4 @( s% Y$ d" p! ~            UF_EVAL_initialize(obj_tag,&evaluator);
* G0 q7 {! P5 C& f* K( ~. a            UF_EVAL_ask_arc(evaluator,&arc);0 A" c/ M9 v) ^$ B9 W9 ]9 C& }# A
            UF_VEC3_copy(arc.center,point);           ' h) b3 J, m& Z% a# b0 s
15, message_box1 k& M" a# X; B- I+ g6 _! ]
void message_box(int *res_mes)+ \5 ?- q3 E" f* a
{
& g  m" h- j* Y      UF_UI_message_buttons_sbuttons;
; N% _5 ]: ~3 ^- d      buttons.button1=TRUE;
* k4 M; s; X* v5 F& P" R  ~      buttons.button2=FALSE;
9 N5 A5 D+ Q3 H9 |. m% ^! O" c% A) }+ F      buttons.button3=TRUE;4 u% O) ?3 |: c& j" Q

6 w5 }, z3 T' i- _      buttons.label1="OK";9 B! ^, T0 X/ U
      buttons.label3="CANEL";
$ A3 j6 @- S* \4 Q* ~$ ?
& p& O) L* t4 S4 F      buttons.response1=UF_UI_OK;) x  Q! I7 F$ I& f8 O" V4 Y) c0 e$ f
      buttons.response3=UF_UI_CANCEL;
% Q8 b' D2 I  i  Y- y
5 z8 Z9 `: H0 k" {      char *string_msg;
6 U5 @" D  a  I' M* t& u' d2 o      char*material_msg="ALL selcted objects will be removed";5 G6 [- _  x- y  _* Q5 E
      string_msg =material_msg;0 j- l; S/ ^+ W' {

6 b, c8 G5 K1 w7 F      UF_CALL(UF_UI_message_dialog("",9 j6 \; N5 p2 o& Z
            UF_UI_MESSAGE_WARNING,
2 s4 }/ O& l5 [# p          &material_msg,
# v6 Z; r* t6 f  `            1,' A5 b2 j+ s# H7 L
            TRUE,- m' O# w; A: @/ j9 N
            &buttons,
2 m" r. D' M. j* G* T2 b5 Q             res_mes ));
" Z8 l% c. p. E1 r5 E9 y2 h}, D$ A" L" M0 C9 }
16,选择过滤
+ Z! e- m; ]" G7 d( i0 g9 ustatic int init_add_face( UF_UI_selection_p_t select, void *client_data)
; ?$ }* y% U' C+ c- E{
3 M+ p$ q8 N& Y. W$ u% s/ g      int nums = 1;! w) d) U, l$ s  v% k
      UF_UI_mask_t masks[] ={* r5 H- v5 C4 ]5 h
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};, |# l' r2 U; M( e; B' h5 Q( o

# Z* r  K# s! |            if(
( E- D  F! l& U* n5 S                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)1 X- g! z# m; y, c) \* A
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)8 I: _! [, _# I, l  ?( g# ~, p1 i
                  )) n8 e# N5 `5 K/ a1 C
            {: |# z# ]4 a! z9 t" w
                  return(UF_UI_SEL_SUCCESS);" [6 C% h: Z  v+ {; g
            }; z. q& i6 E- K, l/ |0 I' v
            else
2 ^+ `3 ^6 O0 ]5 c$ O# Q9 C8 b            {     6 Q9 V0 j4 v0 Z$ W8 A
                  return(UF_UI_SEL_FAILURE);
8 ?& L' e* a5 P1 ]; w            }
5 j) r  F5 m- l* v$ c6 s}6 i- f1 {8 r/ U
int find_tag(
8 d- ~: l  y9 }( q+ {: D* x                    void * client_data,//用以传输过滤资料
3 l! `7 Y, ~0 R/ I' j; O- Z. x4 n                   tag_t object//现在鼠标所选物体ID% R% J: L6 E0 E! n6 w$ T9 M
                   )! j' K" D7 D! L* C& c9 r7 {  Y
{
- B/ k% {1 j3 P% n( _: x      user_data *obj;
8 t6 r! G, l) A1 @6 g( ~      obj=(user_data*)client_data;5 i0 _2 m: y4 x% @6 X' ^4 k
      int find_face=true;//接受: z  \6 ~$ S3 a0 V; ?5 _
      char *string1;. g' [: Z. Z. U9 E/ T( R; {
      string1=newchar[133];) s1 O- o! c( c' M9 x2 y2 }
      string1=UF_TAG_ask_handle_of_tag(object);+ N3 u1 p9 X' B: j) t  O0 `- N# \( S
      for(int i=0;i<过滤的数目;i++)
  t0 z+ K8 o* U3 f* K      {/ ]/ T1 L- e! ^$ h" r# E% O
" k+ b- X; B' j1 f$ g
            char *string2;  N6 Z0 j# X- r$ W  M# N
            string2=newchar[133];
( n7 G$ z# \: d, }, G            string2=UF_TAG_ask_handle_of_tag(物体ID);2 Z" q+ R+ Z% g8 I
            if(strcmp(string1,string2)==0)
4 x0 D; s- r8 R% l. x3 G/ _$ n/ h            {
! L/ K+ K' E, e' U5 ?7 n                  find_face=FALSE;//不接受; x+ x( \2 |$ |- l

2 h2 M4 D. a( X( `6 c1 s2 F: t8 M            }
& d; `3 d/ {- i* Q* Z. z            delete []string2;8 R; e6 |  |% K0 k" K! @) {
      }7 z2 N! i& D4 E. R* |7 k
      delete []string1;
4 M) l" a/ o$ m      return find_face;+ U6 ^  h" Q/ o
}
6 H; M# ~0 t7 s- @: u7 C) A
, |' n3 b  b( C( u+ a, m! E" |8 C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了