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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

5 h% C7 y+ N8 g  Q7,裁剪片体
3 {" S7 q9 _4 _4 O$ b$ [/ ttag_t  *trim_objects;
" ^4 [2 K1 I* }) O" F# p0 Qtrim_objects =new tag_t[count];1 Y! I8 i( i! u# s, m7 Y
trim_objects =bound_id;$ ~$ H3 O7 _9 ]9 U( e4 g! g
voidtrim_sheet()# H7 J8 E8 b, [4 N# G3 {
{: B% p0 A$ }& A3 e: Z. L
; o$ l( C! s+ @- h" M0 t! [
      UF_MODL_vector_t projection_method ;
0 o$ Z% V/ X8 _2 J* P      projection_method.reverse_vector=0;
8 E2 J9 l$ T7 x, n      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
2 C9 m" T$ o( }  i, y      UF_MODL_vector_defined_by_union_tdir1;7 T8 D4 `5 W9 x$ D
      UF_MODL_vector_direction_t dir2;
! V# _% n% P. s+ ?' `# t      dir2.xyz [0]=dir[0];
) j8 o% O6 W& ]8 m5 w* @      dir2.xyz [1]=dir[1];
6 Z& ~- @8 o3 z$ E      dir2.xyz [2]=dir[2];" T! j. g5 G3 n4 v
      dir1.direction=dir2;* n0 N3 f" i9 l' ], A0 p0 e  T6 v, ?

