PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
/ g2 C% U$ Y$ o1 V+ w
7,裁剪片体& P1 l6 U$ y1 f
tag_t  *trim_objects;5 j$ V- c' y) ~" `) O% G
trim_objects =new tag_t[count];
! S( }7 B, Q0 h9 k1 utrim_objects =bound_id;) w; @" b. N' j0 x7 E
voidtrim_sheet()/ Q7 m* u! i1 J  A
{
: o' M  [8 G* L. v/ R
1 I+ |; Y+ y: K# k; _5 W, p, ^      UF_MODL_vector_t projection_method ;
, O; ?0 q/ X# e      projection_method.reverse_vector=0;
% {! N3 n6 L- G7 ~) x& p3 }      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;% C) o8 L8 |: L* M, W: V
      UF_MODL_vector_defined_by_union_tdir1;! G6 w: d( R: Z6 M+ c( G
      UF_MODL_vector_direction_t dir2;, U% l" @$ w& G
      dir2.xyz [0]=dir[0];' o% |5 i, b' M/ J3 O! B3 F( @
      dir2.xyz [1]=dir[1];
' q0 T; W- G( @5 |, S; ~- A      dir2.xyz [2]=dir[2];
' S* l1 g; l* Z' S- I      dir1.direction=dir2;
! a6 ?$ J. Q" s6 Q& _) Z% I0 U7 i: m2 Y
      projection_method.defined_by=dir1;0 i4 T. m! G! k% v
) r; O' S9 M0 f* c% f7 B
      double point_coords[3] ;6 |2 J8 `+ P2 H$ O% F0 ~( a

& \' g. Q% o* }  _$ L% x      point_coords[0]=center[0];
+ Q) {  e- z& X4 b( e* ~      point_coords[1]=center[1];
5 |4 q+ E$ e7 u      point_coords[2]=center[2];
; p& q2 H1 I) F" ^& |2 [" T! C3 L. R  i0 E9 N5 T* l
      int gap_point_count ;5 P+ Y+ i: Z8 H
      double *gap_points;7 y. K1 d) x# d! R. i! g9 i
      tag_t feature_obj_eid;
; n( b6 n: t2 r+ |+ E+ @+ Z' \      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
6 H7 N" x3 Q- u                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
4 L  H! l" p) O1 {0 G" }) p1 Q2 }5 U& T8 C
}
5 x; ]/ K+ K, j) ?# ?8,offset偏移
! \% l5 f* _; m
+ ^$ j3 W0 c6 Rchar   distance_str[] = {"10.0"};//偏移的距离
0 c" X' Y' i, _0 J! [6 W2 @1 g' t% a" Z- D1 X. ~
int  num_curves;
$ Q3 s% q3 p( u: c" |1 Jtag_t *offset_curves;. L) y2 ?" T- u- m1 K3 v
UF_CURVE_offset_distance_data_t  offset_distance;
2 ^; |: J- }6 U! p9 a7 x& i# }offset_distance.distance= distance_str;
# J" E6 ]; V/ k! B( toffset_distance.roUGh_type=1;( @2 `0 x& X  ^+ J) Y& a
UF_STRING_t   input_string;
7 M$ \* Z! G6 n+ `: ^+ Rinput_string.id=curve_id;//加入想要偏移的线/ d, M/ A4 z1 h% P' d
input_string.num=1; //偏移矢量方向数量/ g7 n9 e% A7 T
input_string.string=&string_count;//偏移线的数量1 @( I, I0 p# @! q- D( w
intstring_dir=UF_MODL_CURVE_START_FROM_END;
- z9 q1 \6 x& ^input_string.dir=&string_dir;
! m2 T0 d) p1 o: Q, Q8 t% y3 L/ d  _1 {2 Z, h
UF_CURVE_offset_data_toffset_data;
- z  g( a5 G1 ^) H8 K4 C" G# E( d: D8 Z% q- s7 q0 w" U
offset_data.offset_def.distance_type1= &offset_distance;
' n6 A! |- G) S( ^offset_data.input_curves= &input_string;: D1 Z+ l, I+ T6 ~+ R: ~
offset_data.approximation_tolerance= 0.01;
* A+ V( e" X2 b1 Z; qoffset_data.string_tolerance=0.001;
7 r# S( E" E4 u4 j& Z+ s3 b1 L4 Voffset_data.offset_def.distance_type1= &offset_distance;2 |2 @9 ?0 d+ B0 V! `. c
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;' @8 ~9 G$ j6 f: L6 Q
UF_CALL(UF_CURVE_create_offset_curve(&offset_data," F! W, O; ?+ y
&num_curves,&offset_curves));: N; r. h5 ?( v  M% H4 Y0 @
9,创建平面
' s  @: U2 ^3 U" ~UF_STRING_tgenerator;
/ a; b$ K2 H/ B9 n- VUF_STRING_p_tge = &generator;
7 w) N4 v: p0 |2 \/ C7 [6 R- J) i
9 n8 J+ R+ i3 N( x/ c  H& TUF_MODL_init_string_list(ge);( n5 [$ P% H6 s$ }
UF_MODL_create_string_list(1,12,ge);! r4 ]8 _- I+ P6 n2 S4 p  Q
- K# W4 x+ p2 h1 q) p5 O$ Y% G) ^4 z
ge->string[0]= 1;
9 w0 V! A1 P0 Xge->dir[0]= 1;//指定线从开始到结束
3 B- o3 o, _- L* a$ o8 Qge->id[0]= arc_id;//指定边界的id4 L8 |0 h/ O5 u1 H. l: ~% u: O
doubletol[3];/ R+ Q3 ^9 j" [# p
tol[0] =.001;//直线公差# g2 v* q! o( r$ j: m( u
tol[1] = .5* (PI/180);//圆弧公差
# _7 P" q% O3 f3 Y( h" f, K. Ltol[2] =.02;//不起作用* l: P) ?" N. k- f. [! W7 l
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));& o0 O9 B7 D7 N, W$ H3 \
10,选择" p& t9 S! e$ ~1 u- y2 G2 b
1),点选择
: d. U) e4 d+ r9 o- W( Ktag_t point_tag;
8 S. |+ l- l% w4 Q8 q  Vdouble point[3];
! Q+ F" y. I1 _+ R7 q0 I       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  : {' \  N( ]! ~  J
       intpoint_res;0 P% J, {$ D& R+ T" @
; K8 d& ?. A: w! r1 {
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
8 ]% G: ~  y1 `8 W; p* U1 `4 g3 Gpoint,&point_res));
3 y# @$ Y, S6 m( h9 e7 c( `* {6 pif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
# X9 R  L2 ]: x. Z' i{
$ F' W8 I1 j  m }, d/ P& K* Z4 v) I% j8 {3 B% w
2),向量选择
2 L. F! f: K+ I% E     int  mode = UF_UI_INFERRED ;
+ D: y9 V7 `% ]$ m/ E5 V9 U1 O     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
8 d; ]$ Z0 k; ~( ~. Mdouble vec[3];
3 y; Z) _% q9 C3 @8 |) ldouble vec_pnt[3];3 W, C$ s7 m  E
int res_vec = 0;
  \  P4 N  L  q     UF_initialize();  7 Q0 Y9 x; }3 l! E5 y3 `  F- m* |
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,3 r1 j7 F! f% Z
           vec,vec_pnt,&res_vec);
