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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
2 x( |# ^! `0 k5 [% }
7,裁剪片体$ ^7 m1 u* F( h  `
tag_t  *trim_objects;
2 o- U0 w  E" O8 x0 s6 L  [( b& Atrim_objects =new tag_t[count];% N9 k: t$ Y% N0 L+ T0 W
trim_objects =bound_id;6 H9 N( z; I  J: O5 q
voidtrim_sheet()
6 N& i+ b( E( {, o3 e{) [8 }8 \) f, ]9 U/ Y9 X; ~
$ C2 c' v& I) R* |9 L% {  ^
      UF_MODL_vector_t projection_method ;
7 i$ U/ f% H3 X: |) k" V      projection_method.reverse_vector=0;
+ T4 q* @+ ?" `( y      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;9 y# W5 B& B' Q" T1 N# B
      UF_MODL_vector_defined_by_union_tdir1;
' P, e- Y2 t1 L7 z      UF_MODL_vector_direction_t dir2;7 g' z& s9 z( Y9 X4 e, ~. Y& `
      dir2.xyz [0]=dir[0];5 Q- _9 t7 c1 h  F# {2 ?% O
      dir2.xyz [1]=dir[1];( l" ]' O, w% b- R3 _- H' \% _
      dir2.xyz [2]=dir[2];
  Q9 L6 n# `8 K3 U8 i1 q" t      dir1.direction=dir2;6 b) j7 W8 L( o. k" K
: c7 S! u. @, m5 k1 C
      projection_method.defined_by=dir1;
, M$ \  l4 j2 [9 ?# E% w; f& a, Q' ?2 u' x4 `0 f! r
      double point_coords[3] ;* r4 e. _( Y8 e3 ]! M1 ]- `

) S$ ~8 m, h: o6 d4 i      point_coords[0]=center[0];
2 x4 K; m$ ?* }  L+ C      point_coords[1]=center[1];. D* Y# q' {: }8 W5 @
      point_coords[2]=center[2];0 L# ~  h) s0 d. h9 F. s1 f1 x

/ y; F- T3 T4 L/ S  d, C      int gap_point_count ;
( J/ u/ i7 [3 E) G) L% Q% ^' ^      double *gap_points;2 r$ L. ]  c) \# R
      tag_t feature_obj_eid;) F5 t4 r1 A& i' ~  F7 e6 M6 j* s
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,6 R' v5 D' Q: R9 w! {
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);- l  z; c. G" u% i" M9 A9 w1 O% Q5 ?

" N3 w- ^! |- v}1 t) n* d$ A. P" I1 o; P1 }
8,offset偏移
, l# X' d4 r$ m6 b: {* j' w$ x% [: S# q; ~+ Z
char   distance_str[] = {"10.0"};//偏移的距离
* `1 e3 ^1 ^9 u) @6 U
2 F) Z& ~. g' O) E( Y9 }8 D8 tint  num_curves;0 l) I" P9 }; I# z  ]- A- r
tag_t *offset_curves;  g) x& w  E1 ^0 \
UF_CURVE_offset_distance_data_t  offset_distance;
0 F# N$ w6 j" s6 N, i* y, V% y- T8 g8 Ooffset_distance.distance= distance_str;
4 a& X' }* @) A# d+ B2 i/ N7 boffset_distance.roUGh_type=1;
# k+ y7 {4 a& y3 s9 fUF_STRING_t   input_string;3 {: S4 @9 t! c+ Y
input_string.id=curve_id;//加入想要偏移的线
0 X2 |% `1 [+ Q( w& Y% c% [( o# \input_string.num=1; //偏移矢量方向数量
: t: _5 K5 _3 q' K, Dinput_string.string=&string_count;//偏移线的数量
  p- P4 q3 i; ]* V6 h1 o4 r+ `0 yintstring_dir=UF_MODL_CURVE_START_FROM_END;1 Y  A$ A/ R# S9 ]
input_string.dir=&string_dir;( L) |8 p7 c$ q6 Y8 `# G
% O+ Q8 n" k6 o6 ?& K2 O3 n$ [
UF_CURVE_offset_data_toffset_data;
# t( ]" ?: ^4 x" I' @( y8 Z) l$ T; d
offset_data.offset_def.distance_type1= &offset_distance;' G' C0 O( ^2 m
offset_data.input_curves= &input_string;
& @  M9 r) M, Y$ w& |  O- D- coffset_data.approximation_tolerance= 0.01;
5 N& D6 a% M# w9 toffset_data.string_tolerance=0.001;; \$ ?( p3 V: {5 i
offset_data.offset_def.distance_type1= &offset_distance;
$ J( l% L3 [. I3 y& A& X, l: D$ Yoffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;, ~9 ]" ^1 D( c+ x6 ]1 S% o
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
( v( r( K1 i* S&num_curves,&offset_curves));1 d: w4 K) Z& E1 \
9,创建平面
& T+ y1 o+ N3 I3 e: ?; EUF_STRING_tgenerator;
5 E* B; a8 c6 r0 g& O) \UF_STRING_p_tge = &generator;* K' h- ?+ j% K) k$ e8 y; l
* M- E( \" J6 F; D" }, Z
UF_MODL_init_string_list(ge);
$ l+ ~# A) v) _1 x8 ~) e3 gUF_MODL_create_string_list(1,12,ge);
5 p) t& Z/ T% g: S3 {8 C1 ^/ A
: \. ?; J2 J+ Ege->string[0]= 1;- `) T8 e4 R  p7 K9 Z
ge->dir[0]= 1;//指定线从开始到结束6 S: J# l, k, M. N
ge->id[0]= arc_id;//指定边界的id8 J1 x4 n0 `3 K: s
doubletol[3];. D9 i  [5 e) t
tol[0] =.001;//直线公差
. i- c: i, I' ~+ v& @tol[1] = .5* (PI/180);//圆弧公差+ W9 ^0 X1 o* r3 E: y, f
tol[2] =.02;//不起作用# V+ A9 W, C2 M/ ~
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
2 Z3 S8 z* [: Y7 U10,选择
$ h8 W9 z* l% A- S2 b* @) h: C1),点选择6 o& h8 Q* s6 r. U3 `& S
tag_t point_tag;3 l7 a3 |- `0 s. z9 R* f
double point[3];
' e- C$ e, E7 A! }) O& g7 J       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
5 E8 D& k( v3 q2 a7 P' f       intpoint_res;6 H! g) d- f( j0 B4 x) z( `
2 D+ z. P& o; v7 \) C0 f0 e% a, z
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
/ [6 h+ Q# M5 ~8 J5 D8 W6 k6 Ipoint,&point_res));1 o5 N  j5 E) o
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
- d( ^. s. l* o; h8 ^. f% S& l- V{
, J( v/ ?* w+ s: |- G }
9 }& `4 a6 z2 \- D2),向量选择
# M, y& u6 j: `; d     int  mode = UF_UI_INFERRED ;
) ]7 B) g: V% P     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
( x$ B4 Z. a7 pdouble vec[3];- {2 q, H5 `/ B; }+ }
double vec_pnt[3];
0 [+ }' I/ J1 l; }: t9 Fint res_vec = 0;1 m8 \- d4 P6 j# S
     UF_initialize();  
3 e' z) b5 f& i  M     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
; Q; h8 D+ ]' b0 N9 ]           vec,vec_pnt,&res_vec);
6 B1 N7 u5 A$ H/ `     if( ifail != 0 || res_vec!= UF_UI_OK )   4 e+ j5 ]9 Y) w( y
     {     & A& ~, r1 p9 E7 T
           UF_UI_ONT_refresh();: |" H$ H4 q+ k& R, V1 T
           printf("No vector selected \n" );* l4 |1 ~  n' C, ?7 I, K
     }
) ~+ C5 s5 E  Y9 b+ R     else* s! g9 i5 C8 c. ?. ?+ D
     {& B! l2 [3 O( `% V- O" h; u4 a: A
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
+ K: M5 e/ j- O* ^9 A+ _4 V( ~                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );  C2 v5 G+ D8 b& s1 m2 I5 q
}( U+ `2 T1 n  m  N1 q$ }
3),平面选择
: }! H  r& u8 M! \) I* t8 otag_t plane_eid=NULL_TAG;
0 k, D- [3 \# ~6 L$ g0 A' |) `double orientation[9] ={0,0,0,0,0,0,0,0,0};
- w! V  d4 K9 ?   double origin[3] = {0,0,0};
8 q# Y# S5 t  ]& r! [% l   double pts[6] = {0,0,0,0,0,0};3 ]; F& [, w! D+ j9 Y
   int i, error_code = 0;  P& f: Z4 E% ~
   int mode, display, response;7 ?7 I3 T: B1 E" ]
   mode = 1;                    
& _6 [  @2 u2 I. K; ldisplay = 0;      
: D7 B8 E, R, x; LUF_initialize();1 ]* d8 L3 T0 H( Y6 z
   error_code = UF_UI_specify_plane(, P( j0 p$ z* G+ F! H
         "Select Plane", &mode, display,
0 f5 j! {% x' [5 M, u7 o         &response, orientation, origin,&plane_eid);
" b( @- V# ?) y( D/ f
: S' g7 O4 z5 a9 h8 x2 m( g1 x6 @   if ( !error_code && response != 1&& response != 2)
/ e1 i; A: O6 M# t   {
" _: s& j! A* j7 L! d                     for (i=0; i<3; i++)
  v- c% U4 o9 \* e- C  B               pts = origin + orientation;& n- ?3 T6 W# B/ D/ q5 C
                     for (i=3; i<6; i++); d( U% X' @/ e" G
               pts = origin[i-3] + orientation;
5 \. k' T" R3 Q5 u- n/ T, \         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
7 r( A9 g6 @4 Z6 B7 P$ w   }
$ O3 _$ g) O( I. _/ p- R) G8 [11,临时点,线
  {0 }! Y. v) xvoid display_temporary_point_line (double point1[3], double point2[3])
3 ^/ Z0 Z, ]) U$ \{
6 y" k$ K( r' p" @  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
& Z' f6 c, @9 R, Y9 f  UF_OBJ_disp_props_TColor;
0 d' k) a( C+ C2 G  color.layer= 201;
' _3 l" x1 w4 ^% C  U2 l( K  color.color= 186;
% Q8 S3 X2 r" u9 K4 U' b  color.blank_status= UF_OBJ_NOT_BLANKED;
; J0 a1 }  D- ~  color.line_width= UF_OBJ_WIDTH_NORMAL;6 e( F/ m7 n; a% C( ~' u2 u
  color.font=0;. [+ W( r, e0 Z
  color.highlight_status= FALSE;+ |( j  W- ~* {3 g
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
. \% O. U& E5 U( T9 L' G( W# X5 i0 d$ M) g
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
5 \& G0 o1 I: K. K% m. uUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);6 X; j* h0 m; N- F1 P! ^
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
4 s7 |, c4 ~8 p}
# m/ m' x5 I* P( p12,WCS与绝对坐标转换
$ d- U6 \% c, b- O4 T                        voidcycs_wcs(double point[])
9 \) i( e+ M8 X( `{
2 i! b& n$ Q0 T+ @      tag_t  wcs_id,matrix_id;
% B: H& H% r; P1 Z# v      double matrix[ 9 ];' M& Y; T$ Q$ A6 A
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量8 w5 ~$ C: x% i+ A9 h
      double wcs_origin [3],vec[3][3],point_origin[3];
! u) k# g9 g' z      //1,得到工作坐标系
% i% y& l6 i) [' y3 v: K: W6 C) N      UF_CSYS_ask_wcs(&wcs_id);  ^% U6 T" H) L$ S9 }& K$ G
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
3 H; m0 w7 s' R7 c# i+ z' i      UF_CSYS_ask_matrix_values(matrix_id,matrix);
5 M- M( o) w# h" E
) p; K) F: z  B7 ?2 {( |9 {      //2,得到工作坐标系轴向量
! x. d+ V5 f  P* E* o" P! y      UF_MTX3_x_vec (matrix,vec[0]);
7 L9 M: U9 C  F6 `; H      UF_MTX3_y_vec (matrix,vec[1]);
. p; Q  s% C5 ^# \* K6 G7 Q( M+ x" N      UF_MTX3_z_vec (matrix,vec[2]);4 Z  G- n- l, s
$ w2 _" ~9 P5 }
      for(int i=0;i<3;i++)
) I' p- V  m+ ^+ O. J- A      {     
! c$ j6 f/ `- F0 Y            double tol;
+ s1 x% P0 R1 R1 x//3,得到点到工作坐标系原点矢量1 D: p$ Q/ ^2 c( i5 u8 z
            UF_VEC3_unitize(vec,0.000001,&tol,vec);5 t+ j  u/ `+ L1 y" [: m
//4,得到点到工作坐标系原点矢量
% i2 e0 j+ @8 o6 q" Q+ R* ~: g            point_origin=point-wcs_origin;
2 j0 o7 [7 p( }& Y: g8 u      }- t; h' _. o5 d8 V6 `4 d
      for(int j=0;j<3;j++)$ v) A/ K5 [  @* G3 M1 {
      {
, n2 M5 W# K0 K% G2 J            UF_VEC3_dot(point_origin,vec[j],&point[j]);4 ?3 g& s8 Q& f7 K
      }
1 w) E% |: A/ R# s+ D( j}
. U- I7 K& Z) b! b1 h1 j! I13,三点求圆心! g9 V( Q/ O& U
#include<iostream.h> $ |5 n) X% l5 \" O7 \2 [- E6 y
#include<math.h> 9 L0 b- V6 J0 f2 {3 m
8 V( E8 x7 O- W3 X. w( u' t
int main()5 }# Z+ Y) G, h3 o: h0 A
{
; K6 x1 ^5 \  \5 c: @: `% e7 u5 ^      int x1,y1,x3,y3;4 S4 @7 _  h" f3 j, |6 H6 F" ?
      double a,b,c,d,e,f;
. L) ]2 t2 u& a# t& \& V+ }      doubler,k1,k2,x,y,x2,y2;" Z; c2 f4 A0 K( x' X- z: i3 }
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
) c4 F+ b, O# V9 s      cin>>x1>>y1>>x2>>y2>>x3>>y3;
2 Z; [6 y* ?! |* ]* m, ~8 S9 k8 H: T      if((y1==y2)&&(y2==y3))
! e7 y2 E/ K' V      {6 g3 \" v  E& A) H' S9 Z5 h
            cout<<"三点不构成圆!"<<endl;
, M  t$ [* J5 u2 ]7 [            return 0;
  R" o3 W8 z5 q3 \/ Y! P      }& g. \& V( m* u2 h" X
      if((y1!=y2)&&(y2!=y3))
% t9 n# z7 b. k/ R      {
4 t! q; L% O5 I6 t) ]            k1=(x2-x1)/(y2-y1);1 K/ ^$ O9 b4 T5 p
            k2=(x3-x2)/(y3-y2);3 K7 ~6 p9 R5 M# R5 z; M9 P* t
      }3 Y- p4 J- M) q! k) o  M
      if(k1==k2)2 k- u7 L. x: m3 w) O, v, N2 n
      {
( Y& Q9 t# O7 o$ }5 b7 k6 ]            cout<<"三点不构成圆!"<<endl;/ p  R! c: s% D$ j. y
            return 0;2 w4 m3 f9 M: e. d3 `- j- s
      }/ ^8 F5 p' U; @3 p5 N
      a=2*(x2-x1);3 |- o6 A( \" O
      b=2*(y2-y1);, q" B0 e9 z: r/ J8 j( Y& ^5 r
      c=x2*x2+y2*y2-x1*x1-y1*y1;6 B% a) b- h4 B2 t6 H/ k7 L& t* S
      d=2*(x3-x2);# |* Z: S  P, b: S% h
      e=2*(y3-y2);( R4 o. p( n9 Y5 e
      f=x3*x3+y3*y3-x2*x2-y2*y2;
' G1 Z3 G  i6 @1 _( q      x=(b*f-e*c)/(b*d-e*a);
3 B3 C, q$ _, I# z      y=(d*c-a*f)/(b*d-e*a);
# i- P- t$ z: U6 ]( ]; r1 k( s      cout<<"圆心为("<<x<<","<<y<<")"<<endl;. U" L# |9 x6 @$ d+ {0 t, |1 l
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
; n' i# n* \4 J: c( }/ Z8 D; [" ?" b      cout<<"半径为"<<r<<endl;. n. h5 B+ E0 o( i) C6 d
      return 0;+ A0 \- c. F! q: a4 m9 _4 |% j7 r
}- l& x* ^2 X0 O8 C0 Q) j
14,查找圆心: M/ ]+ r6 \- i0 ]
            UF_EVAL_p_tevaluator ;  p5 H( ]. R4 ^, _: i
            UF_EVAL_arc_t arc;
3 n* V! N1 y  }; s7 D) M            UF_EVAL_initialize(obj_tag,&evaluator);  W- Y% A# u6 n8 w/ q
            UF_EVAL_ask_arc(evaluator,&arc);9 M! X; k, y5 ?" o! ]! `
            UF_VEC3_copy(arc.center,point);           
% z. e9 _  e" y# P' }6 w15, message_box
' \- u) k$ {$ N: @void message_box(int *res_mes)
* Z6 V9 ?9 \7 b1 y# }% z{
* H: ~& S$ a2 V3 Q# Z) j      UF_UI_message_buttons_sbuttons;
( q) W; m' v+ ~) u- ~      buttons.button1=TRUE;; b+ [3 v  ^9 F
      buttons.button2=FALSE;. J" e5 u/ p. L# n' G- q
      buttons.button3=TRUE;7 d$ |# y* w) [$ M& C8 W/ r! ~+ m
* i8 m# g& [+ b1 Z+ t* \1 q
      buttons.label1="OK";
' o: V& N9 g' i5 Q( u. @& i      buttons.label3="CANEL";
" H3 e2 l2 d/ S" [) d- _; T
& e4 q6 `& F/ p& P  P      buttons.response1=UF_UI_OK;, _$ }1 _. Z6 q
      buttons.response3=UF_UI_CANCEL;
  _- w1 ~, J# G6 s, l
5 X! a" @2 V& Y1 l5 |& C      char *string_msg;7 t% d3 h5 S2 `$ _% o9 C
      char*material_msg="ALL selcted objects will be removed";( e: V- ]- `; d* }/ V
      string_msg =material_msg;# ]+ x: E- a" H! a' `$ p9 b
1 B- x9 ^1 Y0 v
      UF_CALL(UF_UI_message_dialog("",5 X! Q$ W& i0 k9 ~
            UF_UI_MESSAGE_WARNING,
) S  S& |- J; Y9 Z1 h          &material_msg,1 q; N6 w; s. ]4 z& W5 N. G$ B$ O
            1,
+ O% L* A) Q, N: }            TRUE,, k; i! X% A2 l* q( ~+ [$ k
            &buttons,
$ b1 s4 d' t7 w; y5 T3 m$ O$ o% Y/ X             res_mes ));- i! N; I% a' ~, x% o' N
}$ o5 S  P1 ?6 K* ~
16,选择过滤
/ A+ I1 j, V5 W4 c2 Hstatic int init_add_face( UF_UI_selection_p_t select, void *client_data)
2 ~/ r5 T, |8 F  s& M  F{" c- x  z: O! S' Q. ]* U/ W
      int nums = 1;& n$ L  _. n0 A/ ~5 {" F
      UF_UI_mask_t masks[] ={
' T: z: Q7 v1 l% }            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};; g  \. W0 N2 o( Z/ ^5 E; W- ^

7 k! w7 v- t# G' l8 u" P            if(! [" r4 W' P. A+ b
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
, ~# m4 ^! b! G  ?! N3 V2 m! d                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
* C+ \/ @  ?" F                  )
! o% Z- `' v* A1 K' K4 f            {
; ?6 J6 J+ z/ G4 i) ]- j                  return(UF_UI_SEL_SUCCESS);
4 s1 f0 t8 F5 z  Z$ U' K* g            }( N# `9 n6 i$ c/ e8 g" R
            else" x" U! H% V7 N8 a$ A# ^
            {     
- J. B: e) E. _( k' @                  return(UF_UI_SEL_FAILURE);
( ^& }$ h. v, l0 j. K            }, ~( }% ^6 s6 i- `
}
& Y* [  _# B/ Q( d, s+ z0 Eint find_tag(
3 ~8 Y3 F: s# ^5 Z  [                    void * client_data,//用以传输过滤资料
/ B& q3 g3 F" h/ L# {. n1 c                   tag_t object//现在鼠标所选物体ID
3 J) `; Q. F& Q* B1 C                   )
  k9 @" ]/ B5 Q9 I& L& b5 [  w1 p{
1 B% e! P( \4 K      user_data *obj;; U$ f( Q6 \* z( {$ K! A
      obj=(user_data*)client_data;
2 e9 K2 t3 Q. L7 P2 X* ?      int find_face=true;//接受8 n0 y" `. M, P/ w# r
      char *string1;
8 f# o8 g  i& e' a$ N      string1=newchar[133];. n# t8 k* p) i0 P+ l; P3 S4 |3 r
      string1=UF_TAG_ask_handle_of_tag(object);9 R+ E+ m2 @" _
      for(int i=0;i<过滤的数目;i++), ?& x( b9 m" X. H% V- W9 }
      {- f3 ~( q( l* P( h! e. F9 E, I, g/ Z' w
; a+ k- }: _+ Q. z7 a' g0 r
            char *string2;
' I, m# h: G9 N; T9 I0 n            string2=newchar[133];1 g7 k7 x0 {- U' R& ]4 ?
            string2=UF_TAG_ask_handle_of_tag(物体ID);
2 q# H, l9 @7 q- B            if(strcmp(string1,string2)==0)4 C3 R2 w% H- y: r9 y
            {! Y  W1 `' C) g$ {( p# Z. G; W' j
                  find_face=FALSE;//不接受5 c' X1 {8 c& {# Z
) ]& \; G$ S  i, o
            }
' y7 G7 p: k2 w2 L            delete []string2;
- r/ `" v) P) D; I1 a, |      }/ A/ {8 V; |8 w8 g5 a- G
      delete []string1;+ k# ~2 W' r; E1 c0 `" I  B
      return find_face;
& D+ |1 t$ U% Z( R; R7 h}
4 B' F0 x7 @  Y
- w' P9 @  L2 s: u2 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了