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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

+ {5 I. N8 N1 a2 A. f7 z7,裁剪片体
- M. a1 |4 L1 i2 Ntag_t  *trim_objects;
( X3 ~2 x% A) m' b, {. _0 vtrim_objects =new tag_t[count];# l# L" G) F, _3 P
trim_objects =bound_id;
  ]  N% M( g/ d6 f$ }# M6 vvoidtrim_sheet()" a$ V& G/ C  Z( P8 l/ P( c
{% [- x. l: J  Y) V7 ?

1 T6 J+ `% X* x5 k) W      UF_MODL_vector_t projection_method ;
, P' O3 w: F7 O% T/ V) \      projection_method.reverse_vector=0;
" d8 y( h/ ~7 }0 K& S+ W      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;* c% D3 K* s. t% G% \( C
      UF_MODL_vector_defined_by_union_tdir1;
* n- e; A4 N; |% ~; \6 z; `9 X! L      UF_MODL_vector_direction_t dir2;' W" V. ]( E) P' ^/ q' Y1 Q
      dir2.xyz [0]=dir[0];
0 q9 V" C, e+ O, N+ j: `      dir2.xyz [1]=dir[1];0 K: U1 i/ ?. q( F5 f
      dir2.xyz [2]=dir[2];1 E. K! r  a& F1 t) L/ ^& U
      dir1.direction=dir2;+ z4 h6 n* B. M( v* Z; ^
* ?& i' e0 Q- y- }* @
      projection_method.defined_by=dir1;
" m: h( ?6 ]/ \3 e8 ?( |9 U( V' D: G$ \; ]& n5 I
      double point_coords[3] ;( Y5 r8 c% t' W  ~

0 e1 a$ s; i- C2 N0 ?      point_coords[0]=center[0];
3 l6 F, Z$ q& r4 ~: ~3 a' Y      point_coords[1]=center[1];; U  c6 v. i/ A! G& ~
      point_coords[2]=center[2];' R$ b7 B0 d* P+ `6 H
3 D; P/ ~/ L5 _2 [
      int gap_point_count ;
! o) p( Q9 q) J) e- `9 c2 B      double *gap_points;
! k# q! }! D9 U0 K3 T4 e      tag_t feature_obj_eid;
, D) q- `3 [& p! ]5 h9 K      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
) [. M, e# ^# D; i% H                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);9 E1 V5 L; W6 c
, }: o: n/ V! w4 a: N! Y
}
& b8 x2 ~  ~* A, M8 Y6 m8,offset偏移
& A( n6 d9 _. P; w% `& a
% z3 m' y0 t8 r/ @% @* ]* M& Y* Schar   distance_str[] = {"10.0"};//偏移的距离, _9 ]& }$ D& ~: v5 u: f! r; t
" h- ~5 N' Y  J
int  num_curves;& s  M' w3 Z& U; ?4 Q
tag_t *offset_curves;
) W) {# g0 P) M! D, LUF_CURVE_offset_distance_data_t  offset_distance;/ M- M! o1 {* p# o# U% m; R4 h9 E
offset_distance.distance= distance_str;$ ^* L: J) ^& K* u# X7 f. F
offset_distance.roUGh_type=1;5 p. o/ m( Q5 w: N
UF_STRING_t   input_string;
* _( R: {9 y+ u& }input_string.id=curve_id;//加入想要偏移的线
0 k- x( b# @9 c- z& v5 ?input_string.num=1; //偏移矢量方向数量
3 ^2 L0 r, M$ [7 |+ Oinput_string.string=&string_count;//偏移线的数量" T! q" V& X% {; `5 S
intstring_dir=UF_MODL_CURVE_START_FROM_END;: I& h* M# }) l& E
input_string.dir=&string_dir;
* ?1 X, E# ]9 y( {
4 g! l8 H+ \! c6 B) T8 g2 BUF_CURVE_offset_data_toffset_data;' t4 g% e% e% }0 S# s5 b
+ v# u  a* Z& Y2 L- g" U0 j
offset_data.offset_def.distance_type1= &offset_distance;
, i" H# H$ d+ V' ioffset_data.input_curves= &input_string;
0 R2 k6 F) X! o; s: q7 uoffset_data.approximation_tolerance= 0.01;& Z, t' h' t' H* G% b" G
offset_data.string_tolerance=0.001;
% k" s1 B' ^6 Q8 Koffset_data.offset_def.distance_type1= &offset_distance;0 Q- r8 O9 g7 f# }2 w
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;  w: Y" f, t8 {/ j0 X
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,) Z; L; X6 W% B" P$ x$ E7 \+ i
&num_curves,&offset_curves));( J* F- l. [' m  Y( L
9,创建平面% f/ ?8 X' l7 B: M7 x, B2 }( f3 b
UF_STRING_tgenerator;
/ k. i7 Q  n4 A  CUF_STRING_p_tge = &generator;
+ s- Q5 r5 g. b" d) p+ y: _6 w; i. K6 i6 P
UF_MODL_init_string_list(ge);
- n$ k+ r  W- R. X6 a$ a% r9 e; g) LUF_MODL_create_string_list(1,12,ge);- r4 w- A9 `3 x- Y  }

9 f6 G( {, e' v, p! P. W9 Age->string[0]= 1;& u: I/ @- m" z+ _5 P
ge->dir[0]= 1;//指定线从开始到结束
0 O- P6 J( X5 _  S/ p2 _ge->id[0]= arc_id;//指定边界的id! R3 M: e+ |/ k; _! s( k* T
doubletol[3];+ p2 t( v# a8 T  j4 `
tol[0] =.001;//直线公差
& h1 u2 l* u5 M' l+ f9 `3 Ctol[1] = .5* (PI/180);//圆弧公差/ `+ N  f' J& i% y+ \
tol[2] =.02;//不起作用% i% ^$ P1 G  G: h5 k+ Z( G% a
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
4 _* o+ T# l. _, O3 j10,选择" z5 O' i: G7 Y+ S, t
1),点选择
! O' Z7 N1 A" V1 r- L- {tag_t point_tag;6 [4 Z% N4 y. Y: v1 H. `
double point[3];
. }$ R3 Z" {$ Z( v7 y. u       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
  m7 U. `; y; ~       intpoint_res;: M9 I, y9 x; h! A5 k8 C( A
1 Y- s$ d1 H) S- P0 h
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,! _6 X- M; s5 K) c3 B& `8 K
point,&point_res));1 l  W, L/ m  U1 I/ f1 N. g
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
# }7 j) |$ G$ R9 a: k$ h5 H{
) x5 C1 q, f8 j; r }
) S& b, L3 Z; ]: E" [. c# a2),向量选择
6 q( R! {5 t; x     int  mode = UF_UI_INFERRED ;
# N7 ]6 b3 n9 ?: O     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;2 d% o* v! }, @8 G
double vec[3];
# [6 \+ u! a4 R' t' tdouble vec_pnt[3];+ \  _- }8 b/ u5 R  s
int res_vec = 0;; c# B7 N4 W' o! e$ U
     UF_initialize();  7 J0 K$ E* a2 H$ C
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,& b% ]% w; o- l
           vec,vec_pnt,&res_vec);