" I5 ~7 M  C- Q: v     if( ifail != 0 || res_vec!= UF_UI_OK )   9 q( B6 F; Y1 V% a' m6 n7 {
     {     
! E: _" f  |" S- h" m+ a  a8 N           UF_UI_ONT_refresh();# S& O- m& q2 I1 q9 G+ c
           printf("No vector selected \n" );
$ L( \- y! a4 P8 D# _4 M/ T7 M     }* e8 F' t8 t5 }- S1 O1 c: @
     else- w/ s1 v9 I- |3 }
     {
7 Y+ W0 |; E) {) u, e8 g           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
; u' D/ F, B6 J' \) x& J                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
6 o( _; _& p1 D' M* H1 H& r+ Q" E}9 |& _$ [1 r' b: ^- g% U! L
3),平面选择  p  Z$ S3 @" \" i$ \! z
tag_t plane_eid=NULL_TAG;6 D8 `0 t1 s0 {9 L
double orientation[9] ={0,0,0,0,0,0,0,0,0};' E! a- N' V8 R! U
   double origin[3] = {0,0,0};6 X6 |- U1 f- m; y) T1 z
   double pts[6] = {0,0,0,0,0,0};3 W: i# ~: e2 F3 B- {
   int i, error_code = 0;2 S" K& d" s! j* }% J  k7 A
   int mode, display, response;
: T8 d6 \( X, @3 p% q# X   mode = 1;                    $ @. E4 q# i7 K& h/ S# i( @
display = 0;      5 M! U& q* G" u1 K
UF_initialize();; w" k0 S: k* O# v
   error_code = UF_UI_specify_plane(
7 C; ?5 i) y0 i         "Select Plane", &mode, display,( C. B+ Z4 `% A# z8 ^
         &response, orientation, origin,&plane_eid);