- ~& f. }* r$ b      projection_method.defined_by=dir1;  C& V6 O1 I* a  h' K* R
& m; N/ {/ v0 s" n
      double point_coords[3] ;
6 Y5 I2 Q: L7 w# B, \9 H
% E7 b9 Y$ ^# h7 q( @      point_coords[0]=center[0];; Y0 r: S+ d  @3 u
      point_coords[1]=center[1];
! |0 v1 f/ ]% j$ y6 z. }2 k      point_coords[2]=center[2];
6 @  A% W" u4 V  O+ R$ }6 f1 |" L3 R( S: e2 u, C
      int gap_point_count ;
5 y4 ]* V, t( J5 d+ x6 M! j- _4 R      double *gap_points;+ }" S5 u  L# w$ E6 t
      tag_t feature_obj_eid;9 h) X7 {  A+ z% L* O0 i
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
5 z$ e8 l3 G7 P2 K                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);, e* x/ J3 q! ~  ?3 b
9 \( D8 a0 H9 ~. {
}' a2 W# K1 O+ H. ^
8,offset偏移
% \0 \# R6 {6 W* g5 K7 X' X- R/ `. t0 c% e+ O$ S, P/ z
char   distance_str[] = {"10.0"};//偏移的距离1 A( L6 k. o8 ^8 E# \. S

( B" `7 d. s, Z8 `( A9 zint  num_curves;
/ c: \0 D. o3 S" p; W) p% Atag_t *offset_curves;' B7 J8 O- e: z' T' ^0 e0 Z& C3 }
UF_CURVE_offset_distance_data_t  offset_distance;! L/ B7 L4 _8 n8 |. B" {- Q* X
offset_distance.distance= distance_str;. e" {  ~1 h" t0 O/ W- X% o
offset_distance.roUGh_type=1;
, q0 B( B* k% v' J  ^# a; VUF_STRING_t   input_string;: s& b% b! s4 Y8 G# l! m5 o% M/ W
input_string.id=curve_id;//加入想要偏移的线
# q1 f' ^' N: }8 f# q; A0 `input_string.num=1; //偏移矢量方向数量7 `+ A9 `" I# D2 T* |& ^) g
input_string.string=&string_count;//偏移线的数量
: ~1 G, g! k3 h- uintstring_dir=UF_MODL_CURVE_START_FROM_END;
, ~5 G9 F& V9 J, Y: \# O: H! ?3 sinput_string.dir=&string_dir;: R; ?) G' x3 a1 m* b- h2 R- `
) v1 F$ I: f5 @' }4 T  F+ h; j1 m0 r
UF_CURVE_offset_data_toffset_data;
( ?4 w3 K0 ]5 G' Q& n
4 ?  v1 `1 b0 i- @offset_data.offset_def.distance_type1= &offset_distance;/ @. H% ?& q+ `( G9 _1 E4 C3 V2 U
offset_data.input_curves= &input_string;# U3 t& H" ?/ v$ D4 o& n; G8 r
offset_data.approximation_tolerance= 0.01;/ f7 A5 }/ a% R
offset_data.string_tolerance=0.001;& F% W( N7 H$ n7 N' j4 j' z2 k
offset_data.offset_def.distance_type1= &offset_distance;1 {+ h3 D* f4 ~- [
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
5 p" ^3 Y3 V5 [* oUF_CALL(UF_CURVE_create_offset_curve(&offset_data,- |9 z$ e( X+ Y) @  o, x: ^
&num_curves,&offset_curves));) d3 O3 o* T: q7 f. d
9,创建平面' _# L+ g, l. ^* t
UF_STRING_tgenerator;( Q1 @& M9 ~) A
UF_STRING_p_tge = &generator;
- J9 p" o8 y$ Z! r
# b% {4 D( Q# x' y' _' H6 _UF_MODL_init_string_list(ge);
$ V: y9 U7 o; W5 V2 k0 X* pUF_MODL_create_string_list(1,12,ge);
* t5 {7 y/ c- h" e9 l& H% ]% t
" R* f4 v$ k3 q0 v6 z7 z6 ]- J- Y( `ge->string[0]= 1;
1 M1 F& }( S' a$ ~ge->dir[0]= 1;//指定线从开始到结束+ g# @- Z6 S! `$ b, N7 C. ]5 r; j
ge->id[0]= arc_id;//指定边界的id
4 g, B+ I' z2 e, Vdoubletol[3];
) o1 @" A8 c1 a: ~! c8 @tol[0] =.001;//直线公差
8 m3 Q  o9 p1 j: j7 Ytol[1] = .5* (PI/180);//圆弧公差( N' G% i3 _7 c
tol[2] =.02;//不起作用. @0 h- T# H6 `2 m) S
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));. @3 D' o. S. M( j" Y5 R5 }
10,选择
; k/ y0 \! @6 M0 \. T. [" g; e' Q1),点选择- [$ I2 H( N# b% |/ D
tag_t point_tag;6 w& K# p+ U. t" N; E/ t* i; P
double point[3];6 Y4 G" S: M% J. J8 ~; }3 W' g
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  7 z7 C2 o' A4 ^
       intpoint_res;: K: H" g* ^# ?& ~% J/ A3 A

2 i: B. R. P  H5 _2 dUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,$ ]- O% i6 b0 R* j
point,&point_res));" M# ]+ D5 V3 J* z8 X
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
+ e. ~/ Y2 O+ S' Q{
% R) l; f7 J( Y. i# Y. } }
' U* o% ~+ r2 N( O* I  J2),向量选择, A0 V( Y; u: {% U
     int  mode = UF_UI_INFERRED ;. d% T) l2 I5 F. J; S/ K! o2 O
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
: M8 K* B! `- O. P2 l% x3 e) Zdouble vec[3];
% }6 Z! y) O5 l$ M9 Rdouble vec_pnt[3];# [" g' ?; F$ }$ I' U. Z
int res_vec = 0;( F: P7 s' e$ t2 ?+ ~7 i) l: u
     UF_initialize();  3 z. }3 r" ~4 J( J( d% R
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,* d% w" Q, f4 i, c" l0 t  d
           vec,vec_pnt,&res_vec);" v9 |1 M' _) W
     if( ifail != 0 || res_vec!= UF_UI_OK )   * I( O' R& `! N
     {     
6 X, a6 i9 C  v; R) V( ]           UF_UI_ONT_refresh();! p2 ?2 o, Q1 c. m- v/ j4 Y
           printf("No vector selected \n" );
" r8 ?1 S1 g( Q8 y* B! w, H5 G     }- \& V* h. T$ p( N
     else
/ d: E, Q: c6 y     {& d1 F1 |$ r- h& q) ^  L
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
* x( l9 U: K  D* e) y- W8 }                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );' h  H$ f) q, c% o' f: F! P
}
+ _! h% m  \5 Q/ D- C5 `3),平面选择& E6 N7 G* a4 j6 \
tag_t plane_eid=NULL_TAG;
. ~! F1 q% o6 b: f7 }  Ndouble orientation[9] ={0,0,0,0,0,0,0,0,0};( t  f) a6 E# g1 k
   double origin[3] = {0,0,0};
, B0 a/ W  T( u" Z7 |' }   double pts[6] = {0,0,0,0,0,0};
8 N5 i8 {& Z4 a8 K   int i, error_code = 0;. c& d$ {% [& }1 a; {$ t. {
   int mode, display, response;
- {$ ~, G  M2 Y   mode = 1;                    
7 F& ~: _; [6 B$ M; L% Q1 h* h4 hdisplay = 0;      # u  H* e- ~, y3 z+ r3 _
UF_initialize();; c* T! o  \$ l# b5 h
   error_code = UF_UI_specify_plane(
: h  t# @, Z0 o" e2 q. t' s         "Select Plane", &mode, display,
  p2 \4 f. e  }8 X6 _  _' }% v" ?/ h2 {( `         &response, orientation, origin,&plane_eid);