0 z5 X0 }$ V6 j& U0 r     if( ifail != 0 || res_vec!= UF_UI_OK )   * t. x6 f- k9 t
     {     
" u; e4 l' e; s9 b           UF_UI_ONT_refresh();
. }7 ]: o; G- P+ w  r7 J0 q           printf("No vector selected \n" );
9 B. k" |+ t0 D% @. ?& x     }
( G2 h- Y5 b2 o2 r, |     else
- U" E- i0 k5 |  b) \) b     {+ l% @7 Q& L, }5 X4 o" k
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",+ L7 r4 T3 J0 j" u, w- [0 M2 V! F) ?
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );' Z7 ^' R( B( L' s, F& H; V5 ?
}& t* l3 i9 N  v% Q9 S* M! Q
3),平面选择
& F7 C8 Y  q3 M7 J$ {" W" Vtag_t plane_eid=NULL_TAG;
" G% w' l3 g  ddouble orientation[9] ={0,0,0,0,0,0,0,0,0};' V6 X# J/ }6 C4 W# X' \5 S
   double origin[3] = {0,0,0};
1 N7 C- ]: K: K- [, n   double pts[6] = {0,0,0,0,0,0};
7 S( F' K' O* E   int i, error_code = 0;
  p) V1 Q& n- o( h& {# I* t" H   int mode, display, response;. q0 p. s9 M; ^, V- M2 u$ x
   mode = 1;                    % m8 N. |: q* e- i
display = 0;      
$ R4 ]( e6 O1 E/ JUF_initialize();( ^5 [) ^( l" {
   error_code = UF_UI_specify_plane(6 X8 o; G3 I& V$ X4 f% G( x2 ~
         "Select Plane", &mode, display,
: O7 X3 L8 I1 s/ J# ^3 H) l         &response, orientation, origin,&plane_eid);
& E/ ?2 V; G+ j  O+ Y; x9 Z5 P5 l! p. L7 I; |( l& X
   if ( !error_code && response != 1&& response != 2)
9 \- b# M! \1 m) U$ b; w% k2 u5 P9 V1 ]   {
' p+ a$ E, J% o5 x$ g" R+ J                     for (i=0; i<3; i++)0 i& _  A$ y* ]8 W# I5 Q  N3 l
               pts = origin + orientation;0 n* ]# P$ `/ z2 J" K* ]5 Z
                     for (i=3; i<6; i++)
/ m, E3 I) q6 l7 W               pts = origin[i-3] + orientation;
& t- g: \) t/ M% v  I5 [         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);1 Q" j5 m4 d- V& r" j
   }4 G5 ~4 b( G7 z* Y7 c
11,临时点,线, _! ^$ V2 X5 j1 ?
void display_temporary_point_line (double point1[3], double point2[3])
+ n" C& {; |) _6 [6 ]" V2 k{% k$ s5 p1 `% Y2 }, U* R$ {3 M
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;) p7 \/ ?$ f/ |! X8 K0 J8 `
  UF_OBJ_disp_props_TColor;
$ E0 \" S5 B, H/ N  color.layer= 201;1 K# S/ U& S! G2 A# X
  color.color= 186;: f1 P% K3 Y- n" V8 V
  color.blank_status= UF_OBJ_NOT_BLANKED;
& \/ n" j" Z9 G; [( g7 H9 J& ?/ O; _# v  color.line_width= UF_OBJ_WIDTH_NORMAL;
3 A& u' g/ Y/ X  color.font=0;; i  `% s9 w  n$ Q- b2 P
  color.highlight_status= FALSE;. {; y8 U; A, Z1 \
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
  m! L) a3 A2 K9 o2 f7 h; y( ^" z& y% a9 h8 g
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
/ H) c/ G% @" g% N) zUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
! p) y3 `' ]; i! I+ n) PUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);# J1 ?! |! W. b3 h1 d" e
}
; g5 ^8 B7 j5 _, M0 {# Y$ t12,WCS与绝对坐标转换8 I$ A5 y  _7 c2 s4 j0 W
                        voidcycs_wcs(double point[])
  d* Y4 v) H4 \& Q) B5 A) i6 U{
3 r3 K- P. W  ?. }      tag_t  wcs_id,matrix_id;
4 h$ r& g2 k& l      double matrix[ 9 ];3 L+ \. D% S8 c& l- W& P
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量) W0 E7 J' i. z; S( ?0 Q
      double wcs_origin [3],vec[3][3],point_origin[3];
: f5 b4 i/ m" A: _1 R" J# J      //1,得到工作坐标系
* ^$ q& b8 Q9 d      UF_CSYS_ask_wcs(&wcs_id);7 O" J, z$ h! ~4 Y- J# F' @
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
  N  R& h$ R1 T$ j  r      UF_CSYS_ask_matrix_values(matrix_id,matrix);
/ W" [% k+ m/ w1 M
% y' c8 L5 O! q# U      //2,得到工作坐标系轴向量
, z( J$ W6 F+ q+ H      UF_MTX3_x_vec (matrix,vec[0]);
( W7 l- P9 Y4 t2 x/ A: L' W$ A      UF_MTX3_y_vec (matrix,vec[1]);
  B( J6 Q1 q3 o6 `: A6 U      UF_MTX3_z_vec (matrix,vec[2]);4 j1 L( V" |5 S/ s' t( ]1 g& m

* W( n2 v7 r$ D* {      for(int i=0;i<3;i++)- Y/ m6 H' o9 ^1 o
      {     
$ X' z3 a7 z4 J2 q2 @, q! h* R            double tol;# V, q$ S; {) l* J2 ?+ C( L5 o
//3,得到点到工作坐标系原点矢量' [; y- U2 n6 S# A7 b+ I
            UF_VEC3_unitize(vec,0.000001,&tol,vec);
% p: z7 L7 w5 [- b7 E//4,得到点到工作坐标系原点矢量+ A, Z3 @+ A, Q
            point_origin=point-wcs_origin;
; m/ e  |: F/ |. ?2 A3 M) J      }( J7 p* Q$ E# }* H
      for(int j=0;j<3;j++)
8 c" Y- Z5 Q9 r0 }      {
8 X3 h+ N3 A. e9 c: x5 Z            UF_VEC3_dot(point_origin,vec[j],&point[j]);. z7 N7 a0 B- J% C
      }2 |8 k3 s$ F& m. G5 k( k6 [+ l4 B& k# E
}
+ h; A! s9 o, e9 S13,三点求圆心$ a& C% I' z- I5 N# p4 B! @
#include<iostream.h>
9 e: p, l& n0 p* u4 }. Y4 ~#include<math.h>
  D! B+ L# y4 ?: M) v
7 P# s4 k( S3 T* l! B& B7 z2 c, l. H9 aint main()* G1 c) T: H+ \- [
{8 k2 l2 E; p1 X
      int x1,y1,x3,y3;0 m& @- ?1 |1 `/ N
      double a,b,c,d,e,f;! Z+ R: I* E2 f' N/ q1 H, L
      doubler,k1,k2,x,y,x2,y2;) l+ T2 ^& Q6 e+ s; I' ^6 Q: x4 H
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
, a' \: m' B3 {8 G5 n      cin>>x1>>y1>>x2>>y2>>x3>>y3;
* ^# [1 }- R, F1 x/ M- C6 y      if((y1==y2)&&(y2==y3)), ^& r7 A6 A+ \: P( ^
      {
. w. d6 b3 _8 R7 S            cout<<"三点不构成圆!"<<endl;
% n5 e: q9 R. t- D' X& T$ Y6 @            return 0;
- ?8 o4 p: @; Z      }$ T% @2 O+ I9 N, [$ o# U) C8 s
      if((y1!=y2)&&(y2!=y3))3 K& D% k$ i* y: A' y
      {
8 n' P' n7 r; o+ u( ], O# i, T6 i            k1=(x2-x1)/(y2-y1);( S8 `- |9 ~& H, b  m1 s2 C
            k2=(x3-x2)/(y3-y2);
5 E$ R  J2 }6 Q: q' w8 X5 O      }/ r. K9 F% l5 C$ }: y& c! m9 i
      if(k1==k2)
  c+ p* x) q0 Z0 o& i( P* u      {( t2 n% a/ x4 `' z* T' ^
            cout<<"三点不构成圆!"<<endl;5 \8 D* ^7 _/ l
            return 0;/ m/ O" I  e% n) S
      }4 b. \5 t( y" _
      a=2*(x2-x1);6 B6 N8 v! O) |" m. {
      b=2*(y2-y1);/ C8 ^/ v0 W* v0 I7 W5 H, j
      c=x2*x2+y2*y2-x1*x1-y1*y1;" k( F% c' [& z2 X: e0 K+ }4 Z
      d=2*(x3-x2);7 W+ S/ S; f1 u! U, w$ y
      e=2*(y3-y2);4 D8 F9 j$ [" Y( |& G# S8 H3 ~1 ~' \
      f=x3*x3+y3*y3-x2*x2-y2*y2;
5 `7 O  d; h0 N1 x      x=(b*f-e*c)/(b*d-e*a);. m: j0 ]( k$ L
      y=(d*c-a*f)/(b*d-e*a);1 x% S8 I$ V7 n& `, |
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
$ N+ [2 j( S7 L3 E1 \( p3 ]      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
2 L( G0 y( ^; \; n% q1 P      cout<<"半径为"<<r<<endl;% ^: @3 `6 I5 j
      return 0;
5 _6 y- |1 J+ _. t9 A}
  O5 ?0 I% O) X% v# W14,查找圆心( `6 r& |# e+ c7 K% x
            UF_EVAL_p_tevaluator ;8 A# x! H9 h2 r) `2 z, q
            UF_EVAL_arc_t arc;- I1 d  D" z+ H5 P: J- {
            UF_EVAL_initialize(obj_tag,&evaluator);3 b# ]2 C) C% v
            UF_EVAL_ask_arc(evaluator,&arc);7 B, _4 ?; f7 J: M
            UF_VEC3_copy(arc.center,point);           8 ]- Y' Y* v7 `. |  {& a* z( L8 i
15, message_box
# y: x$ v- v! B4 Z6 `void message_box(int *res_mes)
- r' x& s) V5 U{0 W/ v* \, {; M4 n9 E/ R3 k
      UF_UI_message_buttons_sbuttons;
2 Y  F9 Z3 n4 F" [7 e      buttons.button1=TRUE;
& h9 u! h- l/ ~% b      buttons.button2=FALSE;
+ E* [& o" a# \$ a      buttons.button3=TRUE;
# x7 K8 h! h5 E" N7 t
" |* N3 m0 g/ m7 g% i) }; q      buttons.label1="OK";
4 y8 o! k) H3 m' T5 N. H' c      buttons.label3="CANEL";
' b7 _0 v% |! \4 `9 V8 a9 \/ _
      buttons.response1=UF_UI_OK;
) D/ V' f" C$ \2 a+ o      buttons.response3=UF_UI_CANCEL;) Y1 w. U$ L4 B
4 u% w2 l' y" c$ @9 b' N, g& W0 v% g
      char *string_msg;
3 c- |; g6 |$ U# I5 L' e- H      char*material_msg="ALL selcted objects will be removed";
7 o. v$ k& }* I- h1 ]2 l2 {      string_msg =material_msg;: k) `! s  L. y2 v4 Y7 ~
* {' X% V5 D6 o" S: ]+ j( i
      UF_CALL(UF_UI_message_dialog("",
3 C  m. c, R$ k. U+ n            UF_UI_MESSAGE_WARNING," ~6 Y! Z3 d/ R9 v  n
          &material_msg,
1 U; m) o' y- o9 y' r            1,! K3 y6 F5 P5 w# `1 K- w" I+ [& ]
            TRUE,7 G9 S2 D# V6 G, b
            &buttons,
/ U5 b2 _4 {# o             res_mes ));, g1 A3 j7 q% ^& ]. H- {6 u8 ?2 Y
}
1 `5 j' G/ K# v0 d& A' d8 n7 a16,选择过滤
0 k4 s9 Q. d- x. b* |static int init_add_face( UF_UI_selection_p_t select, void *client_data)
2 y$ b8 U( b7 d) v  u' W% t/ j{4 _6 w( H! {; j. b
      int nums = 1;
* A8 [: c- Z2 j" a# Z, }7 x) U      UF_UI_mask_t masks[] ={
( T' r7 @4 r3 G+ N( q* E* _            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
/ K& C: t1 s7 t2 t
4 Y0 [0 d! l0 s+ i            if(
4 T+ c# Y7 H4 _/ T1 z                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)5 C/ ?: G& X4 g: m, L  W5 n
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)$ ^/ d3 ~6 t6 X# H- ]& k- B
                  )2 M% X# e8 J" Z: g
            {6 }6 s% f, x! F
                  return(UF_UI_SEL_SUCCESS);* u1 k, r/ w" o0 E
            }  [* }. z) J& j: _( B6 S! s
            else
9 y( b4 z& j6 ?            {     
( [7 E+ T2 C7 t" |                  return(UF_UI_SEL_FAILURE);
! j& i6 ?5 t3 \* W) W# T            }
5 ~' C4 g# J4 k* v9 U}
: z9 L3 C0 z5 u* |int find_tag(
) r4 @+ W0 J- h. X( _4 }                    void * client_data,//用以传输过滤资料4 Y% E+ q, B9 O
                   tag_t object//现在鼠标所选物体ID4 {6 ~* u# c5 g/ H! M7 d3 ~
                   )3 B$ p! ?! [" B# }# U5 J  n
{- H  o9 G- s; z0 k2 k& Y
      user_data *obj;
6 d1 x% {2 C$ v% m+ Q" T" u      obj=(user_data*)client_data;' O+ d! I- B! c- z
      int find_face=true;//接受
6 A9 i, h/ G# Q) A% p# g+ }2 x      char *string1;0 w7 X9 e# n+ ?/ L  N+ U8 J
      string1=newchar[133];
1 B" M9 T+ J* g1 @# }      string1=UF_TAG_ask_handle_of_tag(object);
! l0 }# ]- a+ h9 Q6 G, J" F8 Y' i      for(int i=0;i<过滤的数目;i++)( R: Q9 [" j2 H1 \+ F. H
      {
0 M0 J0 v$ D: O5 \2 S5 I; l) ~8 s0 w- M2 t% `9 K( C) @: x/ T" ]
            char *string2;
5 l, Z: K# m' I: A1 n            string2=newchar[133];- Z+ O. W- a, h( k" R5 H
            string2=UF_TAG_ask_handle_of_tag(物体ID);
8 r0 X5 ?8 [; y  D% H: X: |9 R# }            if(strcmp(string1,string2)==0)$ q1 i' h0 j5 @0 w
            {
  m/ J& |/ J  Y- O, n                  find_face=FALSE;//不接受) M: N) j! M0 U5 M8 t8 B

  N5 H! q% V7 w- P( w' g. W2 f1 f/ t            }7 {# x0 y( C9 x2 g8 `7 V% [' t0 H
            delete []string2;/ \/ l* d7 x4 x* E/ H: i, i# z! }
      }
$ D  C- e2 `$ f      delete []string1;
8 X% c: {$ z6 H. B* I  A3 U; I2 @      return find_face;) K* }" a" L5 A4 k1 g4 A1 q& F
}
0 c- U% {+ e- f7 D6 R3 N* T! `; V, R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了