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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
. \' X( m% a, v( x
7,裁剪片体
- G! {3 w3 c& S4 htag_t  *trim_objects;+ F" [1 y3 t+ N/ c$ V
trim_objects =new tag_t[count];
$ j4 R7 E) y5 u) Q  f) Q" B% ?% Mtrim_objects =bound_id;. k. n& K. l! F  x# L; ~
voidtrim_sheet()/ u9 I1 ^0 \' m0 {; x
{
9 {* W) X& `. C$ }. [% u. X% i
% j3 t, {. r; X; a: L$ I0 c      UF_MODL_vector_t projection_method ;  m. \8 ^. Z& l
      projection_method.reverse_vector=0;
$ w" g% r/ V2 b4 l1 i      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;  w+ Y  k: t5 c
      UF_MODL_vector_defined_by_union_tdir1;$ |# ~3 ^. s' Y+ j! J
      UF_MODL_vector_direction_t dir2;
+ X3 n5 h1 r. F/ {% `- }      dir2.xyz [0]=dir[0];
8 }) {4 k+ y# U/ n1 P/ @0 k      dir2.xyz [1]=dir[1];
5 N) ?9 j/ f4 N9 {8 l3 D' m8 j      dir2.xyz [2]=dir[2];1 S- V: Q4 U) X" U
      dir1.direction=dir2;
7 B( l: Q; l+ q  Y8 P; {! |5 a
4 V: Q8 C! ^2 Q9 X1 f0 {      projection_method.defined_by=dir1;
% b+ ?: U9 r, v2 `
$ C, [  q; G; u2 t) z      double point_coords[3] ;
/ L5 p+ I4 q0 A+ O8 k' L& n/ V$ I2 H7 `
      point_coords[0]=center[0];  @+ u% z6 _- v; l& r1 @5 `
      point_coords[1]=center[1];' Q( P4 F) j2 P
      point_coords[2]=center[2];
7 ?3 I7 o  w- t4 Q" W6 w) K& T0 ^$ Q7 W8 n0 x  _' O4 R/ Q
      int gap_point_count ;' @( {) o  ?# M1 j2 P" ~
      double *gap_points;
- d" ]6 `$ f8 J      tag_t feature_obj_eid;
1 M" D/ Y6 ]# I/ g      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
/ c$ K! z1 J) D                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
. A' m4 x9 A  B) _) C7 P8 m4 U) N( l9 t2 P7 M
}
- y0 [( |, k' h+ {- C8,offset偏移
: y7 p: X" A1 R# Q) H9 o# g, S0 P7 O5 d2 w7 E. v$ h% E/ D
char   distance_str[] = {"10.0"};//偏移的距离9 u/ x7 E3 r  e4 _3 O3 [0 B
5 N) I$ |: r: S$ o7 X. ~3 N7 _
int  num_curves;
* g; n3 a' C& wtag_t *offset_curves;1 Y. f6 U0 O: U
UF_CURVE_offset_distance_data_t  offset_distance;
7 `$ X8 i( H* o0 b; {7 b& G1 `3 {# g; eoffset_distance.distance= distance_str;5 d* H: c9 `% [7 Y9 O. }
offset_distance.roUGh_type=1;+ _, C' T/ U4 u" z& m
UF_STRING_t   input_string;
  q+ y; i( p7 d0 G0 X" Zinput_string.id=curve_id;//加入想要偏移的线- r5 }/ B( I. U3 K
input_string.num=1; //偏移矢量方向数量7 |$ h* ~8 d" n6 f& S5 h  e0 a* }
input_string.string=&string_count;//偏移线的数量' t7 _# [3 l9 E9 X% b# C/ M
intstring_dir=UF_MODL_CURVE_START_FROM_END;
/ l  ?, R; j  p9 ginput_string.dir=&string_dir;$ y% ]3 {- t& l$ C1 @& B- d6 {
" Q4 O7 u1 D3 J; O+ |9 w% K: g
UF_CURVE_offset_data_toffset_data;1 i) T3 e) Q  l( A% v2 B1 [" d/ x
2 H# E7 H3 e7 l+ m5 M, z
offset_data.offset_def.distance_type1= &offset_distance;
) {, A$ z$ g( J/ {5 V8 loffset_data.input_curves= &input_string;
( x! q& v& L+ l4 P/ doffset_data.approximation_tolerance= 0.01;
1 @& [, z: w2 s7 _$ uoffset_data.string_tolerance=0.001;" e+ p3 v' X# n# Q; o. U. {' Q2 F
offset_data.offset_def.distance_type1= &offset_distance;5 a9 S+ v$ X1 p6 \4 W2 ]% b- A" ~
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
  x+ N2 V! o2 c  OUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
  H4 m+ N+ {" o9 E6 D&num_curves,&offset_curves));
1 c. w! S0 n" [9 e2 l9,创建平面0 t+ P  q& u+ c% U1 ^) B. U
UF_STRING_tgenerator;
. y9 l2 O8 s7 @3 IUF_STRING_p_tge = &generator;* E" G# Q- K3 D5 T" l$ m0 S
; M, J% C& F' B' t; p4 l6 L9 l- ^
UF_MODL_init_string_list(ge);
- w# f7 e" }, S( n4 z+ V* H" y& GUF_MODL_create_string_list(1,12,ge);
4 J% l  N% a! e& s& P: x0 ?5 A4 i; q! I
ge->string[0]= 1;
: |% d+ w+ d% dge->dir[0]= 1;//指定线从开始到结束
, i2 r- e% n4 B6 A/ Q: H# Z: ^ge->id[0]= arc_id;//指定边界的id
* P- x6 X$ t! K) O6 e6 S: d3 r5 Ydoubletol[3];
6 z0 ?/ ^/ U& n/ Etol[0] =.001;//直线公差# F* S# p' \  c
tol[1] = .5* (PI/180);//圆弧公差
; Y$ B7 O6 {* X; E( ^! Ptol[2] =.02;//不起作用/ y) N" R2 I+ I/ O& W5 F4 @$ H
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
* r6 R# c  C' ]  v4 A+ y% g10,选择2 w4 D* x+ D" e9 \- Q
1),点选择
) c7 S7 }. X) Ytag_t point_tag;
6 z$ d  k. c( ~4 T6 Ydouble point[3];
, \3 N7 \2 E4 L8 g8 L6 w# E       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  0 S$ z4 g2 x6 `$ `$ z4 G
       intpoint_res;4 J& a- ?" j2 P- ^7 g& }# ]

* B- }! u! v/ z* ?7 a% k0 X' o+ bUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
' I0 [, v; O8 d5 Q/ A  _point,&point_res));
: X( V' a4 B" b5 d' q" m0 l* hif(point_res=UF_UI_OK&&NULL_TAG!=point_tag); ~5 Z9 Q' T" z0 H' \, s, E5 `2 k
{
" W. B8 R3 v& d: i! c }& C2 E. ~6 U9 y# K$ N
2),向量选择2 [) R; \  l: c( D" E9 U3 L
     int  mode = UF_UI_INFERRED ;! \' l2 m' O0 I4 J  F, f( X
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;: {$ Y1 T7 p( G" ^
double vec[3];
. ~! p$ X- ?# R1 \9 L6 ?double vec_pnt[3];
, j: \; f7 i3 b, @int res_vec = 0;
. e2 ^/ X: w# W. D$ ?* x     UF_initialize();  ! X, W4 C: E: q/ M$ S. `
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
% g" f, W! U; g" b1 f* E           vec,vec_pnt,&res_vec);
1 U- K2 W, m8 e2 X# @     if( ifail != 0 || res_vec!= UF_UI_OK )   
, H7 q# x) n3 @! Y# T0 o& G     {     
6 r1 J  z; W; o3 s3 H8 Q           UF_UI_ONT_refresh();2 Y3 s# N$ r6 [3 |1 {2 q1 _
           printf("No vector selected \n" );
- }9 z5 ~& F. l1 y     }
  x) J3 c6 b9 ]9 c6 s" A: Z: _- ~     else. M7 ?8 ?$ }2 J1 y& u
     {* Y( N( s1 H$ {& t( @, S
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
: x) o( X: O7 s                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );5 f9 C. T0 }7 S+ A
}
# f5 a! E0 b8 ?  ^( J& H3),平面选择
/ u6 y, u0 y* D$ x* E6 W8 |- ltag_t plane_eid=NULL_TAG;
: s' b* c( P- c# ]double orientation[9] ={0,0,0,0,0,0,0,0,0};
- ?+ t& ^' [& \' i7 r, g   double origin[3] = {0,0,0};  h8 f8 r. u% b& h: r7 v
   double pts[6] = {0,0,0,0,0,0};8 \6 E: {$ n3 w6 u, @! d
   int i, error_code = 0;
: _0 v7 w! ~/ C3 s6 \   int mode, display, response;
0 e( b" }! E  U$ x* m7 ?   mode = 1;                    9 P+ B5 `& w+ m% K- i$ [
display = 0;      
: c; a% J! w$ Z+ K7 vUF_initialize();
; R( ]0 q1 C! T5 s   error_code = UF_UI_specify_plane(
, n2 O8 U( t8 ^( v/ A1 r         "Select Plane", &mode, display,
* B0 M" ^8 d. Q: a         &response, orientation, origin,&plane_eid);
& t$ Y% d  G  p% T/ F" y) Q1 R! p" t
$ i5 I- L7 I. W0 O8 x/ i   if ( !error_code && response != 1&& response != 2)$ \2 M) W2 r8 E% Z- L
   {
  v$ i( E$ o0 ~+ s2 ~/ a" n' Z                     for (i=0; i<3; i++)+ w7 o9 k% L1 I- B8 Q" M
               pts = origin + orientation;5 {: ?  k8 X9 L) o4 K6 l
                     for (i=3; i<6; i++)
! M8 }( ?1 @' D  J- }0 m6 d' Y               pts = origin[i-3] + orientation;+ }& R- H0 Q6 @, m  T
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
2 Y( T" V* g- S0 E' a) ^9 Y   }
' ?  a9 J4 r, c3 T) C% n11,临时点,线
3 ?- V3 |0 d2 a+ z* @void display_temporary_point_line (double point1[3], double point2[3])8 N5 A" o" y1 ?5 {& `
{2 u& a! g0 a. G+ K5 {; a4 _$ L
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
; v8 K! `2 F3 x" K  UF_OBJ_disp_props_TColor;
# T( U- |/ w5 n5 S8 J8 T, o  color.layer= 201;. R* B; W3 k. N- Z6 Z# M
  color.color= 186;$ u, Z# j/ n; O0 d! d1 y. }  k, W
  color.blank_status= UF_OBJ_NOT_BLANKED;) B" w) A9 k; h2 K. x5 m4 g% y" ]: R
  color.line_width= UF_OBJ_WIDTH_NORMAL;
8 W# |* R" q! x* z3 c9 p5 [  color.font=0;0 [& h7 d7 H5 i% P1 M
  color.highlight_status= FALSE;4 s3 a8 a" l. t  t$ {
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;2 T% g# K- T$ Q7 U. B
! {/ S, u& t8 r* y2 R: R1 M" `
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
8 u$ D0 V. r6 o$ `UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
5 W5 I1 ?  \9 @% }) k' @( BUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);0 r, P# X$ `0 s% V
}, F9 u) y  G7 l7 @
12,WCS与绝对坐标转换2 Y7 M; Q/ W6 J% M8 L% a1 I! Y, E
                        voidcycs_wcs(double point[])
) s$ c: Z" {, Q# f{
4 o3 _+ p" h$ P9 W* `      tag_t  wcs_id,matrix_id;9 |5 X3 J: G7 D* {9 J+ [
      double matrix[ 9 ];
, O  @) F" C4 V! L; V      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
5 y2 ^2 h2 k+ ]( v      double wcs_origin [3],vec[3][3],point_origin[3];6 Q* g7 K, r# k; R3 ~$ g
      //1,得到工作坐标系
& L, }3 }5 A+ {2 o& R6 d      UF_CSYS_ask_wcs(&wcs_id);
- W) B" ?4 r0 L; j. f      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
6 \4 D8 i; W) n8 l, x' T  o      UF_CSYS_ask_matrix_values(matrix_id,matrix);$ |( C0 }( O* x. S& G
! h& S4 o7 @# h- |! J  w
      //2,得到工作坐标系轴向量$ s0 I1 j+ W  M
      UF_MTX3_x_vec (matrix,vec[0]);
/ `1 d4 ]2 L3 F1 s: M      UF_MTX3_y_vec (matrix,vec[1]);  t3 h( c. H# i
      UF_MTX3_z_vec (matrix,vec[2]);
5 k# {( w" @' j. W3 y
  ^; O1 r5 T) v- R      for(int i=0;i<3;i++)
/ r; O  _# A1 M0 _, d      {     
) J$ ^  g2 G( y            double tol;9 G$ h  O, e' y& j1 z7 Y
//3,得到点到工作坐标系原点矢量3 l8 |" F( e' W2 ]+ ]
            UF_VEC3_unitize(vec,0.000001,&tol,vec);: }1 B3 g& }; e. E8 C
//4,得到点到工作坐标系原点矢量  I, k4 B# W5 h* j. z; z7 b/ l
            point_origin=point-wcs_origin;4 V% R: e+ z* r- Y, u. y$ a: ^
      }
" z% }2 B0 ?/ Z      for(int j=0;j<3;j++)4 M" A$ @8 x2 W5 ^$ e/ }$ ?1 }$ U
      {
. Q& j6 a6 i2 ~& f7 H3 f: Z            UF_VEC3_dot(point_origin,vec[j],&point[j]);& q7 L/ Q4 g. g7 |5 M0 m
      }
2 y& d/ U/ J9 Z- j1 u0 }) `/ f/ `}- \3 g2 G' `" b$ [9 d. [& f
13,三点求圆心
7 s8 m+ I! b- `2 y/ |#include<iostream.h> ) |* I( D0 ]( P. _6 h; I& k6 I  B$ c
#include<math.h> 2 D! g# G- M( @( `3 m, x

. z) v( B7 u" g+ \int main()8 O) {8 ?/ J+ r
{: Z$ m; h( v( k" F
      int x1,y1,x3,y3;
  v& R3 K( I4 [      double a,b,c,d,e,f;8 ?) f# @. w! T- a$ U/ }5 k
      doubler,k1,k2,x,y,x2,y2;
% T$ [& U( V; T+ t      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
5 w# @; E0 p5 r; E2 i: M      cin>>x1>>y1>>x2>>y2>>x3>>y3;
9 ]; K4 n7 [; ~. _4 \  o      if((y1==y2)&&(y2==y3))4 z+ N" `3 f  M; G9 f! m; X) s
      {- q$ F* a" @1 p8 `3 \/ n
            cout<<"三点不构成圆!"<<endl;8 _  X; b& n; S* y  o
            return 0;
( c9 F) G) P9 D' v1 _      }, @7 f2 G, ?8 u# X  d
      if((y1!=y2)&&(y2!=y3))
& I8 M/ V/ l% |/ z: \" E. N7 R      {1 a9 y3 f9 I+ i: P7 V: P9 T
            k1=(x2-x1)/(y2-y1);
4 `. }) c$ A5 S; W$ u" Q8 d6 O" w            k2=(x3-x2)/(y3-y2);' G5 h  @- U: G" K
      }
# H, B7 l4 X: u, v% [; h$ J3 |- m      if(k1==k2)
9 l& k: o  R# T      {$ m4 \8 h, F& q" E$ }# _4 e, [
            cout<<"三点不构成圆!"<<endl;( a+ H& ^* F/ u) r$ W. U: k
            return 0;3 P8 T' y6 H2 h; y8 w. M
      }+ @. C7 N  l9 H7 @9 v" Z2 s
      a=2*(x2-x1);+ p7 o# r3 v4 q" U' J
      b=2*(y2-y1);2 B4 V8 ~* O! l. M( H  P
      c=x2*x2+y2*y2-x1*x1-y1*y1;
% n8 A2 {* }6 {4 _6 Q+ N8 f! \) U. c) g      d=2*(x3-x2);- M- {9 w5 H7 o+ U, W
      e=2*(y3-y2);" ^! Z5 g, R: k4 t- Y+ E5 I  {
      f=x3*x3+y3*y3-x2*x2-y2*y2;
* P+ `( y! L7 o  v5 M" @      x=(b*f-e*c)/(b*d-e*a);1 B/ g7 D  }0 t6 s0 K
      y=(d*c-a*f)/(b*d-e*a);; h" ^7 _- d8 u+ o9 W; d
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
+ `+ `8 V  _! v6 u* z3 K0 N0 s9 m      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));& X9 d2 X6 T) U6 J
      cout<<"半径为"<<r<<endl;
$ c( N' x- _; u      return 0;0 @5 D5 f' N; R; i
}
5 I+ C6 D# k+ I8 |0 `14,查找圆心
% b% y3 ]2 N$ ~# ]& [. S            UF_EVAL_p_tevaluator ;
  k$ a5 t% \* J7 m5 c' b            UF_EVAL_arc_t arc;
+ j, [) v% T, M. J7 ^            UF_EVAL_initialize(obj_tag,&evaluator);* U6 {; o) x% D9 w1 s. |5 H
            UF_EVAL_ask_arc(evaluator,&arc);
& G4 t4 I$ l9 T7 o& ]  X            UF_VEC3_copy(arc.center,point);           
& A5 _& W' z" F% [. v6 v! j( u15, message_box# R" ~4 }- k! U# D
void message_box(int *res_mes)
- D. k$ A; b& M6 r  A{
0 o4 T' l" @3 m$ V5 O8 @$ b# g  a9 c! f8 d      UF_UI_message_buttons_sbuttons;6 i. c/ {! Z5 D  C; d
      buttons.button1=TRUE;
$ ?8 q1 ?3 o- W      buttons.button2=FALSE;- X( H2 k9 W1 L- ]) H6 D7 J
      buttons.button3=TRUE;
* |- Q& t) l+ O6 x) h. u/ L3 }" H
      buttons.label1="OK";& ^, k: U) \, V5 A) v* V
      buttons.label3="CANEL";3 Z( ?& X. D" Z
1 ^) ]% V0 d$ E  O- x; g
      buttons.response1=UF_UI_OK;
2 X) l7 }7 M' K3 r2 `6 Y: Z      buttons.response3=UF_UI_CANCEL;( A* S# |1 \. C6 J5 T' M# ]% J

" R7 C3 T- _0 _      char *string_msg;1 H- O- [' W; x" C' D4 I% [
      char*material_msg="ALL selcted objects will be removed";
' ?( ~; E0 ]/ g3 x9 ~$ V' [' X      string_msg =material_msg;* O' P% [8 k9 u
  d9 j& K5 ~' a$ ^; P5 C0 F
      UF_CALL(UF_UI_message_dialog("",1 I+ I6 F- t+ H7 i. F
            UF_UI_MESSAGE_WARNING,4 A" v) ]. b+ [7 f2 O
          &material_msg,, S* E( m7 c! {  Y, @: N
            1,& s2 e7 A* O  _. u- }' J! W# ~
            TRUE,
3 K; ?3 s/ [! c            &buttons,4 A) x' N* p9 D8 F% z2 U
             res_mes ));
3 T4 N! M! e$ x# Y}# H% {# c3 E" D
16,选择过滤
6 t/ g  I: R' g' |static int init_add_face( UF_UI_selection_p_t select, void *client_data)
+ Z$ G% E' L# N/ v5 o{# B( N: I1 _7 [
      int nums = 1;
/ z4 n4 m% ^4 l6 _4 d. r/ {      UF_UI_mask_t masks[] ={
6 @0 u% _+ g* \" v' l1 c7 o, D; G4 D/ }            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
# R' l# ?) b: V& M
0 m: v; `" H9 K2 D            if(* }2 ^7 l4 y; Z9 x' G
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
. u, j* @# s9 V$ H, [, w3 U                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)4 a" Y; H; f5 t! U/ S
                  )  C& X& M5 C& n+ K
            {# m# w& b! Y4 P4 M( \: s% C% C) x8 D
                  return(UF_UI_SEL_SUCCESS);$ l* D) Z+ J2 O* Y7 X& M
            }  ^4 `5 |. D. V8 t2 R, V
            else- H3 _: z9 b( Y! q: N- i6 j
            {     ' U! e7 L$ u: ~. R. o
                  return(UF_UI_SEL_FAILURE);
0 X- S% T9 s# ]) S' v            }
6 X) S# {! {/ v- h' V' I; X6 s: S}
( G3 X* [: z. a& K3 }int find_tag(
, m" @9 N( _# i- w4 A' \                    void * client_data,//用以传输过滤资料
" Y  T* f" {# Q% v                   tag_t object//现在鼠标所选物体ID
; ~: J/ \! L5 B( Y2 U3 S& o                   )
& z/ v0 [2 A# H/ x{
, u1 d' p3 Y1 x! T) J  I  q; g      user_data *obj;, l4 B0 m; H9 o9 X) [- g
      obj=(user_data*)client_data;( d% c- d4 Y/ J8 L
      int find_face=true;//接受
: F) @+ X1 U. @1 I  t0 A- K0 [      char *string1;
$ H1 m- y3 k9 w* R8 z0 y! S      string1=newchar[133];
  E0 O, T. i3 _% W% p      string1=UF_TAG_ask_handle_of_tag(object);
! i# A6 x- Y! E; G      for(int i=0;i<过滤的数目;i++)
& H+ E4 O: a8 E. A7 e      {$ ?9 x9 b  J" \
- F  T& V# H! {, S
            char *string2;3 i6 f/ `' w" R+ m. i+ M# C% o
            string2=newchar[133];' _6 C1 Y' k3 o0 ~
            string2=UF_TAG_ask_handle_of_tag(物体ID);
$ C5 f2 a% l! X* t4 |            if(strcmp(string1,string2)==0)( e, R7 u* @6 D& J
            {; Z; _' h5 a+ ^; |
                  find_face=FALSE;//不接受
/ o" z; J+ k: m/ i; X' d" X7 z9 s# x7 i; \& h, v: o! w9 d
            }* z5 {8 ]3 \. j0 W
            delete []string2;
: a$ m1 j( K- W" ^$ d1 O      }+ [: f* S, u* ~, ^9 _& X4 j" a9 I
      delete []string1;/ o; k) U6 m8 i
      return find_face;' q3 T) X( h) v
}
0 r' w; B8 p, Y6 T/ Q4 T6 @8 M3 y4 ^, w! e' ~9 z& \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了