# q' @" `: c3 ?5 z5 Z; B& }: x" d) s
   if ( !error_code && response != 1&& response != 2)- g4 k/ Q: ]% Q. m
   {4 Y0 H6 |; k8 g4 h: O# J
                     for (i=0; i<3; i++)/ T0 k, f# C& @( W, ^$ W
               pts = origin + orientation;
. \7 J* Z4 N4 ]0 Q) K6 A8 S7 y% n* ?                     for (i=3; i<6; i++)6 [6 |2 D) t9 U
               pts = origin[i-3] + orientation;
( i. v& r: p+ U$ s         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);& |9 O0 W6 m! S  O. p) _% D
   }
1 [) M+ o# \  M0 A! k11,临时点,线2 O/ f* Z" [' p1 ^& l4 e
void display_temporary_point_line (double point1[3], double point2[3])$ ?0 R" @0 f5 t7 P. ]
{
! t& u) ]# L9 V9 v+ I  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
. x5 o$ e+ x" G3 x  UF_OBJ_disp_props_TColor;1 F' |1 v6 s" H+ f. e
  color.layer= 201;0 A; S, V0 V9 s" S% w) E0 Z
  color.color= 186;
* q0 P/ i! s' F' @  s* F* o  color.blank_status= UF_OBJ_NOT_BLANKED;1 z, R& C. g" M+ q+ ^& r
  color.line_width= UF_OBJ_WIDTH_NORMAL;
% C3 m8 i0 M+ J  s  ^  color.font=0;8 T* \6 L* i9 o( Z6 ^8 g# s9 q# m- y
  color.highlight_status= FALSE;
* L9 v' R+ c- K" I, F  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;$ H: C! `, q1 E; V; ?6 K2 E7 ^

/ H! n2 i( b8 ZUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);, y* _2 @. V  c' l
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
6 M5 }- ~7 H5 H7 e$ nUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
: e6 |  @- @5 c/ ]- t}/ h' H+ b+ M/ e3 Q) m
12,WCS与绝对坐标转换
# x/ a" h5 o+ f. X                        voidcycs_wcs(double point[])
' t  A; y& w- I* t6 S% k0 ?! o{3 Y! |) r" R$ g# ]0 M1 @
      tag_t  wcs_id,matrix_id;( H/ V4 s1 |6 {2 u. N1 r
      double matrix[ 9 ];/ y: \- W% }% P, V7 U- O; C
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量. y$ z7 \; W% c& ~% h
      double wcs_origin [3],vec[3][3],point_origin[3];; ~+ L+ v( ?! R" c; c8 x+ O8 W
      //1,得到工作坐标系; ^9 }$ X$ ?! n' e9 K
      UF_CSYS_ask_wcs(&wcs_id);1 J) h9 `5 f% E/ c  h
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    " z6 B+ J+ D6 f" L8 \
      UF_CSYS_ask_matrix_values(matrix_id,matrix);2 V- C7 P8 \0 n) B$ C! K
" l; \* N9 A% C: Q8 I& W
      //2,得到工作坐标系轴向量
" n. H, ]/ \7 b5 O1 j* P! U      UF_MTX3_x_vec (matrix,vec[0]);
5 N6 w2 W: R  ]- r- }      UF_MTX3_y_vec (matrix,vec[1]);) s1 x3 j# Q% v  b& m* ~$ k; ^
      UF_MTX3_z_vec (matrix,vec[2]);
% c  i6 f5 p: u, V& t  W$ _9 X) U# N% X, M
      for(int i=0;i<3;i++)
$ V( Z0 ?& L, J) b      {     
# z* `- {  S; L7 x& y0 _' N            double tol;6 `) `1 Z  S; ]" v' L. n
//3,得到点到工作坐标系原点矢量
/ R7 L9 K0 p- T9 G% [5 A( h            UF_VEC3_unitize(vec,0.000001,&tol,vec);
% ~6 V2 t/ m3 B8 z//4,得到点到工作坐标系原点矢量
, o3 r. a& |# F7 w            point_origin=point-wcs_origin;
) p% I! l: M4 C0 I7 I3 ^/ I      }
$ a- y& a: Q" T! E* i      for(int j=0;j<3;j++)/ {& H+ z% b! W! f! c8 I& ?+ d6 n
      {
/ Q( A2 \' J5 d) ]            UF_VEC3_dot(point_origin,vec[j],&point[j]);
) [2 {7 o. M4 h: x) S      }+ ^5 e7 a, }% \4 u% H& X
}; E7 ?9 O  H% i9 b& d; A
13,三点求圆心- J5 ~- y$ K+ ~
#include<iostream.h>
$ ^" T/ o3 U7 d& ~#include<math.h>
6 Q. p3 s; U* w: O% [+ }. P% f. X
int main()/ C# Z5 A5 I5 ~8 n0 A
{
9 R2 V) ?- }6 x! `* i      int x1,y1,x3,y3;
+ l% T) @! A' i: u      double a,b,c,d,e,f;; K) g/ ^/ C8 G4 _9 m
      doubler,k1,k2,x,y,x2,y2;
; b" U# m( J" i2 x' i      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;! F+ H$ Z+ J# ?; ?  p( v* G
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
! s8 }8 E) _: \8 S6 M& @. a8 K      if((y1==y2)&&(y2==y3))
( F1 }+ g3 ~3 h* ], m      {
' x8 w" m5 i3 F" C" ^) k            cout<<"三点不构成圆!"<<endl;
  ?+ C0 _9 i$ _4 Y            return 0;
- _* T* o/ p' T# s1 l, @      }
2 m/ P2 d+ `! C0 ?7 N8 c      if((y1!=y2)&&(y2!=y3))
: O; a9 A4 i1 J! Y      {3 O: E% X* E7 h- s. F
            k1=(x2-x1)/(y2-y1);# `# D1 o7 v& A
            k2=(x3-x2)/(y3-y2);# R8 J( O" E% i8 E# ]* ?
      }