; M; v4 R* b4 |( X8 @
+ o( J/ l+ \* L( e" m   if ( !error_code && response != 1&& response != 2)
" [! v2 h+ G8 X+ t# F( o   {
) y$ ]3 J+ x- U+ p" H                     for (i=0; i<3; i++)8 t; x. B: l7 S  V0 l
               pts = origin + orientation;; ~" a# R+ i6 D3 B1 O. O
                     for (i=3; i<6; i++)
- @- g# i3 e# M               pts = origin[i-3] + orientation;
: `' a8 \, C0 V8 o' F- _& B" N# E         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
- o% L7 c! V6 a1 {$ t; S1 Z   }
8 k! i6 \5 O' c1 Y11,临时点,线& [. @: q$ D. Y
void display_temporary_point_line (double point1[3], double point2[3])
4 T( p, ~" }6 h7 M! Y' Y. Z{
7 V  V& u% E2 ]$ m7 Q0 m  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
. M5 N9 W$ G' X7 l* }  UF_OBJ_disp_props_TColor;2 D- i% P: K) x. @. Y6 ^
  color.layer= 201;
- u4 V! d" ~/ `  color.color= 186;/ b/ H8 [, h8 R( H3 ~
  color.blank_status= UF_OBJ_NOT_BLANKED;
0 Y3 o9 j0 Q+ G3 U5 W  color.line_width= UF_OBJ_WIDTH_NORMAL;
& _6 M- ]3 B  K+ j1 ~  color.font=0;
- @" Y. v" _) m$ q) w( h  color.highlight_status= FALSE;- _7 S# m8 E2 U3 s) u
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
6 \5 ?0 v1 P$ u( a$ T* O: k. e9 g
5 I; M* f4 O/ s5 g' ?; KUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
) g  Q. j* a5 V- _' F2 IUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
# I5 f0 ^" ~# _. B. r3 yUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);; P3 H: j9 p) v, K; M
}
% w1 Y3 {4 t. O8 R12,WCS与绝对坐标转换1 H8 v- e* U. P3 r
                        voidcycs_wcs(double point[])
+ T/ l, ]( n) v: ]! x# D' V{& x; O; Q% c+ p/ c5 U" H0 Y
      tag_t  wcs_id,matrix_id;
