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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
$ O3 N9 l3 S, n8 U! z* o/ ~
7,裁剪片体
- i$ a: A. v4 S7 qtag_t  *trim_objects;
& Q5 l/ I* [9 |trim_objects =new tag_t[count];
" S8 H, a1 [# @- D5 v1 ptrim_objects =bound_id;( F. K' U8 Q) v- H. W0 w- `
voidtrim_sheet(), d$ w! ^) ]8 D% q" E* D9 F6 g
{
7 b# b$ q) e' N
1 ~! j2 [$ x7 Y1 ]. u5 t, b      UF_MODL_vector_t projection_method ;$ o9 B& i, Y  Q" ]) `/ V
      projection_method.reverse_vector=0;
) I+ s/ O2 D5 _- G  K9 F0 `; H/ _      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;9 y) ~* D( b4 j4 O
      UF_MODL_vector_defined_by_union_tdir1;
5 w- o, K" O/ u      UF_MODL_vector_direction_t dir2;
: t, T: e/ C0 I      dir2.xyz [0]=dir[0];
  V6 u! [. ^/ D$ F7 Q; u      dir2.xyz [1]=dir[1];, |. b0 R& {0 }6 c& b: ~4 T  t
      dir2.xyz [2]=dir[2];
) E1 L! y( d* C* B* V      dir1.direction=dir2;4 ~1 ^5 s, {; p3 M2 A/ h5 z& P

1 R4 |0 B$ t" v  y- E0 c      projection_method.defined_by=dir1;; R1 Y! w$ [! a. c1 z* S
4 z6 ~2 e2 i4 m" s) i; V: h3 R2 [- w
      double point_coords[3] ;/ X+ y8 F2 }  d- q7 l9 }$ O3 p

  ]8 h( Y  W* y      point_coords[0]=center[0];
( e  U4 ]! R/ I" {# i      point_coords[1]=center[1];2 G9 o) S: H* v. _7 k
      point_coords[2]=center[2];6 g$ G+ |6 y2 d  l# F
* A8 }) l$ r, c
      int gap_point_count ;' l  j3 [  s6 N( J& q  H
      double *gap_points;: q# o/ F# {' c' S
      tag_t feature_obj_eid;( N8 J! U4 U7 P& C; l! F
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
; g, M" T9 G5 ?# F; T6 U                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);( b7 B- U' d/ _5 c" n0 o7 L& i

& \" N% Y' Q& q. `- W}
, o1 r' q2 p, {) D8,offset偏移9 J6 O& b5 a4 a4 O% A

8 h" ]2 z0 k- P/ cchar   distance_str[] = {"10.0"};//偏移的距离
  h0 X% {" t, i  u) r4 V
5 T7 H+ N. C# C: Y, ^; w0 m  d) q) lint  num_curves;7 w# e' N1 p: P$ I: ^
tag_t *offset_curves;: H: t9 y/ v7 B0 @3 [4 k  U: A6 [) G" @
UF_CURVE_offset_distance_data_t  offset_distance;" j. M6 _, H8 c. O
offset_distance.distance= distance_str;1 d3 Q9 u+ \* p( b/ y
offset_distance.roUGh_type=1;
3 x) M' x6 J  b, tUF_STRING_t   input_string;9 L0 L& e! w: M% M7 O5 |$ S
input_string.id=curve_id;//加入想要偏移的线! `" o$ {* r, ?! }
input_string.num=1; //偏移矢量方向数量
9 }7 ?* I( v! r4 P% yinput_string.string=&string_count;//偏移线的数量
3 P/ M/ E8 N2 ]. Q4 ?intstring_dir=UF_MODL_CURVE_START_FROM_END;: i% Y" g+ e1 F: J* \2 P
input_string.dir=&string_dir;
7 ]1 P' f5 V0 e: t
3 ]/ h3 g+ d1 G. j/ u$ C( n- t( wUF_CURVE_offset_data_toffset_data;7 S3 t9 W/ p# q( g
$ }4 U4 \7 ^- Y- g3 l. P9 o
offset_data.offset_def.distance_type1= &offset_distance;1 f6 Y3 v% {) e4 `' z
offset_data.input_curves= &input_string;7 L$ V) n) R) T/ U. i6 k# G% j
offset_data.approximation_tolerance= 0.01;" U+ U6 T2 A! ]
offset_data.string_tolerance=0.001;
" n7 o. f, `4 d6 ooffset_data.offset_def.distance_type1= &offset_distance;
1 ?7 ]0 y- n* F8 P* r, p+ w# u$ \offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;4 B# A6 N4 R* A
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
. c7 \. a( l7 p&num_curves,&offset_curves));
7 u$ \* \) J- z3 j6 \. V3 h' k9,创建平面
0 b+ i& M! o* O1 ]& u7 P3 AUF_STRING_tgenerator;& Y* b& M! v3 E! T4 i
UF_STRING_p_tge = &generator;
8 Y  p7 L# \& D8 q: R/ x* v, ~$ L" q0 o- k2 [
UF_MODL_init_string_list(ge);7 N5 k9 a0 S6 _: P6 V
UF_MODL_create_string_list(1,12,ge);- D  w, q+ r: j  i  E% n