* o, d, S4 x9 o8 E9 S# N  K2 w: n      if(k1==k2)
1 v2 w6 Y$ g& ~1 ], D$ ]3 E      {! }, W* C0 e) \' ?7 ~: m
            cout<<"三点不构成圆!"<<endl;
6 s+ X9 ~) J2 ^  g. I            return 0;8 S) ^' \6 B. S
      }' i( \# K' R2 p! {$ |1 q
      a=2*(x2-x1);
2 G( D1 p* [0 q8 Y% |0 `      b=2*(y2-y1);
5 h; @) F, c( `: C7 q! c      c=x2*x2+y2*y2-x1*x1-y1*y1;
% X) w+ {4 D- s: e      d=2*(x3-x2);! M3 i1 I' g" ~( c' M( T& I- f4 ]
      e=2*(y3-y2);
6 ^' l0 P- c& C: z3 {      f=x3*x3+y3*y3-x2*x2-y2*y2;
0 c2 u  I# |. ^1 O3 o      x=(b*f-e*c)/(b*d-e*a);" g, S7 K5 k+ B" Y9 {" \- B$ n
      y=(d*c-a*f)/(b*d-e*a);
9 U8 P4 g. S5 q( l3 K      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
9 n8 m+ t( f1 q- G& x  j7 [$ T      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));* z& c6 ^: G9 p
      cout<<"半径为"<<r<<endl;
& @7 ^3 Y5 d. D  ], {7 {6 p' _" j# r      return 0;! ~1 \3 D! T6 A: e
}' P8 H" W0 L" F% r( i8 h
14,查找圆心
) Y7 A: }2 F; v* J/ Y, p2 q& v: B            UF_EVAL_p_tevaluator ;/ d1 z7 T% q3 u7 ~9 x
            UF_EVAL_arc_t arc;5 Z' J' V5 x! b+ s
            UF_EVAL_initialize(obj_tag,&evaluator);
$ {2 B+ A  U( F" t8 N* W5 h            UF_EVAL_ask_arc(evaluator,&arc);4 x) D# o1 r) m+ E9 a3 k
            UF_VEC3_copy(arc.center,point);           
" D1 c6 x6 H9 |15, message_box& p! o6 I' P* V& G5 D8 Y
void message_box(int *res_mes)
5 }( r+ G! n. |! D{
4 `+ V: G; Z1 _" e6 `* t      UF_UI_message_buttons_sbuttons;+ c3 B" @$ V2 e4 F+ V- ?
      buttons.button1=TRUE;" R9 Y' L6 X: n' c+ L# X2 f7 i
      buttons.button2=FALSE;
6 d- L8 @6 U! x6 u0 U. k" b: V      buttons.button3=TRUE;1 x. L* Z0 ^, b& C
4 g/ j& M2 c6 j, ?' f$ _# ?
      buttons.label1="OK";2 F3 @3 A  z- e' _! ]8 t
      buttons.label3="CANEL";" R* f1 x% H7 R4 q3 a' \
  U( `( s& Q5 |1 Z% b
      buttons.response1=UF_UI_OK;) O( J* b/ }, r) `5 ]$ o. S
      buttons.response3=UF_UI_CANCEL;
0 }2 f4 ~, \* h8 ?2 f' p1 e2 h
3 J0 Q+ U3 Y' [, X. @  p8 U      char *string_msg;7 g2 G) n4 T- _) a( ?. P! c
      char*material_msg="ALL selcted objects will be removed";
& O0 l4 a  y. R      string_msg =material_msg;
( a- p4 s- x" R- H  r8 K% E8 I
$ \+ h! o+ d+ S8 w8 H! A2 V" [      UF_CALL(UF_UI_message_dialog("",7 _& e# _) `+ \. Q# ^' b& ]4 N8 L3 U
            UF_UI_MESSAGE_WARNING,& ]( X* p9 X3 t5 C8 q# ~8 y4 I
          &material_msg,
8 Q" H  ]; Y, R6 n4 F            1,! s/ X, C* }2 G7 n# D/ p" o9 G( [
            TRUE,  C- F/ k1 O" ]; h" W9 X
            &buttons,
: Q* }6 ~9 s* o. [             res_mes ));
; R- m$ J; c* e7 N5 e5 N8 J. I/ w}% w% z' B5 a, }) a
16,选择过滤
  n/ E: H: v2 ^- y5 I1 Sstatic int init_add_face( UF_UI_selection_p_t select, void *client_data)
! n* F2 P) M3 a) Q" T5 t+ V( R* @  ]{; G# z* ^0 z. p* c
      int nums = 1;( H/ h* ?2 P: W8 |, Q
      UF_UI_mask_t masks[] ={
% l0 i4 f# D! T. ]7 c' [            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};4 J' U9 ]6 y. v( L5 T# ~) `

1 F/ N  D$ i6 {* l: b* y            if() \* U9 ?2 U; T. U: p% e9 K
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
/ D$ z% |) w" d) Z! @                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
* c& \5 v6 b! _8 W6 e7 N; `# N                  )" z4 B8 ], a! e/ z+ p
            {
3 u" T; C4 J/ o0 h                  return(UF_UI_SEL_SUCCESS);8 Z+ P0 m& \1 O0 b, \
            }/ n; U, X0 B7 g5 M, Y! O' L
            else6 |1 m& y5 t& ]
            {     ' L1 T. x6 }' m. \: h1 }
                  return(UF_UI_SEL_FAILURE);
; Q) P5 n4 S0 |5 T) g            }1 d3 v" h+ Y* B% F* E2 H1 ?
}4 R) Y; t  `0 {! H# @
int find_tag(
& X0 m8 O* L8 L& T. l3 _, h                    void * client_data,//用以传输过滤资料
' ]0 d# w; R2 b) y! K                   tag_t object//现在鼠标所选物体ID
3 _1 |. d' E/ q% }! O                   )$ m, t2 h7 m* }8 P: _
{9 H- W2 ^: W- D
      user_data *obj;' {' H6 n1 K9 s2 H6 d* O! r9 c
      obj=(user_data*)client_data;
7 ]) ~6 I6 p9 V" x      int find_face=true;//接受
, x2 K! j7 M  C! p5 O" E      char *string1;* h( R9 h- x/ O
      string1=newchar[133];* G% O5 O$ O1 @2 z, q
      string1=UF_TAG_ask_handle_of_tag(object);
! K( }5 i( s* f2 i1 h% }      for(int i=0;i<过滤的数目;i++)
9 \+ K4 r2 t( X8 O# `      {
0 p6 H% O4 a" Y
8 ?) i& @4 N" w% Y* A* V: t' W            char *string2;0 ?2 ?8 I; q0 I6 U/ ]) o* H( r8 F
            string2=newchar[133];
" Z) V" K' I) Y9 Z8 L) a            string2=UF_TAG_ask_handle_of_tag(物体ID);2 b# F) B2 S! n8 A
            if(strcmp(string1,string2)==0)7 _) z% |6 i. x0 T  d- `2 T: F" `
            {
6 I% Z- _) q9 U( W                  find_face=FALSE;//不接受1 ~' [. @- Y: \3 ~
1 G# @2 [2 Z- H# W; W
            }
; w( w3 G+ n" A            delete []string2;
# D; I  p1 }) K* Z1 ~      }! ?1 H# p/ c1 f* l' _0 [* Y* p
      delete []string1;
8 S. p$ T2 M5 `3 W9 c. I% |      return find_face;
+ U; V  p0 d4 m}
; M) j9 s$ J( g2 o$ e, A; m: P* Y) q; N* t* q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了