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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
8 L6 ~8 \1 ~, X# U7 o
7,裁剪片体8 s6 F' ~, e& C/ u2 M5 K, q" B
tag_t  *trim_objects;1 u+ _6 L2 ^! K" _. ?) Q
trim_objects =new tag_t[count];
9 q8 t' Q( @6 R. A- U9 k9 Ftrim_objects =bound_id;% `- q+ x9 _" E8 [
voidtrim_sheet()3 l9 n7 `0 Y% z$ _
{2 L- m6 P: J1 ~/ B

$ X/ `" I- i# l/ Z: L8 j      UF_MODL_vector_t projection_method ;5 T1 ]! d. D* p: d! m. C/ ~
      projection_method.reverse_vector=0;+ W0 v: n1 J* [5 A  L5 ~
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;: e' m6 y2 \! k$ f$ m0 [
      UF_MODL_vector_defined_by_union_tdir1;+ d& r; @) v; X7 D
      UF_MODL_vector_direction_t dir2;
  x! q0 O. ~" D: b      dir2.xyz [0]=dir[0];
% }4 m* |) i& B; W6 |      dir2.xyz [1]=dir[1];
2 H2 r: _+ V8 w  D3 f      dir2.xyz [2]=dir[2];
" b# m0 s& _8 B* B! v  [      dir1.direction=dir2;  l: k+ D& L4 V7 \' U