. z2 p( m, _8 z+ ?2 R. F9 V: bge->string[0]= 1;
) _" w& l; w- bge->dir[0]= 1;//指定线从开始到结束2 S8 A$ h: h( V' d. x) f" _- b' F
ge->id[0]= arc_id;//指定边界的id/ r9 d0 d! O8 m
doubletol[3];; o7 e8 X$ ?3 U# P
tol[0] =.001;//直线公差; }/ V3 J5 O0 l8 p( M7 b6 p
tol[1] = .5* (PI/180);//圆弧公差
7 C6 K2 b" h! f7 M& a  Ytol[2] =.02;//不起作用
% b+ t0 c; ~, O5 d" r1 H0 x' ^UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
/ c* G) X/ ~9 D. q$ u10,选择
& @/ n/ |+ X% m1 H: t- G, A' g1),点选择. y* e$ A& t( c& e& T+ G# V5 G8 B
tag_t point_tag;
9 S( e+ G! x! [' `double point[3];& ?6 c# F5 V$ E
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  8 W$ Q. N( a- z' ^* @. X, z; V* X
       intpoint_res;9 I) s' a" X( b: G( K; Q% w
- \2 z3 \( a( x  E: H
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,! y5 o* `# m6 t4 S) Q9 U8 x
point,&point_res));
, }" Q5 v' m/ ?+ V8 a& }& Q: B7 I0 R2 Aif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
2 e6 H  ^" m" D{
  I" ^. K# P& k- {0 S7 r }- \( v, @) \- ?. S: y
2),向量选择1 s9 _/ F6 x  u* s% e- w# z
     int  mode = UF_UI_INFERRED ;
& k4 y5 C: P. A     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
: r+ B& Z* s* J: j7 Q" ^double vec[3];
2 q( t$ b/ D: kdouble vec_pnt[3];; }: ]9 e1 Q& I! ^. }( y3 J; a
int res_vec = 0;
8 u" `3 M0 ]9 I3 a     UF_initialize();  
; E5 K- j2 v4 T3 x! t     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,, z* [6 C$ `' d( d
           vec,vec_pnt,&res_vec);' E2 p& i0 ?: l9 U+ O2 [* o
     if( ifail != 0 || res_vec!= UF_UI_OK )   6 J7 B& {4 g! Q8 W. R
     {     & a$ Q, z! w  h: ~( U& u5 A& t
           UF_UI_ONT_refresh();6 l, R6 m3 l" Q
           printf("No vector selected \n" );2 V: b9 L  I* D
     }
- `1 I- T4 T0 ]( k4 G     else7 ]' ~* W! @$ ]9 C( e4 J
     {
, ~9 v7 W8 n. v/ T) E           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",9 m5 }1 N+ [2 b- X) R' N9 L* j
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
- t  I+ P0 l8 p% y3 G}5 d% C* M' [$ Q3 [$ K+ q
3),平面选择
/ K  A; x5 P! ntag_t plane_eid=NULL_TAG;
+ j7 ?1 v. ^. v6 }+ X  B) }double orientation[9] ={0,0,0,0,0,0,0,0,0};! a. `$ l5 |$ M
   double origin[3] = {0,0,0};
" n6 B) M8 L2 T0 m0 u   double pts[6] = {0,0,0,0,0,0};
, s* o" \1 U! R0 H% O$ l* O. a   int i, error_code = 0;
2 p% w4 c. ?7 }- A( n6 E   int mode, display, response;. q7 I# u+ t9 i: x
   mode = 1;                    1 _5 k8 a5 B1 z
display = 0;      
+ l1 y. ~; n% u2 C: R( mUF_initialize();# u' J( d0 O. G7 ^5 E( f. e
   error_code = UF_UI_specify_plane(. T9 F& m; |: }8 ?( ~* x" L; e; V. ]6 {! i
         "Select Plane", &mode, display,
1 {2 P& h3 r. H! I         &response, orientation, origin,&plane_eid);
) z! I! R: }! t9 u% S9 [' H3 c5 H1 ~- ]( f/ p
   if ( !error_code && response != 1&& response != 2)
$ V( O' p& m# S0 I   {
' e! g' b0 N4 u5 G4 x4 ^6 A                     for (i=0; i<3; i++)
! x; B. \! S( R& g' |8 q               pts = origin + orientation;3 @( U+ w. e. n
                     for (i=3; i<6; i++)
2 N! w2 ~; V* R9 u$ a2 m               pts = origin[i-3] + orientation;
4 {0 ?) M2 n* _" S7 k         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
# v0 z4 O1 V+ h+ a  h6 }4 H   }
( E3 A. Y+ D; H. h; R11,临时点,线4 q) a1 J7 M8 v6 t$ Q
void display_temporary_point_line (double point1[3], double point2[3]), j: M" F0 ^9 F' e: F+ ?6 }
{% Z$ Q! @8 |4 y: Y$ O; D3 p" J
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;* m. Q* }" u; p
  UF_OBJ_disp_props_TColor;  f. `* T: w! a9 K' o6 z; o
  color.layer= 201;* Q* `8 }$ y$ O/ D3 Z/ Y
  color.color= 186;1 c2 ?/ a* o( p9 O* c& p1 K. w
  color.blank_status= UF_OBJ_NOT_BLANKED;
2 \1 b( r# R/ D3 E) j  color.line_width= UF_OBJ_WIDTH_NORMAL;
- k; A9 S$ V0 N% u$ }  color.font=0;
9 ]9 m1 ?' i! E/ I  color.highlight_status= FALSE;
) z8 \! n; e2 ]1 M5 v% u3 d  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;! X+ v5 y7 |- F# {% j3 a4 l( n1 ~

5 f+ U7 X. U* r  ^UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
6 b  g* \" t) aUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
6 q' J/ `+ i9 ?4 D+ Y7 L0 bUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);; Y% q' y9 H  h4 X
}: g$ [# I, r- f' `4 L
12,WCS与绝对坐标转换: G8 r6 {7 Q, I
                        voidcycs_wcs(double point[])  ?( E; K3 ~  L! k, L2 C
{0 P+ h1 G# ?- s. d
      tag_t  wcs_id,matrix_id;
2 g2 [8 m' V# L      double matrix[ 9 ];
' V  O/ S6 B% F      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量) |1 X6 g7 c$ I' ?6 Q2 S* M9 r
      double wcs_origin [3],vec[3][3],point_origin[3];
" o7 ~* m9 h( P! m4 R2 S* y      //1,得到工作坐标系$ M3 u/ V/ f' {0 x4 g5 J  M
      UF_CSYS_ask_wcs(&wcs_id);# j! o; c8 S" Y. x% Y% M1 r
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
" C0 ^' V4 d0 ^4 z* w4 j; w      UF_CSYS_ask_matrix_values(matrix_id,matrix);  V6 U6 p$ U, |% N
$ z! P) \  R( Y) Z
      //2,得到工作坐标系轴向量; P# Q  x" |# I) n2 o
      UF_MTX3_x_vec (matrix,vec[0]);
- q- P: R/ f: M. M- h$ ~      UF_MTX3_y_vec (matrix,vec[1]);
9 `* ~* l1 m$ c3 C3 B      UF_MTX3_z_vec (matrix,vec[2]);# Y$ s3 a: Y! H' D  Z/ Z

1 [; h. g  A) i  `, R      for(int i=0;i<3;i++)3 i2 C. c9 Z  K0 Q
      {     
/ d# S6 |, M3 I( B2 i8 o% p            double tol;
; F: V2 D+ C: F5 I//3,得到点到工作坐标系原点矢量
1 y- P; a# \9 M: t+ F% u2 C# g            UF_VEC3_unitize(vec,0.000001,&tol,vec);5 P* `' {+ Y0 H; U( G
//4,得到点到工作坐标系原点矢量9 E% {  P- S; @# m
            point_origin=point-wcs_origin;' V! c* R7 t0 c9 k2 T& F% y- J1 W- o
      }/ N0 v7 d7 {7 [% N% T/ s, Y# q
      for(int j=0;j<3;j++)! l4 F) `- L8 [5 l  e5 m
      {
' c; T) D8 c/ `# `$ @            UF_VEC3_dot(point_origin,vec[j],&point[j]);* I( S4 G( `; H$ u
      }
  q) p( a7 o7 z/ ?: B) R  y: N}
. E4 o7 `6 x6 A3 B! |- i+ v13,三点求圆心( F3 c6 s* ^5 k/ q" ?, P2 `
#include<iostream.h> 4 r* m$ P/ a  B" C
#include<math.h> 1 ~9 `6 L% p0 J9 ~

% i8 }+ _5 E+ ~4 H: xint main()
' K5 ^! i2 Y3 J2 Y4 t( k{
% _. S3 c' h, g# ?, [* d      int x1,y1,x3,y3;: `. k8 n; }, ^7 z+ o) O7 @
      double a,b,c,d,e,f;# l' m- j: b0 W8 ^6 y; a5 q  b( J: c
      doubler,k1,k2,x,y,x2,y2;
4 G, O: @9 b6 h# o0 Q$ [      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
1 ~$ r! v# v! F& [2 [. p$ f! O      cin>>x1>>y1>>x2>>y2>>x3>>y3;
1 z$ V6 G6 }& }' ~      if((y1==y2)&&(y2==y3))! ]0 M) Z" [0 \& Q; ]/ f( \/ a
      {' @2 j+ g- U$ p; s- l- D* z
            cout<<"三点不构成圆!"<<endl;/ m7 k* F+ K' ?5 a7 ^
            return 0;9 h* R9 f' e, k1 o/ s% C
      }