0 Y+ B9 k9 X# ~: v, b      double matrix[ 9 ];
- c  V$ s1 L8 e& N0 L6 y      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量. y9 Q3 J: k( {4 k; ~' J
      double wcs_origin [3],vec[3][3],point_origin[3];
9 o" b$ d- _1 i4 q. U- Q      //1,得到工作坐标系1 M5 F! k1 d# j; M! w+ d
      UF_CSYS_ask_wcs(&wcs_id);0 P+ g5 }  I3 _
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    1 |6 ^2 D/ |9 C0 e1 k" ?
      UF_CSYS_ask_matrix_values(matrix_id,matrix);8 l4 j: A$ W/ \8 y2 \4 K
# u' M( T9 K) x) r2 K0 x
      //2,得到工作坐标系轴向量
; w* @: w% e! m7 U; _      UF_MTX3_x_vec (matrix,vec[0]);
3 p, O, g- u8 y! [      UF_MTX3_y_vec (matrix,vec[1]);. E1 b6 z- @0 G- f, V# ~
      UF_MTX3_z_vec (matrix,vec[2]);
9 I  W  t4 C8 Z$ \( f& W% Y& `9 D. f- N7 h
      for(int i=0;i<3;i++)
! W0 L9 Z/ n; _3 h      {     
# ^* r4 Y( i' ]; w  E! G            double tol;9 R! B' e2 j4 J) v& p/ f' O5 O+ ?
//3,得到点到工作坐标系原点矢量
( x: j- X5 R4 F3 E            UF_VEC3_unitize(vec,0.000001,&tol,vec);
% Q0 K% O5 l1 c( T% N//4,得到点到工作坐标系原点矢量" j. D3 W( V/ s; ~% u
            point_origin=point-wcs_origin;
5 n; X4 u. y7 |/ C" y4 t! i0 [+ h5 D      }$ a1 Q$ ]+ g9 s' B4 `' J  {
      for(int j=0;j<3;j++)" i4 F  j3 J9 q: t# l- l) I7 F' E
      {
4 x9 s8 n* D, e  m/ e, q2 m            UF_VEC3_dot(point_origin,vec[j],&point[j]);
, }. t8 N- R7 i' p$ P: ^$ f# \( a      }
4 K# M( D$ y( G  E- U5 o1 I}. e+ y3 N9 l: [( U) o' @
13,三点求圆心
! }/ F6 B2 c  r$ d+ ]$ V' K! Q0 e#include<iostream.h> 7 [1 W0 Y$ y/ ], ?3 g9 ?
#include<math.h>
6 z9 W9 e3 y3 p
1 s; q  L8 H0 Y/ Pint main()
. K0 D$ z  J8 T( @' U2 Z1 B5 e{! X4 |! |' V& z" _- `
      int x1,y1,x3,y3;
8 v1 d5 v( T8 u+ C      double a,b,c,d,e,f;9 s, v; b" b+ q& [( E' u
      doubler,k1,k2,x,y,x2,y2;
! y. z" O  p1 ^  x4 S      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;0 O% b& B# H; r  c7 K3 D  }1 c
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
6 L, v% w; e1 r, U. B      if((y1==y2)&&(y2==y3))5 k6 p: \4 O) V4 t
      {
7 D- N% ]5 s7 D8 Q% O            cout<<"三点不构成圆!"<<endl;
/ W; ~5 F3 m! p( [: l2 c            return 0;. A* K" ~4 D, F, ]" E
      }- f( o* I; [( s
      if((y1!=y2)&&(y2!=y3))
( O) T+ i& N; E2 W/ O' x      {( ^1 o. P. P2 r+ p
            k1=(x2-x1)/(y2-y1);2 R2 K( e# O* W6 n9 I
            k2=(x3-x2)/(y3-y2);
& d# D1 _, a3 l/ d      }$ f3 l0 y, m% {; Q7 ^4 A6 E4 X
      if(k1==k2)
% W' w$ r2 F6 R1 k5 X, w1 r      {) N, _& |( s" @- v( R
            cout<<"三点不构成圆!"<<endl;! Z, g* y; y3 m* ?
            return 0;
6 b: z5 l5 j. i, {0 ^! _      }% x8 v3 l; W1 d
      a=2*(x2-x1);
' i4 Z. b# F' w1 ^      b=2*(y2-y1);
1 K, }' Z* T1 f( H! x3 l( Z; }      c=x2*x2+y2*y2-x1*x1-y1*y1;
" n+ z& V4 t9 ]/ l      d=2*(x3-x2);
# H$ ]# m# j1 ]1 w  i      e=2*(y3-y2);
: p/ m, ~3 T# X3 G& w      f=x3*x3+y3*y3-x2*x2-y2*y2;
9 o$ i, O- E& N" E      x=(b*f-e*c)/(b*d-e*a);& v0 n# X$ c0 v3 ~; R
      y=(d*c-a*f)/(b*d-e*a);3 Q: G/ q& L% W  z$ z
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
& f7 v8 ^- }# z* t( k) s* z* p      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
0 I3 K, ~" v+ g1 i' F7 p2 S. y      cout<<"半径为"<<r<<endl;6 L5 v! {. }  d
      return 0;
$ l* L0 x# T4 z( l9 w, U}
) J8 i; }% Q! p# |14,查找圆心
% a8 f# t1 T: H% Z! U6 I" G1 C            UF_EVAL_p_tevaluator ;3 y5 C/ r2 M1 p
            UF_EVAL_arc_t arc;
" a6 S; a7 S' T! X$ a            UF_EVAL_initialize(obj_tag,&evaluator);+ V- V* Z1 ^0 M4 g3 L  p0 }2 \
            UF_EVAL_ask_arc(evaluator,&arc);; a6 `( l6 s6 y' h4 F
            UF_VEC3_copy(arc.center,point);           
6 j. T2 Z/ P4 O" S. E15, message_box
/ X7 a! N# a( `void message_box(int *res_mes)
5 [; }# m, C* I& T& B9 H{; Z7 X0 J- u" T7 O! ~; L/ K
      UF_UI_message_buttons_sbuttons;
7 b: M) s  z9 O; h      buttons.button1=TRUE;- ^& J/ @5 A. H2 `1 i+ ^
      buttons.button2=FALSE;- n4 h& W$ X# O7 A3 F3 q
      buttons.button3=TRUE;
( D& z7 S( Z; U: T" p; S9 \
' C. T* H, o+ z; s2 M      buttons.label1="OK";+ q7 r, p# N2 e5 ^5 w2 a1 d
      buttons.label3="CANEL";
/ ?; w/ D, Q, Y( s" Q! h* f) Y8 d- _# X+ o( k0 T% `
      buttons.response1=UF_UI_OK;
! ]* F# Z1 ^! E- w      buttons.response3=UF_UI_CANCEL;+ A5 d2 p9 ~2 G" d3 s# u0 h

: s) {2 t  H+ ?+ E  |4 u      char *string_msg;% m( I& O8 L8 E
      char*material_msg="ALL selcted objects will be removed";
6 J/ |" O6 {2 y2 p      string_msg =material_msg;
. x& t1 n+ z0 E5 B( h. A0 w' ]( q) U7 L# {
      UF_CALL(UF_UI_message_dialog("",
4 D( J- b8 [2 {            UF_UI_MESSAGE_WARNING,
$ f" r$ _# \! g) K          &material_msg,
" T8 q5 F. `* ]% C            1,% y! `/ F) p" I, _/ Y6 |
            TRUE,4 H+ s/ j) j# d, I+ K& c9 F
            &buttons,
  A3 n. S3 ]" E* p# W$ _$ ~9 l+ {             res_mes ));
+ g9 @; q2 v0 q' Q+ V}4 c( U' x+ w% [9 O
16,选择过滤$ q! O6 F! O5 I! J5 ^+ D' D5 ?) A
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
) p/ T* V7 V. v+ ]: j4 O) U{4 U" N. D; X! E1 p6 f
      int nums = 1;7 j5 O" P5 b3 s- V( j0 b
      UF_UI_mask_t masks[] ={
7 U/ t) Z  H( O0 e            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};5 P3 u7 S; s( y) p" I' ?

8 A7 |; |6 I  ~" L- }! N- o% }& l            if(
4 N% u, h7 h. g  ^                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)* H8 x5 l' |6 R& l, }/ A
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)1 }' K8 j. J! ^2 ~# U* s2 x
                  )9 s! W0 f! h3 _; n- y
            {! T1 L" {# k, F' x6 H1 C% ^
                  return(UF_UI_SEL_SUCCESS);
1 A2 f3 D% _. C$ f            }
' O) N' I/ G; C  A9 g* {            else2 C! W0 h7 ~6 y# p
            {     
1 u* t; \9 U1 @1 E3 T* o5 K                  return(UF_UI_SEL_FAILURE);
! p/ X" ?* ]1 {. R  d! F, |# E            }4 H" |% m9 o, @( K, J3 c) C* W
}; w+ C& d, `$ O3 n
int find_tag(
- K. Q0 {, m) ~                    void * client_data,//用以传输过滤资料3 _, n% I/ v- @8 H% O$ S+ x
                   tag_t object//现在鼠标所选物体ID
. ?' M0 @6 w( J7 e2 f/ o                   )  L4 c+ P2 k* t- G
{
' M' U7 r# n1 k# W6 ?      user_data *obj;( H) Q" s! R% Z$ y% m
      obj=(user_data*)client_data;* Q8 d/ `& ]* x$ A( `( v
      int find_face=true;//接受
- j. N8 T( b4 X( R$ M* F9 r      char *string1;/ l6 c3 D; [) P$ F% Y+ n. i5 Y
      string1=newchar[133];
; m; s4 X% X0 y. E' }      string1=UF_TAG_ask_handle_of_tag(object);' W9 t0 D* ]6 x
      for(int i=0;i<过滤的数目;i++)4 x, e/ j6 o3 y+ S! k
      {
9 Q, |0 o3 ^& d' _# N$ s
# s4 j1 B; _; c0 I! h            char *string2;
- `0 r: T7 a: @4 r2 x* \            string2=newchar[133];! _/ r4 i6 o% v" O
            string2=UF_TAG_ask_handle_of_tag(物体ID);
: N" [( y+ S. U; T5 C. x            if(strcmp(string1,string2)==0)7 _2 ?5 Z* v3 }& L' o' i, c. Y/ M$ ~
            {
" s$ G8 [0 l* g# V; u7 l                  find_face=FALSE;//不接受8 @2 g7 J3 x* x# L! k, T- ^4 c
, B; |$ H) N$ m% H' A
            }- ?, O- {  Q; ]$ n
            delete []string2;/ F4 t5 \5 w9 l" ?% G$ z2 D
      }
/ F: {, o( U+ }3 _: q) C; R: k) K- J      delete []string1;3 B$ R$ V* E7 \! [( ]9 ^
      return find_face;3 j, L- K4 Z. p5 T4 O4 a7 v: q
}
- D# o' q$ m# ^) D/ A6 d: _. C9 ^5 ^4 A
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了