7 f, e% d3 p9 c8 U: p$ W      projection_method.defined_by=dir1;9 W( I5 |/ I. V- Z0 A5 Z

9 ~% S7 d# {' s+ m8 o  \      double point_coords[3] ;0 T! d) Z2 o9 M3 E" I: F

+ i: X+ p7 H( ?" x" ]( l      point_coords[0]=center[0];: ~) Z' S9 P2 B. _. ]
      point_coords[1]=center[1];
- q1 |; ?4 y8 ?9 p( C      point_coords[2]=center[2];
! T. L! F1 K  t/ m8 {9 {6 O0 Q0 J7 d( U: _
      int gap_point_count ;2 p3 G+ [; S. ~. ?' T
      double *gap_points;! b* l! P1 l6 d
      tag_t feature_obj_eid;
1 K+ F# Z! y1 c      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
6 [% n" b0 g8 i9 M% M5 }& ^                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
! R7 x+ f: a6 R0 N2 V) E+ j# e2 C# Y$ F) e3 g3 }* o
}% E3 N; N* ]0 h! c
8,offset偏移! b4 l& V% q6 R7 P

9 a$ z6 w6 g! b& O& j# vchar   distance_str[] = {"10.0"};//偏移的距离
0 H9 \8 p# v5 |5 [- _. t
( P) X8 ?' a: r2 G) \* wint  num_curves;
8 y8 ^  r' U+ Z& O: I* E4 d; s. ztag_t *offset_curves;" |& Z3 m; h" }9 S+ @& O
UF_CURVE_offset_distance_data_t  offset_distance;+ v; n# I' Z8 ?$ Q7 {" }8 R6 ]
offset_distance.distance= distance_str;% ]1 w* x8 ~6 v: ]0 z' g
offset_distance.roUGh_type=1;
3 ]6 d2 ]: [2 ?4 p- I6 nUF_STRING_t   input_string;
) x) G+ e/ u  v2 H, Z5 Oinput_string.id=curve_id;//加入想要偏移的线" V! E0 D4 E6 Z. g$ b+ z
input_string.num=1; //偏移矢量方向数量
+ z8 I/ `" w: Zinput_string.string=&string_count;//偏移线的数量
/ A) U3 @+ ?  ?intstring_dir=UF_MODL_CURVE_START_FROM_END;, `; Z( X- G- W/ ^8 K
input_string.dir=&string_dir;+ W( a) i4 o/ m
1 c( W; ^/ s2 z8 ^
UF_CURVE_offset_data_toffset_data;
; P& b" a1 F% g8 O1 ^! X6 |
9 U+ G* U/ g1 H, Z% Foffset_data.offset_def.distance_type1= &offset_distance;
& g. P; W9 H" _+ f# D8 ?offset_data.input_curves= &input_string;/ C' H" a7 A# A7 Y& c8 d$ v7 l
offset_data.approximation_tolerance= 0.01;
9 A; m+ z0 d+ r% e& P7 U( voffset_data.string_tolerance=0.001;
8 n0 m7 @; K. s/ E2 Koffset_data.offset_def.distance_type1= &offset_distance;$ P9 _* J) R3 D8 ~, P7 S: ^/ T
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
8 {' R4 N. S( n; B% G, {5 ]UF_CALL(UF_CURVE_create_offset_curve(&offset_data,% G3 ?2 F! B* X7 G7 L
&num_curves,&offset_curves));
* i9 ^9 ^( p( O6 G9,创建平面
* U. h6 M- V$ q2 U# ]UF_STRING_tgenerator;0 b8 f9 s9 a+ J  b! u1 Y
UF_STRING_p_tge = &generator;
$ F7 x, M  A+ L# a7 F8 g  c
( J! y6 d, Z, }+ g2 F0 Q( m, N7 sUF_MODL_init_string_list(ge);
' K3 S3 D+ @) LUF_MODL_create_string_list(1,12,ge);
& `+ c1 M9 n4 v2 E6 H& k* s, c/ f: B$ s# T
ge->string[0]= 1;, Q- Y" T4 H+ \
ge->dir[0]= 1;//指定线从开始到结束% i4 x  w4 H. ?& Q6 u1 c
ge->id[0]= arc_id;//指定边界的id
3 t- \& U& ^6 m7 ^doubletol[3];
4 i! d1 S3 Z- a0 H* Ptol[0] =.001;//直线公差6 d# A! E4 M4 X- U% J2 J8 G" O
tol[1] = .5* (PI/180);//圆弧公差! h# q5 m8 }5 ]( E  V
tol[2] =.02;//不起作用  E4 X* Z9 a# O% f! C
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
4 ?9 b" t) C1 P: J4 `10,选择
6 E+ L" [5 q* F& y" @6 l1),点选择- B5 v6 M" N: g
tag_t point_tag;$ {! c$ q6 U: h5 W* T
double point[3];
! y' E$ p) W* N1 ]: m3 k       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
' X% F, i. G3 O. o       intpoint_res;0 X1 X2 e8 i  X+ q

- D& P3 A6 Y3 W8 k9 j- k& @UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,8 m9 U' d8 T& c" n" H6 O* R
point,&point_res));
- y+ ?) X5 i5 i  t: w8 Zif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
7 v9 ]6 R9 T4 d$ b# ~! o* H' d! m0 ^! s7 p{7 {4 r8 O0 R7 v; c( Y
}% p& p6 \- X( s; {  {, v7 D
2),向量选择
' e+ t+ P; m7 v4 R, Q; n     int  mode = UF_UI_INFERRED ;
, h( K: A: u0 \, Z1 t     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
" @1 o  B4 t) p( {3 `/ ]double vec[3];+ U  o; u  z4 B! @
double vec_pnt[3];  {; f6 V& ~+ t
int res_vec = 0;3 k, f9 Z% q! l6 P6 l6 N. r4 U
     UF_initialize();  
% o, G* \% B1 J5 c! a) p) j4 ^     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
* j* }$ Q6 A, p! H  g  X6 ?; W9 j           vec,vec_pnt,&res_vec);
  k6 t& W" X4 M3 ]- g& w     if( ifail != 0 || res_vec!= UF_UI_OK )   9 r1 f: z* T; @6 E4 |0 g
     {     
9 e# }# l4 J3 W! X           UF_UI_ONT_refresh();
5 g1 g+ V/ N6 `* E$ }           printf("No vector selected \n" );
1 U* Z. R3 i) v& D% t     }
, I# P) ]4 t. l6 J8 v6 H$ I# O     else
2 x0 Q8 ?, ^& g& L: u     {* X( @5 O1 @2 O
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",9 J0 Z' O( \8 W9 }+ L9 \, u
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );/ U+ b( ^& t* p; v' v
}
# n% j" |& T* Y5 c# g5 S- ]1 J3),平面选择
* B  V* }" E/ Stag_t plane_eid=NULL_TAG;) [' B, [3 E4 _. S
double orientation[9] ={0,0,0,0,0,0,0,0,0};1 s& a9 g  s( B! h  F+ j
   double origin[3] = {0,0,0};
" F7 W/ @4 B. Q   double pts[6] = {0,0,0,0,0,0};
% o3 R  W2 N9 g. I: @7 `   int i, error_code = 0;4 S6 H& Q8 Z6 \( b9 `* i8 r/ B
   int mode, display, response;1 H% |3 @+ |5 N& D% k, H; ~( x+ T6 B
   mode = 1;                    4 m: Y. h1 M2 l; h. X5 Z" ~7 e9 y" a! |
display = 0;      ! S; S2 ^/ Y9 d2 R
UF_initialize();" t5 m7 D& @, `( \
   error_code = UF_UI_specify_plane(3 w" C% x# M/ O
         "Select Plane", &mode, display,
5 J" _3 B6 p5 o9 y& d9 `' b         &response, orientation, origin,&plane_eid);
& v% Y4 Y9 w. ?
% ^  A, V4 z5 o% @   if ( !error_code && response != 1&& response != 2)
. \: l. A' t1 |   {
( p& x0 H8 {) Z! m                     for (i=0; i<3; i++)
# t0 F+ B' M) l8 m$ ^               pts = origin + orientation;( s4 Y7 P, m3 X; f0 Y
                     for (i=3; i<6; i++)$ w1 c; R0 ?* Q2 g% Y: v- J9 H
               pts = origin[i-3] + orientation;. h% ]' z+ Z1 @) k% K( Q9 s
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
# Y# i, u, V! Q6 d   }
; C( f. m' H* ~& D% H11,临时点,线
5 Q5 f- N, n( q5 f: h, z" {void display_temporary_point_line (double point1[3], double point2[3])
+ @" p- K+ u: R{
7 T0 R. k. S" T- ]4 p# h$ K1 Y: N  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
- _7 h- Y9 I; B+ {6 |. @. K  UF_OBJ_disp_props_TColor;
& \. Y2 h; e0 X3 _5 e# m' M  color.layer= 201;" b. c) P/ T8 T2 ^$ p" q
  color.color= 186;: M& F+ w# c9 B, Y# H. V
  color.blank_status= UF_OBJ_NOT_BLANKED;3 L% [$ r6 C( E% W$ Z6 O3 l% D
  color.line_width= UF_OBJ_WIDTH_NORMAL;4 [, [: N" d* B' x: J' z$ S
  color.font=0;2 C" V) s+ }( r/ z: A
  color.highlight_status= FALSE;
$ {$ U8 n, s6 R* Z$ ~  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;$ A6 ^" O  F  S* @0 x2 ~

2 i0 y6 H+ D: E  W- \- ^% G/ ^UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);/ T5 l8 j, y+ F6 h; i; q
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
) I4 p: B0 x6 `& Y0 @4 h6 oUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
6 [0 R1 }8 m( B' F4 n}
  l5 h  {# f( \3 A5 j$ _% o12,WCS与绝对坐标转换) e; H4 s  B, V% m" K
                        voidcycs_wcs(double point[])) L, }6 l& [) q5 M$ i
{4 I! Y& B/ j  q: J7 v: S
      tag_t  wcs_id,matrix_id;
# P1 x; p& \+ H* o9 t2 M      double matrix[ 9 ];8 k# }; Y! q, i8 u: i
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
: ^" `) T7 _0 M9 O2 G& ~' S3 x6 J      double wcs_origin [3],vec[3][3],point_origin[3];
3 ~1 n! T# N, p$ l& X      //1,得到工作坐标系7 }2 H( y. ]2 t
      UF_CSYS_ask_wcs(&wcs_id);
: @& P; C4 L! r9 g0 n" F      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
9 u# e; t  P+ P9 y* P* U      UF_CSYS_ask_matrix_values(matrix_id,matrix);
+ g$ |9 E4 C8 N
8 w. z6 d' N, P& Z+ ?+ T      //2,得到工作坐标系轴向量+ f- b/ K$ s* e. z% g+ x, N+ C
      UF_MTX3_x_vec (matrix,vec[0]);, M9 ]! ]$ h& ^2 T0 A* z$ N' \& h2 W
      UF_MTX3_y_vec (matrix,vec[1]);
' S  F5 S6 I# J9 U. c      UF_MTX3_z_vec (matrix,vec[2]);/ Y- z* F8 F; `' D5 Z

& B1 ^' v9 d! O7 M5 p; ?      for(int i=0;i<3;i++)
4 M* @. b5 q) v8 o5 y$ u      {     ' h/ Z( }* _; D6 T) \/ o) h# t% k6 c$ s
            double tol;
* ?8 Q, L6 y% l+ ^* Y5 d//3,得到点到工作坐标系原点矢量0 p* b+ x% W# O" U6 P/ A$ c
            UF_VEC3_unitize(vec,0.000001,&tol,vec);
; Q8 {/ d* W4 L* T4 a& ^//4,得到点到工作坐标系原点矢量
7 Q+ R- X6 O' A            point_origin=point-wcs_origin;- X5 x1 y3 M6 ~* y2 H, X, r
      }
/ P% U) W" L6 n8 h      for(int j=0;j<3;j++)' c+ r2 u# F( t
      {! H4 e* t/ ^! |+ g  k
            UF_VEC3_dot(point_origin,vec[j],&point[j]);0 C! w4 ]7 O2 \! d9 J
      }
, `8 V: d( _0 B4 D3 o# s& x$ h}  y9 E$ C! t% V9 x+ ~
13,三点求圆心/ R, s" }! B2 ^4 \% v
#include<iostream.h> * O1 {# x; w. A1 B0 e" |( x  g
#include<math.h>
8 [% O' k) k* k! d/ v# w
, x% O' Z" {1 W5 d) b8 y5 E. \int main()" ~$ Y- `# G( d- m; |
{# B2 j7 ?8 c' O( o6 y
      int x1,y1,x3,y3;& X5 S1 ^# V, T+ h$ `0 o
      double a,b,c,d,e,f;
( Z3 U- `/ ?* c2 j3 T; u2 P8 |9 ]      doubler,k1,k2,x,y,x2,y2;
$ L. k/ ?- n' K; F% R5 x      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;# ~1 [' I6 @1 [( J
      cin>>x1>>y1>>x2>>y2>>x3>>y3;! U$ n. J% q; h; Q5 a
      if((y1==y2)&&(y2==y3))
2 z/ X# `& c! p( M9 P, I; l  `! @6 f. u      {! M# E! J; T3 ]! [$ F9 o
            cout<<"三点不构成圆!"<<endl;/ i; B3 f' D0 ^# H" V
            return 0;0 X: u& z2 B, @0 |
      }, _8 C, {& B+ U9 M! w3 L3 Q/ d9 D
      if((y1!=y2)&&(y2!=y3))
, T5 _4 [" V& m$ K8 {4 p      {
! ]: T# l2 p/ g' H' B" |) y# }  g            k1=(x2-x1)/(y2-y1);
- U1 I; O. e' b# h* K; S            k2=(x3-x2)/(y3-y2);
6 E* ]# b" @' G, P' F9 \      }0 K) [/ N: e! }' V/ y3 K# H
      if(k1==k2)
; e. ]! S  E4 y+ b, O; k& x      {% i& N1 V9 H, N! [6 ^
            cout<<"三点不构成圆!"<<endl;
' \/ z: z3 }/ I6 t- x. g2 |3 i            return 0;
& [# m$ b  f! k7 p. V- A: N) y' N      }& U2 o$ X; N6 o
      a=2*(x2-x1);) o+ ^8 V: S6 h* M# Z
      b=2*(y2-y1);* B! d+ s( \2 s" ^5 L' h+ m
      c=x2*x2+y2*y2-x1*x1-y1*y1;
1 i* z1 Y) i% ?/ i) T0 i      d=2*(x3-x2);+ p3 a* }7 S  d2 T! Y7 f
      e=2*(y3-y2);
! J% d$ P2 x  \, `; j# `8 k3 K      f=x3*x3+y3*y3-x2*x2-y2*y2;
+ k! W/ R+ [; b& _      x=(b*f-e*c)/(b*d-e*a);" D9 S- i8 _5 Y& p7 X0 d0 _& `1 K
      y=(d*c-a*f)/(b*d-e*a);+ E9 z, t# x1 O4 A
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
# h! B! a% o, F5 J" h8 `$ T. V      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));: v9 n8 f, c0 M  k
      cout<<"半径为"<<r<<endl;
, u; u/ \- M1 a      return 0;
3 v3 _7 \+ k8 ^3 y; j}/ ]1 G! F3 Z% v  b# U1 c4 `  b1 b8 C$ @
14,查找圆心5 Q4 ?* i4 E* Y5 L* ^" W  q
            UF_EVAL_p_tevaluator ;
+ F3 |! L  k+ r" c7 I            UF_EVAL_arc_t arc;2 {( a1 @5 U$ q! b
            UF_EVAL_initialize(obj_tag,&evaluator);" H% t$ F6 B+ A
            UF_EVAL_ask_arc(evaluator,&arc);+ \! l, j# Z1 G( Y" @, r! T& A
            UF_VEC3_copy(arc.center,point);           
+ u4 b3 f+ `- W4 U% w& s15, message_box0 \6 c! {$ Z$ p- g3 {7 V
void message_box(int *res_mes)8 D( U4 h0 M9 O
{
! l3 f/ h, h; X3 K0 P7 C      UF_UI_message_buttons_sbuttons;1 k+ n9 P2 O$ G, U1 X: B# m
      buttons.button1=TRUE;/ E; L; R, x* v( y# t+ f9 a
      buttons.button2=FALSE;" Y: H4 E4 [- S$ Q  `
      buttons.button3=TRUE;; s. A) N. w; p6 I4 m2 {
; b2 d$ o' |; ^# F' t$ O* {
      buttons.label1="OK";4 t: Z+ h7 [! t
      buttons.label3="CANEL";
. L5 z, a9 g: P  c+ p# ]3 C& |: y/ [( _
      buttons.response1=UF_UI_OK;
* M+ S) _+ J7 q- f0 N4 X+ X      buttons.response3=UF_UI_CANCEL;
' b2 M6 p( @0 q. Q6 v
* L/ j3 d6 M, P      char *string_msg;
: b; Z/ ]5 \" S8 B1 B  W# O3 Q( |      char*material_msg="ALL selcted objects will be removed";
8 ]8 l% A% b6 |1 U0 T      string_msg =material_msg;
4 Z$ D# Q7 `. ]! J1 o% b' G) H5 c$ g2 n4 o& S
      UF_CALL(UF_UI_message_dialog("",
- [/ ]8 v' o. t  a  v3 {7 J, \            UF_UI_MESSAGE_WARNING,
( x( {4 _* X  e- t1 b. T: K( E          &material_msg,( t/ z0 B+ L$ A. k/ x" P
            1,# h: x2 _# c. h5 I& E
            TRUE,/ [" ^) V& N' q) S# ]( x- t
            &buttons,0 G! z& _1 f8 e; @+ N: x; b  T
             res_mes ));! |; J: L$ m& i  K
}% d1 N5 R; f5 r% l
16,选择过滤- d5 N8 }$ n5 j. d3 w$ e* b3 H
static int init_add_face( UF_UI_selection_p_t select, void *client_data)5 O* \1 H+ \7 X  \- t
{0 d' A0 V& \0 R# Y5 F0 W0 Q
      int nums = 1;) I1 g6 @7 I" K8 `
      UF_UI_mask_t masks[] ={
  C) X: |2 m. P8 m  b            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
! b. q$ y- S; Y4 s
1 Z' {0 b% t- q4 ?$ Z+ t            if(
: z* a8 ~- e" R, J6 i                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)) f2 R! _$ P1 H1 h
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)( ?0 ?5 ]" o! v4 ?
                  )7 Y  I$ [; H/ f: d% W& d! Q
            {) e, U2 k' T2 U" i- Y( U
                  return(UF_UI_SEL_SUCCESS);
" s2 K) q+ U5 g& [/ D- P, [            }
) t5 j6 g1 ]* e- n9 l            else
+ p" g# D5 X0 G+ O- f0 a. K2 |            {     , l6 t5 @- w0 [# t7 A. |
                  return(UF_UI_SEL_FAILURE);
: L& S& H( P2 j7 J            }2 L% Z( w2 I1 u- ?" o, p) L( H! @2 R
}. }' a& P( Q; u( G7 B2 v
int find_tag(0 F; l1 S5 U: N) X; S' {1 ]: e
                    void * client_data,//用以传输过滤资料
3 w% {& O5 f6 F, ~                   tag_t object//现在鼠标所选物体ID! i0 u- ?( G) c. \
                   )
3 b& k7 p& C- a{
  U9 g8 ?4 ^/ ]1 G) L  @      user_data *obj;& c4 U% ?0 }$ o3 ^; S% K
      obj=(user_data*)client_data;
* B$ ?; L. M3 X) T' J      int find_face=true;//接受
; `; U/ f  @2 W1 p      char *string1;9 ~# f5 `7 l4 d9 h. H' Z
      string1=newchar[133];
7 }: h* P' T3 y/ O      string1=UF_TAG_ask_handle_of_tag(object);
2 f* ]! w1 a6 v" b      for(int i=0;i<过滤的数目;i++)
1 g' d$ ~7 W2 ^% f! X& F- v      {
( u6 {) a* C7 v( v  C0 i
! e) W8 _) `' t            char *string2;& A3 i" J  s0 g, V. m' z( @
            string2=newchar[133];; c, Q  g# \. r
            string2=UF_TAG_ask_handle_of_tag(物体ID);
; L5 F+ M4 U: F) U7 g            if(strcmp(string1,string2)==0)( @2 K8 a, u+ d- |! \& R
            {9 \1 o) i& I( E8 q2 j! R. G. `
                  find_face=FALSE;//不接受
% i/ C$ W, j' \  w  ?6 S+ ?7 J; _+ v. z! D/ L
            }
2 ]5 p( x5 p! J2 L3 g" L            delete []string2;7 A# |1 V$ L' \0 O2 ~* }. m3 V
      }, i) d2 C' J+ }, d3 L! S/ j
      delete []string1;
7 u+ e" u' p4 b  _: S      return find_face;
- U! R1 M$ m. G5 E}
* y. ~5 A6 f8 p) I# v$ g
. a- p! o1 U. y* v& _! b$ 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二次开发专题模块培训报名开始啦

    我知道了