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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

: V& \7 k3 h+ c" \/ R5 r% k3 u) F& k7,裁剪片体7 v1 `' Y9 E( I. d
tag_t  *trim_objects;: c+ C1 w; A$ S) h$ E. R+ d- ]
trim_objects =new tag_t[count];* l2 C6 m/ a: E3 @/ c. H, J
trim_objects =bound_id;2 l; R5 p! Z' w+ ]9 N
voidtrim_sheet()
( {" Q0 M# U: F, f{
. ]' F+ f; S8 s  t# E
3 d: L1 _  H( _: U) y      UF_MODL_vector_t projection_method ;
$ U! M/ r! ?9 F" K0 n6 b8 a      projection_method.reverse_vector=0;
( i8 b7 {2 ~# s      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
( ^. A7 `( i7 C+ r7 E& r$ l5 o& p* a      UF_MODL_vector_defined_by_union_tdir1;; g% X% y" z7 _
      UF_MODL_vector_direction_t dir2;
+ ~/ p; }! X% |1 Q5 `% G: U      dir2.xyz [0]=dir[0];
7 m7 z( X) k( O) N2 d7 _5 L) f2 z      dir2.xyz [1]=dir[1];
# \! h- |4 A6 L2 b. J. A; p% l# @      dir2.xyz [2]=dir[2];
$ n9 t2 k: P2 w* X, e+ i# r      dir1.direction=dir2;
- J0 \; _9 B; r, E- p6 {8 n& ^1 |# d0 q
      projection_method.defined_by=dir1;
+ r& I: h3 |) {( B' e
/ F# j2 w, e: f& ?      double point_coords[3] ;
; L" i% ~3 G; O3 S& s! N: Q; `* \* |; U! I$ @- Q
      point_coords[0]=center[0];
' b4 V% x4 q; B" ^/ B7 Y      point_coords[1]=center[1];2 K. w# u* m, C8 D* m. E; s3 `
      point_coords[2]=center[2];
" A- p4 u) \. [3 N0 z7 G- |+ v2 N& ~9 t
      int gap_point_count ;$ J& |0 S$ m6 y8 I
      double *gap_points;9 n& G# X- @( O- R. e; b% h
      tag_t feature_obj_eid;
* M$ \3 f( k' b/ N5 Y" u$ b      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
" s( W' ~0 A3 {- q5 Y0 `* d+ J1 C                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);7 Y" i  @& F4 K
! C0 i; a. N% U
}
3 z3 `* Z9 v# ~. ^; E- g- e. Y8,offset偏移4 r  e  O( |" y( V" J

3 s9 \0 ~5 _: E# J* l3 Ochar   distance_str[] = {"10.0"};//偏移的距离
$ C9 |7 B: V" J3 p8 c6 ~
- ^' L" ^- \3 l* ~int  num_curves;
0 I- `1 R! u( l. ]. I3 A) Vtag_t *offset_curves;; m/ O0 F5 T  p' B6 ]& K6 M7 X
UF_CURVE_offset_distance_data_t  offset_distance;
& x2 {8 V2 _% K8 c2 o$ woffset_distance.distance= distance_str;6 V/ T9 ]: Z" z2 E7 l
offset_distance.roUGh_type=1;* V5 g. a! D2 c/ ^3 ?6 x
UF_STRING_t   input_string;
$ R3 }; [1 p, R% O+ c" X! zinput_string.id=curve_id;//加入想要偏移的线/ p" [4 i4 F% |& k& q( J
input_string.num=1; //偏移矢量方向数量* B6 G! v7 h6 N: W/ D2 J
input_string.string=&string_count;//偏移线的数量
$ N8 I/ z% o. j, cintstring_dir=UF_MODL_CURVE_START_FROM_END;
3 R5 G5 D" R' Z5 c: S2 y0 N( q" Dinput_string.dir=&string_dir;
8 C% E2 V( C) C: A- N, o" b2 G8 F
  J& [0 D8 T0 C, r3 [% N8 ]3 VUF_CURVE_offset_data_toffset_data;
- R0 L2 ?  z# j1 a9 G  I& ~) F* B$ P7 `" [& R
offset_data.offset_def.distance_type1= &offset_distance;8 ~  @  M- J: J9 {' \
offset_data.input_curves= &input_string;
) P' C, i2 |' L2 J# s4 ioffset_data.approximation_tolerance= 0.01;
( ^7 b! J7 a0 Goffset_data.string_tolerance=0.001;
- I# ?7 q0 s" h$ G- `+ W! Moffset_data.offset_def.distance_type1= &offset_distance;
/ {" _$ S8 e9 e4 _" B$ P. `offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
) W% m- Q0 N2 x' R) e$ eUF_CALL(UF_CURVE_create_offset_curve(&offset_data,5 H7 ~- e: K3 u
&num_curves,&offset_curves));
  O) ^' g9 S: s- @4 W9,创建平面
" M, H$ @$ {5 q6 h# pUF_STRING_tgenerator;
. l6 g5 O/ R0 |) _6 oUF_STRING_p_tge = &generator;9 ^; s" S: S' m% w, x2 I; ]9 [

* w) G" q( e' p* {5 P4 B. S  QUF_MODL_init_string_list(ge);1 ?, M( R5 A5 J( R) Z1 a/ l
UF_MODL_create_string_list(1,12,ge);1 }7 k* l, Q& C8 Z

) u, [$ J# \: r9 W5 ]( Cge->string[0]= 1;
' T/ S$ f* d: _! P7 _ge->dir[0]= 1;//指定线从开始到结束
# e# M$ T& K% \) V- C  kge->id[0]= arc_id;//指定边界的id5 P" I, i; c) O: V% }
doubletol[3];
7 H- ?# P3 D' Z/ Y; I  ?tol[0] =.001;//直线公差
1 ~# {& \. l; F3 D: n! l7 u8 \tol[1] = .5* (PI/180);//圆弧公差
) Z/ _* e  _4 v) R# rtol[2] =.02;//不起作用3 O1 s! }' }' i0 T$ d: J
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
/ i% W  w2 u. t! n1 J5 A10,选择
  m' m  c' K) c+ Q1),点选择
1 Z* F. i9 ?1 Z" p7 n' Ctag_t point_tag;
  l0 P7 Q: z( E: vdouble point[3];* ]- _/ P% B# m& f0 ]& ~/ o% J& d
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
2 R1 H9 [- T; G; E, q       intpoint_res;5 @- |1 f7 K0 m8 o

0 U% F8 i) c- c  J, S1 X+ [0 h# m6 U- IUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
6 o0 f( _4 `7 vpoint,&point_res));' e0 E# u$ |8 A6 n* r) r4 O
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
" j& S+ n" u: |; W{* V- {* T. q! P$ e
}
% |8 A% Z, @) X) T, v2),向量选择
2 b' L1 i& _6 v" ^! ?     int  mode = UF_UI_INFERRED ;
! ~* w# \! }+ f     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;+ V8 x( \% g0 j# [" z
double vec[3];
8 s; S9 D3 w5 idouble vec_pnt[3];/ B* n- ?* f3 S) H# L
int res_vec = 0;
1 }$ k7 ?9 K9 ]" J6 A3 ?     UF_initialize();  
% e- s( h- v- [& ?; i, z     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,5 B4 Y( s7 {+ P
           vec,vec_pnt,&res_vec);
/ [2 p; j9 E7 V6 N: m2 H     if( ifail != 0 || res_vec!= UF_UI_OK )   
  ]4 d. w: Y! b1 u* {( o     {     
3 Q/ C2 g1 D/ \: l/ R5 C  [           UF_UI_ONT_refresh();8 w+ x( P0 t1 c9 a
           printf("No vector selected \n" );$ e" U; Q$ h  r" o# d$ h: x
     }. [, e7 |( r+ [0 ~; h2 l
     else' f" R, I% A+ N: u3 \
     {& R+ }5 p# M8 ~/ \
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
- h- \& x% `: [                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
/ R. `% c  x; k1 u6 K8 \}
9 I8 Y, T# x/ o/ i; l" A* P3),平面选择
9 _/ S5 `9 `8 u7 L8 Ktag_t plane_eid=NULL_TAG;
  D* v/ m4 K4 z1 H1 fdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
( t& O/ n7 t9 `1 f   double origin[3] = {0,0,0};
+ s- L/ c! x2 |) r! W6 n/ {& Q( m1 p   double pts[6] = {0,0,0,0,0,0};
. Z* L4 N- ~: M. ~   int i, error_code = 0;# [, z2 M! `5 e; _) I+ o) S% z& P
   int mode, display, response;/ D0 d6 d' k4 \$ B6 ^0 D
   mode = 1;                    6 g: g# k) G" I7 X/ E) k1 E
display = 0;      
0 J6 Z1 a8 p4 J8 kUF_initialize();
! ]0 q/ `0 U7 E2 A   error_code = UF_UI_specify_plane(- _9 i: |- l$ [3 ^, s& x5 o
         "Select Plane", &mode, display,
; _) U* k) H3 f5 ?# J         &response, orientation, origin,&plane_eid);" F2 G7 H" j0 Q' A

6 _- P, [9 \5 T+ P   if ( !error_code && response != 1&& response != 2)9 A5 k5 d2 \3 `, z
   {& X0 H" m3 }8 M1 v0 m( h: l" `( f3 s
                     for (i=0; i<3; i++)* ?# q3 s9 m6 h: ?- J
               pts = origin + orientation;, S2 P/ F; {2 C8 e- j
                     for (i=3; i<6; i++)# u  m- n$ \/ K0 I* v) O5 w7 u, D
               pts = origin[i-3] + orientation;* i2 f$ _; [* h: [0 g
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
( M; J0 M& x' |9 e( n, i) @# ^   }
- ]# ?4 M6 b/ ]) N' y6 w11,临时点,线
, n" Y' K+ H$ x# F+ e' vvoid display_temporary_point_line (double point1[3], double point2[3])& Q4 W" Q' i; Y. N  n9 n9 \3 j
{, P/ D! `3 B: ]# N5 S3 Z
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
+ P5 i/ ?% k4 ^2 K. Y  UF_OBJ_disp_props_TColor;6 A+ G2 M: V9 ~2 p
  color.layer= 201;+ @0 {3 [( c8 }) N% y% D  a
  color.color= 186;0 K- J$ o9 c2 u- E$ _( {7 B* E5 c$ W& \
  color.blank_status= UF_OBJ_NOT_BLANKED;$ C8 s& U  t& r( T, c7 D
  color.line_width= UF_OBJ_WIDTH_NORMAL;" W8 l% C& Q* I* q# O+ \1 Z9 A
  color.font=0;, m/ X: h+ ~! L3 l# j: P) C  e( W
  color.highlight_status= FALSE;
' K* G' S' |7 ?) l: g  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;! C: M4 e/ e" L1 h* g, [$ [! j
) N( `7 C  P% H# {9 C
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);  O) w; Y* _0 h$ g
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);% n7 S  O  C. Q; P
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);/ E. _7 A9 b  f3 X9 d' h
}
( t9 O: ?3 K; ~2 j; h5 F) `! S12,WCS与绝对坐标转换
& T. q$ y7 g- K: A                        voidcycs_wcs(double point[])
" m. @: Z& I9 e{6 o; r- W& z  Y  Z
      tag_t  wcs_id,matrix_id;
, L6 V; O4 O( }# {5 Q3 V5 u( N      double matrix[ 9 ];
+ x0 ^3 N8 k  E# @1 Q      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量- \5 T# P3 }- s5 I1 A1 C( ~
      double wcs_origin [3],vec[3][3],point_origin[3];
7 x& K; i! n! f% p: l$ q8 X4 y- m      //1,得到工作坐标系% A+ e+ x6 E  W- X
      UF_CSYS_ask_wcs(&wcs_id);  \+ ^$ o( z/ {+ g% R/ t: N
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    + ~; g2 R& o. Q4 F6 @
      UF_CSYS_ask_matrix_values(matrix_id,matrix);. ~$ s2 u. q; p5 H$ K
" d- ^) d# U. H
      //2,得到工作坐标系轴向量* J7 i& B1 ?' O( C8 W# |
      UF_MTX3_x_vec (matrix,vec[0]);
3 S& `, v8 N' D( q' _+ g5 L0 f, y      UF_MTX3_y_vec (matrix,vec[1]);5 b: D) n! O, k( K# S: C! e
      UF_MTX3_z_vec (matrix,vec[2]);
1 @" S0 B$ J9 e' g2 H5 O% d" m$ z( ?3 F! v
      for(int i=0;i<3;i++)1 h, a- [3 C( \5 ^' q4 m# w
      {     
- i+ j. E5 c- G* M            double tol;
- A+ X  z  }; M# S, g% Y7 v//3,得到点到工作坐标系原点矢量8 R. t6 X  U* `6 y+ t" A8 Y
            UF_VEC3_unitize(vec,0.000001,&tol,vec);9 f# k6 `9 q2 P% y
//4,得到点到工作坐标系原点矢量
# D8 k& A) H! |: {4 g4 e            point_origin=point-wcs_origin;1 G) [: Y) X. ?4 X) n& j& b  d" I
      }3 M5 C9 |! m; E# ~& K$ |
      for(int j=0;j<3;j++)3 o% ]# l) y# A
      {0 u+ ~' b3 O$ A) H/ {
            UF_VEC3_dot(point_origin,vec[j],&point[j]);5 b/ V' _# o! |+ b( ~& d
      }
3 n* w" {% q9 t2 ~$ j! D! q& ~}5 R; b8 j# d2 K+ S! i6 E, ~
13,三点求圆心- \5 A$ o  ~' ?% q$ |9 |9 k+ l
#include<iostream.h>
" n6 r) H, p2 H! N#include<math.h>
, w  b; c* u; `- U/ Q
( g/ Q7 l7 l3 h& G/ c" f7 X; cint main()% l5 l2 i" G; D8 G
{
9 g5 Y. S! c' a6 P( o      int x1,y1,x3,y3;
$ _8 B; j# b  v3 D3 B4 D2 t      double a,b,c,d,e,f;
8 t$ `5 _6 p& @5 j" A      doubler,k1,k2,x,y,x2,y2;
- v" j7 y1 B2 v) a) N( L6 }      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;+ F( N( T2 h2 ]
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
7 l, T* `5 Z8 r      if((y1==y2)&&(y2==y3))
/ t/ e0 V* t5 b. w      {# e* Q$ p- f( }; D9 `, g
            cout<<"三点不构成圆!"<<endl;7 R) a3 s- D2 `% Y2 s
            return 0;
/ f4 x& n1 C, @' P      }3 f: t# J3 }4 d/ U' T" a
      if((y1!=y2)&&(y2!=y3))4 L* W% ?5 o: G$ p9 M# R
      {4 k% K% \* ]4 x! u$ Y; T3 d
            k1=(x2-x1)/(y2-y1);
- d4 [* \& r) U  o# f) h. z5 d            k2=(x3-x2)/(y3-y2);2 r9 e8 g/ Y* }- g9 k4 l+ m# F9 G& ?7 f
      }# J- e5 g# Z4 M! i) R
      if(k1==k2)9 f7 Z7 u+ E1 j
      {. o& h( }( ~) k& `; b0 [+ [2 [% r
            cout<<"三点不构成圆!"<<endl;
: H- l7 E+ _' k& K; {' M            return 0;  }4 l- f' t* @* l& W, }
      }
9 W3 ^: ^1 Y8 N/ |! L; ^      a=2*(x2-x1);" G! s0 s8 y+ T, I- x4 E+ ~
      b=2*(y2-y1);
0 f9 P/ v& Z9 [7 y4 [' I      c=x2*x2+y2*y2-x1*x1-y1*y1;
8 E  v% j1 R, w/ N5 E! U) I      d=2*(x3-x2);) c6 ^6 U; X$ \
      e=2*(y3-y2);" U' H' \5 Q4 M/ i
      f=x3*x3+y3*y3-x2*x2-y2*y2;' b; X- p- d8 S. b6 A  ]7 ^
      x=(b*f-e*c)/(b*d-e*a);
' L5 s9 g! T% {3 w& d3 p; O      y=(d*c-a*f)/(b*d-e*a);
% k! I! `: A1 i  U      cout<<"圆心为("<<x<<","<<y<<")"<<endl;9 ~' y/ {" M/ P2 K& l1 f# D+ f
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
# ?0 m9 ?3 k0 u( z% @9 V3 i* t+ I      cout<<"半径为"<<r<<endl;! A; S) x; t0 O- N6 N
      return 0;: n$ y, K0 p: w
}; Q( ?, F' i: E% c  v. g2 S2 s
14,查找圆心
( }& c9 |; {# j5 h' A5 ~" o            UF_EVAL_p_tevaluator ;5 Z6 l/ {$ m1 F5 u* |
            UF_EVAL_arc_t arc;, ~+ C+ k; G1 o/ |* T& Y! B0 A
            UF_EVAL_initialize(obj_tag,&evaluator);$ u! a: W4 d7 x& f! [: B5 H9 O
            UF_EVAL_ask_arc(evaluator,&arc);& Y+ O) I/ A: D9 @& M
            UF_VEC3_copy(arc.center,point);           
0 ^4 Q6 m! X! e( y15, message_box& n( e. t( t% O1 R% v
void message_box(int *res_mes)" L, E1 f" n' S! H4 S
{4 e% |6 I* Y: a0 d8 L$ u
      UF_UI_message_buttons_sbuttons;0 I( E, U" t+ N; A% n
      buttons.button1=TRUE;5 {& z+ [1 g" `2 V6 o
      buttons.button2=FALSE;
! G- p( }  ]  D2 N) t3 R1 P- w      buttons.button3=TRUE;" u; c9 H- X1 A) k9 k

+ P; D( M' D+ A      buttons.label1="OK";% R* t3 }4 X4 ?3 Z5 h6 u8 L, u
      buttons.label3="CANEL";  g/ F  i. k; [. a  A4 i
' w4 A5 c5 n8 r" i. m
      buttons.response1=UF_UI_OK;
- }+ K7 i- C- O$ Z4 Z      buttons.response3=UF_UI_CANCEL;
. [, b- q2 K, v
3 g5 k& O) O7 N% G1 D      char *string_msg;  r0 u( g6 ~: c) L' U
      char*material_msg="ALL selcted objects will be removed";
6 a5 M4 g; K! h( \      string_msg =material_msg;; @4 O. n$ c  G4 B& a

6 q6 R- `% ], F: i7 U) t8 Q      UF_CALL(UF_UI_message_dialog("",
1 y  P1 L, Z7 v, x+ A8 B            UF_UI_MESSAGE_WARNING,
+ g" I% Q2 ]) }9 d$ D          &material_msg,: ]9 O* X% U! Y  t. e
            1,7 }% W3 t$ h# _: ^* W  x" x
            TRUE,
* R' ^: |7 c6 E# w) ~            &buttons,
4 B- k! Q6 H- R/ q7 p6 F             res_mes ));5 N# v8 V) t  `2 H  p5 A+ k* V" G
}
+ {% r# |+ n9 Q5 M16,选择过滤# Q1 a' @7 ^) d8 l& X. K8 ^- ~
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
* T: y, O- _2 O: Y{7 S6 N# n) M1 o3 \+ Z1 k
      int nums = 1;
) ~' d) }7 T4 T      UF_UI_mask_t masks[] ={. z! @/ Y, D3 `" a" v
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
# {5 A3 f3 @8 X: }$ g3 x# n8 P& j* G( l3 ?$ \+ i- |
            if(" u) ]; C7 z( F& j: U- W1 ^6 I
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
8 z! x2 [: o& }+ A  S                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
" }1 l, _5 Z7 r$ Y' o6 Y+ P( P; [                  )7 y) E( i/ t2 z
            {- Y- s: `4 C7 W4 x* ]- J1 C& i
                  return(UF_UI_SEL_SUCCESS);5 a3 n7 a+ h" }( I: u+ i
            }
- N0 H  D7 V8 l0 p' w+ H# U            else
1 w0 M3 H1 s7 R. y/ i            {     0 ]9 }* @3 [8 O- [" q$ f% }9 ?
                  return(UF_UI_SEL_FAILURE);
) E' d, n" Z& u! @$ e/ O3 \+ Q- Q            }+ n* w3 p. X5 b  F, M( k
}
5 t$ h* w! e- J: C8 A: L+ mint find_tag(6 H' S4 S- u) N8 F$ c
                    void * client_data,//用以传输过滤资料5 h) X' w: h. c6 P# i0 |, b) A+ L
                   tag_t object//现在鼠标所选物体ID
' u# J, ?# K! D( Y- f                   )
! ^3 O# H' E- W{
- L2 H7 N' H9 H- q  O" d4 f; {. e1 v      user_data *obj;" `! X9 Q( Z* B0 k2 m+ m, D8 J
      obj=(user_data*)client_data;4 z  d. c* p% B9 @+ P% ?# }
      int find_face=true;//接受
; ]0 M. b6 n+ e      char *string1;
/ h& ~3 [8 i8 R7 x      string1=newchar[133];2 h5 U0 O/ A/ u& f$ i
      string1=UF_TAG_ask_handle_of_tag(object);* V: `4 U0 ^' p$ T
      for(int i=0;i<过滤的数目;i++)
- d' G% d% s) a8 e5 H* L7 i7 P      {% E8 t- e7 c( O; u

9 @% p- }4 x0 z6 K" E* R: I* y            char *string2;
9 O6 [& D* n5 W" L" [            string2=newchar[133];1 E1 M$ N2 S. |# r5 C
            string2=UF_TAG_ask_handle_of_tag(物体ID);
# B& i7 j& {1 h0 {            if(strcmp(string1,string2)==0)+ ]9 _& j# I  I; o# c3 k
            {2 r8 P3 `, f% s" M$ V6 @, y* S! P
                  find_face=FALSE;//不接受9 L( w' |$ U) j: o
6 o+ X% w6 ?( X5 o; p2 ]  ?( u3 X
            }
1 C3 ^- {, L; t% ]+ Y3 N            delete []string2;: C0 g. E% ~: R
      }% q0 o6 G) F3 t) o* ?/ {% ?4 k
      delete []string1;$ z4 T; V' ?  Y6 I/ G
      return find_face;- h9 J8 U1 f, u  u6 X1 D. D' F
}+ i1 L( |4 k7 E/ s! e

- p+ X! j0 C! `- \$ d6 K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了