1 \% T' A! {* Y% G      if((y1!=y2)&&(y2!=y3))
0 ]6 r! Q5 E& v9 Q" K' }$ W# d      {
9 h' k: c7 U2 j+ g" ^" t            k1=(x2-x1)/(y2-y1);6 G' E3 O/ p  \2 p
            k2=(x3-x2)/(y3-y2);
2 `! z8 r# u+ x, a; |" \      }9 l, l: `/ E" T
      if(k1==k2)4 W8 C3 {* k+ {) a
      {9 V9 Q6 d3 p  j4 x& n
            cout<<"三点不构成圆!"<<endl;5 u+ h) l7 ?) Q3 D# E
            return 0;4 g! m2 }0 |6 ~: b( U" I( W
      }3 k" ~9 c0 n3 _; E( Y
      a=2*(x2-x1);; m2 J9 ^/ M' p0 S
      b=2*(y2-y1);
6 F6 {/ I  ?$ P2 R4 q      c=x2*x2+y2*y2-x1*x1-y1*y1;
" g. b- |* S/ c      d=2*(x3-x2);/ ?: g0 j! |. |- q# u5 F! G4 P
      e=2*(y3-y2);* T: U/ }# }- W) \* e9 Z/ l
      f=x3*x3+y3*y3-x2*x2-y2*y2;* T  h( p* H# W$ [* J5 ~
      x=(b*f-e*c)/(b*d-e*a);" N  u5 c, j4 n0 ]) G
      y=(d*c-a*f)/(b*d-e*a);
# K0 @5 k# o8 L% e      cout<<"圆心为("<<x<<","<<y<<")"<<endl;" i' E; \! N9 e+ L. R
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
7 P1 ]7 X# g5 _4 q$ X      cout<<"半径为"<<r<<endl;8 C, F8 ^0 [* l7 W1 h5 w8 d8 r
      return 0;1 [4 X: ^+ h- U" g7 p8 t
}, n# N! Y$ U  r6 C' o
14,查找圆心
5 b3 n9 K: Y- K5 d            UF_EVAL_p_tevaluator ;) N. M2 [, f& R" x( M0 d- _
            UF_EVAL_arc_t arc;
% C( }( z& h. ]& H7 u: {7 Y            UF_EVAL_initialize(obj_tag,&evaluator);" q( K9 [/ z3 C, q% v9 {
            UF_EVAL_ask_arc(evaluator,&arc);7 n0 o  m: J  n
            UF_VEC3_copy(arc.center,point);           
8 [4 [; {% l( P# q15, message_box
. l' ]2 i) T$ X  g1 E2 {2 y2 ]void message_box(int *res_mes)
, C' ^) Q3 ]5 T0 X7 @4 a{
+ H5 V! E' O6 J; h: h% x4 ?      UF_UI_message_buttons_sbuttons;
4 y0 A  c4 _5 @  ?0 B2 P- m      buttons.button1=TRUE;3 k7 ~: L& @; w' E( q" [" m
      buttons.button2=FALSE;
- @6 i9 `/ l" P4 z& {% q      buttons.button3=TRUE;
* q! u) {3 H, D. s, @1 v- t# y* N2 K' ^( ]. _
      buttons.label1="OK";
$ l/ Y0 N, R9 [( `" l      buttons.label3="CANEL";$ O% s& D! D# a2 T3 K
2 e, L) k& k2 q
      buttons.response1=UF_UI_OK;2 x$ b7 {0 V  N$ S
      buttons.response3=UF_UI_CANCEL;
6 H- [! y" N& u+ J' ?) t: e2 V  r0 R7 B  m6 h; c
      char *string_msg;
& A+ D$ x  o% j3 F      char*material_msg="ALL selcted objects will be removed";
2 z4 z+ {* y) Y% a: b; h      string_msg =material_msg;% h+ N1 c/ I. \  g# ^4 s+ P  W

) W. i! s" a* ^9 ]      UF_CALL(UF_UI_message_dialog("",( p1 y3 V8 m$ l' E% H7 [
            UF_UI_MESSAGE_WARNING,3 g# f6 [3 r% @% m/ E
          &material_msg,
6 }( [1 A: T+ r. |            1,$ i( e4 A  A( C4 C- |- e$ \1 ?
            TRUE,
; U7 Y" e: r* N; F3 T" {8 ]* V            &buttons,
5 G# I. d/ B# a$ Y             res_mes ));* c) a" U& e' V  \6 P  m
}$ W* i) F; E5 u$ x. c! g
16,选择过滤; S1 Z( N+ p( V9 r
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
" ^7 f7 ]  B8 n5 J# G0 b{9 t1 E$ A  R% Y! ^
      int nums = 1;
4 |! S; s0 N8 H      UF_UI_mask_t masks[] ={
, m/ u3 i  f& Y( e6 K! u2 e: w            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};; q$ l3 b3 S/ N& k8 G" n

/ A2 v! x( J: ^9 L( K+ m            if(
0 L, w( S- ^" n* S3 V! N) n$ F/ V                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0). P9 y& w, h% H
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)& {. v4 y: M/ V5 {4 S
                  )
0 b0 o  U7 d1 }            {/ a6 O4 x8 V( H/ ?; {2 j
                  return(UF_UI_SEL_SUCCESS);
, V( r5 D# T8 g0 ]9 U& `            }
% H* Z6 X1 V  T& ~$ ]) K            else& y( r* ~4 d5 R" v8 h
            {     
9 n& Z4 V3 Y! L/ z, v                  return(UF_UI_SEL_FAILURE);
+ i, H& v3 S/ L4 _            }
2 m' r% X* O! ~! o$ h6 h0 U0 A}
/ L8 V5 U0 f8 J/ h/ c  c6 }int find_tag(
; F2 H; ?8 Z4 E0 G. V. ~+ f$ z7 s                    void * client_data,//用以传输过滤资料
3 p  K% {7 a1 k& }                   tag_t object//现在鼠标所选物体ID
4 {. B1 F: r1 i3 L3 G- c                   )
; H4 K+ }& k5 z{: f3 x) P! y4 y( g& c
      user_data *obj;- h' l* H: ^2 v; {" I
      obj=(user_data*)client_data;7 G+ T1 G& q3 M! C3 a. ]) q
      int find_face=true;//接受
& c8 o1 ^% \- S2 E6 |3 N      char *string1;
: o0 L$ [. y; e# x' b. J1 ^( h      string1=newchar[133];
! \( j. q! `3 Z% t7 Q7 }" Y- p4 I      string1=UF_TAG_ask_handle_of_tag(object);
0 x! I5 t& A0 n& U% }! _      for(int i=0;i<过滤的数目;i++)
: E2 E( o& h( q" y0 N6 \      {
6 m% s& \( Z3 M4 g7 c8 t8 w) n! k0 ]. N; ?9 _0 X2 u: j
            char *string2;
: S9 Z1 s6 _& s            string2=newchar[133];0 E% c0 l+ \; F  K" W9 m4 {
            string2=UF_TAG_ask_handle_of_tag(物体ID);/ q' u& U/ g" a  d
            if(strcmp(string1,string2)==0)8 K& C" F' r5 l5 B( \' B
            {: u! s3 \% ^1 T4 g. c9 o& {$ V
                  find_face=FALSE;//不接受. N; b# t9 R$ K) C  ?
) r7 H( v  p' a
            }8 d6 f( W+ s% G* q# O0 {3 j* X
            delete []string2;
4 x$ }6 }/ h" V  d1 W1 {* B# C" h1 j      }: n7 p7 q* ^+ ?3 ^
      delete []string1;
$ b) v$ j3 v5 z4 `  r: D2 j      return find_face;: d" h& L4 f% A
}
3 c  t+ l, \6 b: G* c7 v: t5 _, t0 r5 E0 Y: h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了