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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
3 Q7 c9 P) z% H1 ~1 X6 V
7,裁剪片体8 \( E8 z* s1 p5 }! @2 A
tag_t  *trim_objects;
+ G7 [! p* k1 u' R4 \3 ?% htrim_objects =new tag_t[count];; h. }9 i; g/ ?% z
trim_objects =bound_id;
9 ?8 W% w: N$ ?5 o' i- w: qvoidtrim_sheet()9 [9 t3 R: j8 v2 A3 `
{
( q, W6 f7 {, ~  W2 }4 s  z: L  ]$ ?2 \0 z* h7 x6 ?) ^
      UF_MODL_vector_t projection_method ;
2 F5 X5 k" H! o6 V5 D; R! x      projection_method.reverse_vector=0;
- m) |, s" ^* N( }& ^      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
9 d( q. c8 ~3 l1 s3 c. _      UF_MODL_vector_defined_by_union_tdir1;
+ F' P4 X$ a% V% ^0 V% {      UF_MODL_vector_direction_t dir2;
/ h9 \* l: q) X/ C% D6 W      dir2.xyz [0]=dir[0];+ r, m9 L( }- P) ]0 d
      dir2.xyz [1]=dir[1];+ O$ r5 ^* [/ e/ A* p
      dir2.xyz [2]=dir[2];; h# V6 G7 i$ z. I
      dir1.direction=dir2;
; A' k& H3 V1 \6 i4 u, q2 E- M
  y# x1 K" @: X& i: L      projection_method.defined_by=dir1;2 |7 v1 C9 d. P8 H; @
2 D3 J0 r, h+ ~- E% v
      double point_coords[3] ;. w8 {( G7 k, F5 G. \  Q3 |( n
' y' d: q% Q7 n. N. U" Y, I
      point_coords[0]=center[0];9 Q$ d8 d+ n- z
      point_coords[1]=center[1];! o0 b7 x- P$ `, _; N
      point_coords[2]=center[2];% l0 F! s* ?/ B3 T, ?) U! K
$ [8 j& z  w( b6 v, i0 v
      int gap_point_count ;
! ~3 S5 H( s+ @      double *gap_points;. Y; b/ M; k' y# v
      tag_t feature_obj_eid;: I* ^$ F! l1 w0 ~/ e7 ~+ d
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,& U5 c( p+ y$ k& U
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
7 Z- ]6 l/ i% U4 k+ o
( P+ ?6 c3 E0 }  B# w  O}( A( S4 }& a5 E3 |1 P0 w
8,offset偏移
9 O  W2 f  y& ]' _
* r% Z9 ^) b* o9 {' ?, L4 vchar   distance_str[] = {"10.0"};//偏移的距离% G. [2 E/ Q4 |* o

2 q% r3 T  L' Lint  num_curves;
- s# m* i) d9 M9 r& mtag_t *offset_curves;. _) g' L( [; v& @  B# e. |
UF_CURVE_offset_distance_data_t  offset_distance;
* K; p. i5 }4 x4 `. v/ }  s! koffset_distance.distance= distance_str;. h7 r! y4 k# p! x# R
offset_distance.roUGh_type=1;
. a1 e- r3 L+ p, F2 r3 k* ?UF_STRING_t   input_string;9 Y% G% V6 X/ |+ ^$ X) u
input_string.id=curve_id;//加入想要偏移的线
* `* W3 A6 X- ~4 K; Vinput_string.num=1; //偏移矢量方向数量
% C# T( l' k2 w2 |, z( Z+ Tinput_string.string=&string_count;//偏移线的数量
; K+ j$ z1 [& o+ I$ lintstring_dir=UF_MODL_CURVE_START_FROM_END;. R( i9 ^' C7 {2 D
input_string.dir=&string_dir;
5 v1 |8 x, o% s6 _# Q  y/ `+ r
* K* y. ]$ L8 V% p6 ^UF_CURVE_offset_data_toffset_data;
( m/ y8 d2 _9 E5 r$ d8 D, E* P9 T) z' Z( G7 j- J
offset_data.offset_def.distance_type1= &offset_distance;, X, ^0 L1 r7 K- B
offset_data.input_curves= &input_string;
4 s  S3 T- h( o& ?offset_data.approximation_tolerance= 0.01;3 t) e# k  U0 o% o
offset_data.string_tolerance=0.001;
! v6 S, M- v" @' moffset_data.offset_def.distance_type1= &offset_distance;
% s, U: a* J( N! N3 A, w8 z+ eoffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
' x/ A/ r7 F- e  Q% z$ @UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
+ ]) p7 s& f7 _7 C&num_curves,&offset_curves));; H! k3 x7 b* l; Y6 a
9,创建平面
2 L6 j3 Q; k  M+ I% O" i" r) E6 mUF_STRING_tgenerator;
% i* B8 \7 m" ZUF_STRING_p_tge = &generator;$ {6 H" j/ L" A. X6 l6 t
/ D% l6 t1 ^% e& q+ x! Q$ G1 O3 k2 ~
UF_MODL_init_string_list(ge);
! O* [* ^- \  C8 C' W7 e& K8 tUF_MODL_create_string_list(1,12,ge);
/ M# o3 |8 `' N( ^- |4 r
- w+ ~4 I" d. Y. I( h8 E, C4 Dge->string[0]= 1;
6 |) p* Q# K0 ], z5 Q+ Mge->dir[0]= 1;//指定线从开始到结束
, A8 P7 M8 O' f% z, j: o! G% Jge->id[0]= arc_id;//指定边界的id
) c/ H# Q: K2 Kdoubletol[3];
6 c; A, z. S& U% I. htol[0] =.001;//直线公差
" d/ J, p8 \7 L; m5 F0 L% Dtol[1] = .5* (PI/180);//圆弧公差' i! ~. a0 V: i1 \' J0 ~" r
tol[2] =.02;//不起作用
+ ~& m2 R$ j1 K1 GUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
9 ~1 O! z* t( s8 z7 |# S10,选择
# y0 f2 ~+ A8 c; I* t1),点选择" A$ _& Q( H" v! Q/ C% z
tag_t point_tag;% q5 P7 `. a) I% b' d/ s, ?
double point[3];
2 V% z' N, L- P- Y" l) L2 U$ R9 a       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  4 s8 N% A8 }! c) ?" m
       intpoint_res;
' {) p4 S$ L6 e8 p! F4 B, N  Y* Z5 K
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,+ R4 R4 }0 q5 ^
point,&point_res));' o$ b7 L. R9 I/ v  R" H( {
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
+ v5 p& Q% Y7 W% ~0 k{
( Y9 y+ E3 h4 R5 \ }+ H1 v8 f4 X) }- x& t
2),向量选择
/ q5 T, ]. W1 ]$ `, S     int  mode = UF_UI_INFERRED ;
9 a; r! Z. g* i( G) }9 p' E7 u     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;) e- n% s6 c6 J: r
double vec[3];
) ^8 e+ w$ J' h" `& \9 Xdouble vec_pnt[3];
; @; k% _; d7 M! m/ N2 h+ j) j5 t+ rint res_vec = 0;
. |* Q, L+ x$ O: E, t     UF_initialize();  
6 k% V( K/ J+ {. B" Y     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
9 N/ p- a+ \) t1 ~2 j3 F# Z" r9 F           vec,vec_pnt,&res_vec);
; \% h. p+ b$ H' P. N     if( ifail != 0 || res_vec!= UF_UI_OK )   
' _. {& E" o5 _; G1 `% @     {     
% j! i4 g; y; l' ^           UF_UI_ONT_refresh();
2 f7 j/ y5 X" w0 K           printf("No vector selected \n" );
% E6 o) l- t$ C  g7 a     }
; C" A. C/ F# U# }     else
- y/ u% {- M/ c& I3 O     {1 ]+ ]* z) Y! v2 j6 e# @
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
& E) k" [& b2 }! t( [3 e                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );. n& J7 N6 p6 k5 g0 L2 b
}
6 ^5 R% b/ V- m% X( K3),平面选择
" b. ~/ \9 s8 b0 Ktag_t plane_eid=NULL_TAG;
8 R3 B& x) `( I, M, Xdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
9 G, g- Q' X' j" H# s   double origin[3] = {0,0,0};
) i; F. o7 g4 j1 N2 i+ z7 j/ D6 U   double pts[6] = {0,0,0,0,0,0};: d* L) e8 F" N% _/ j0 @# T
   int i, error_code = 0;4 m; Q8 c" \' ^( J& T
   int mode, display, response;) o; e6 a8 X9 {
   mode = 1;                      w" x, T' Y6 S
display = 0;      1 \. c% X5 u0 p7 }3 l
UF_initialize();
# R/ m' o5 y* D7 u1 [   error_code = UF_UI_specify_plane(0 y0 p0 R8 Q+ W  j: }* d
         "Select Plane", &mode, display,
0 e5 O0 [& F. h1 r         &response, orientation, origin,&plane_eid);
! M( s7 W0 t5 t! V" K8 z$ t9 ~2 x& w* I$ {  u/ e" W8 Y. I& |
   if ( !error_code && response != 1&& response != 2)
/ [( E: ]: Y( s( B; g3 g2 {; S; b   {1 w+ B* ]# c3 w# w% Y& T; v
                     for (i=0; i<3; i++)- r  w8 d9 D& a7 B! u" N; Y
               pts = origin + orientation;
) y7 ~/ Y' e# g                     for (i=3; i<6; i++); o' V3 }" m; D/ n7 y" X0 b4 E
               pts = origin[i-3] + orientation;
# _: e" p% P9 ]4 I* }: K6 L         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);$ w8 J! q8 F# o* U4 J4 V  x. Z
   }
+ ]/ q6 [4 ^' W% q* w- |11,临时点,线8 W5 \4 @. H! G8 a6 p
void display_temporary_point_line (double point1[3], double point2[3])
! I" [+ S6 E" d. [4 j{
4 z+ t6 o5 _( G$ T" C4 K  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
7 g) D$ [5 i" j1 x  _, k6 \8 n  UF_OBJ_disp_props_TColor;
# r9 Q- g, [  i* u+ U# P  color.layer= 201;
$ A. ?, d" y' v7 d) H' r  color.color= 186;" J' @( a4 v7 H4 v+ a+ |
  color.blank_status= UF_OBJ_NOT_BLANKED;
# P" d, ], r7 H5 Z  color.line_width= UF_OBJ_WIDTH_NORMAL;
+ o2 l3 F, x  D9 d" Q* F1 z6 w  color.font=0;. N& M2 i* r* i" b0 }
  color.highlight_status= FALSE;0 g! M  ~& V. l& q5 |
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
; c, B$ K; i/ t/ |
  _2 a4 r" h4 t  x6 |( GUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);0 X0 U7 f& G- E+ g
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);5 l1 l. S& {- O( x, E+ w
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
. U+ |( r" z6 D; ~}8 g1 U9 c+ c5 T- e
12,WCS与绝对坐标转换
) I9 W. Q5 N: o1 ^: f                        voidcycs_wcs(double point[])
" i0 S3 z4 X2 M! r+ W4 [/ r{
* E2 f" f3 n0 o. t( z- O      tag_t  wcs_id,matrix_id;! y) s2 A1 X! o, K/ S$ `
      double matrix[ 9 ];& u: m& A8 L1 Z
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量4 w& G; ?( q. I) {$ K% v, o3 F
      double wcs_origin [3],vec[3][3],point_origin[3];" q& u( @8 A$ W0 U
      //1,得到工作坐标系/ R8 ~( |  w8 k# X! J
      UF_CSYS_ask_wcs(&wcs_id);
  m. U# F" U2 C8 [. J1 o      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
3 B3 `' I* l' q: J7 ]' S5 k" B      UF_CSYS_ask_matrix_values(matrix_id,matrix);
2 t9 c* E! E- @8 c. d) I# x
6 ~% e& V  Z8 a* E& w" E0 W      //2,得到工作坐标系轴向量  p/ B3 R/ `, m8 l4 D( j
      UF_MTX3_x_vec (matrix,vec[0]);( U" c7 x1 a, j) c/ o
      UF_MTX3_y_vec (matrix,vec[1]);5 w- V3 R7 t. F( t5 \+ {/ D
      UF_MTX3_z_vec (matrix,vec[2]);; f# Y& j+ R: q9 u8 ~

2 g: L# C( J$ b! R      for(int i=0;i<3;i++)
( W* N+ H; N/ A" s! r) V      {     
+ |+ t( i5 m0 q# x' s- {            double tol;$ N0 Q1 h( ]5 V" F, s8 Q; n8 L, o
//3,得到点到工作坐标系原点矢量5 V9 G# n( {, a4 ~% _  d( a9 k$ K" _
            UF_VEC3_unitize(vec,0.000001,&tol,vec);7 L: G4 F, h6 C6 s% J/ R
//4,得到点到工作坐标系原点矢量, t6 x, d5 v  Z6 M. G3 Q
            point_origin=point-wcs_origin;
. Y" r, |1 ]5 Y( ]& C' A      }, a3 l" V# k* E( ]$ A! c' L
      for(int j=0;j<3;j++)! C7 w/ i% V  D
      {& H  i2 i! @; A5 O
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
7 Z' w  |! V: B* `      }
9 d! |' k& w3 g: |$ X' o2 n3 i}" r% t5 ]) I$ X
13,三点求圆心
4 g2 H7 Z( }2 s3 _2 K" D- u#include<iostream.h> / Z; B* ^! `8 w4 e3 W$ B/ w
#include<math.h>
2 |% u- m; l: T7 [8 H
- v! p1 i+ Y5 p/ pint main()
) e! M7 O+ F2 d+ P{
8 h- Q2 D8 w2 d: O8 \      int x1,y1,x3,y3;
9 {( }# q8 w' u      double a,b,c,d,e,f;% k; ~1 S6 z% Z6 `
      doubler,k1,k2,x,y,x2,y2;( f3 H8 z5 P* s% z  `: O1 u: i
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
# H. e; j# r/ g  \0 b0 y3 h/ p      cin>>x1>>y1>>x2>>y2>>x3>>y3;
' h' M4 h! |- p6 V+ s      if((y1==y2)&&(y2==y3))& Z0 ]4 q* x* I9 Q7 O$ K
      {
( l9 \& N" @6 {# x/ l            cout<<"三点不构成圆!"<<endl;
0 Q+ {, n# Y% |            return 0;
% N+ L) m; m; A      }, @2 C; `- h8 @2 c" K, ^- B
      if((y1!=y2)&&(y2!=y3))) C8 X& s& Q- ]' X' p6 j
      {
) o4 O+ A& p. b5 B7 Y. P4 b            k1=(x2-x1)/(y2-y1);
# h' {: ^4 }  L4 X) U: u6 U/ d            k2=(x3-x2)/(y3-y2);
/ [: _! F" N+ y5 _+ d# r. |      }
( N4 N5 w+ r( I9 ]# d+ t      if(k1==k2)! P& {& c) u' x8 V6 x  Z
      {
6 d. K5 X9 M6 s4 G. \  @4 ~            cout<<"三点不构成圆!"<<endl;
% @% ^4 N9 R7 U" g- z' n. u0 r, s            return 0;
% K% ]" i0 Q$ ~" w, ?) m4 j6 ~' ^      }
, M; c* K9 k- r      a=2*(x2-x1);
' {9 H, R4 s: y. n. B$ c      b=2*(y2-y1);
* ?: t  e7 {3 U7 _      c=x2*x2+y2*y2-x1*x1-y1*y1;8 V. h" \4 j' w& ?2 h
      d=2*(x3-x2);( j! A2 m5 ~# r; y6 q$ R
      e=2*(y3-y2);  H# m  I4 C+ r9 E: O$ x
      f=x3*x3+y3*y3-x2*x2-y2*y2;0 s( L- {2 a* \" l0 s& A5 {1 Z5 t
      x=(b*f-e*c)/(b*d-e*a);
! f9 ?3 q7 s* A* i      y=(d*c-a*f)/(b*d-e*a);/ g; }( Q5 ]: o0 i
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;, {5 {6 k; @, b. ?! ?
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
9 L4 m1 J' s0 `$ x6 V      cout<<"半径为"<<r<<endl;
4 [! N3 `# B* V! Y1 D1 v. D) w" H      return 0;/ R0 u& V3 r: L  s( x7 }2 w
}
3 d3 T* y* @2 ?6 J: K14,查找圆心+ M( G* [! ^8 {( B+ a; a
            UF_EVAL_p_tevaluator ;
5 Y/ T' U( O$ j6 N. G9 y8 u            UF_EVAL_arc_t arc;' E1 f& d6 _8 ^
            UF_EVAL_initialize(obj_tag,&evaluator);" s$ r$ h6 K: O. B& W9 ?
            UF_EVAL_ask_arc(evaluator,&arc);: K- }5 I) A6 r1 O
            UF_VEC3_copy(arc.center,point);           
* O; k) \* j! A2 c15, message_box
, C  a0 K3 I. l* U- Nvoid message_box(int *res_mes); t, w1 P! Q" O/ Q, W9 P/ Z
{
& r9 k) k$ g* V) V6 B8 H! K      UF_UI_message_buttons_sbuttons;/ v* y6 h. U9 |
      buttons.button1=TRUE;  t( O2 m% T8 W
      buttons.button2=FALSE;$ p# F2 \6 \6 r( X0 v+ |
      buttons.button3=TRUE;
3 W% p! D" a* E3 q% b, h. w" k+ G) m2 N
      buttons.label1="OK";5 g0 W1 G+ o6 y) S4 ~1 ?
      buttons.label3="CANEL";
7 c3 i3 |! ]/ V" u9 n) |; H( G2 @3 ]
" X* g' W1 q) h0 ]# S" V/ d' M1 d9 m4 A      buttons.response1=UF_UI_OK;6 h8 [+ O; s8 a2 @
      buttons.response3=UF_UI_CANCEL;
' G2 E/ ]! @( |$ v$ y5 ?% T
( L+ ^! [+ T7 U4 W7 @      char *string_msg;
8 K% t0 e% l' f( Q6 t' W4 L( Z      char*material_msg="ALL selcted objects will be removed";
9 H3 K7 B& g0 w      string_msg =material_msg;
# K2 h/ ?2 d, G+ e1 x& T* \: ^
+ X% c5 W# w8 s6 Q      UF_CALL(UF_UI_message_dialog("",' _: ^' Z2 V' T6 L& H2 B# O3 i
            UF_UI_MESSAGE_WARNING,$ K* k, C6 a3 U
          &material_msg,
6 p' y9 k/ r4 n. n: B: H            1,: D* U; s; Q7 k9 D& s( C2 f
            TRUE,
* V+ x' d  Z* K6 i( s  I            &buttons,9 A0 i" q* O2 j
             res_mes ));
$ V, Y% v, P1 L1 q}
5 G9 ?3 j) q3 o" Q16,选择过滤2 _) o% Q) K3 |$ v5 Z0 X
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
% R( D( E- U$ e( F{7 l# f8 k2 @- w. @# B3 a3 S
      int nums = 1;
3 X2 v. m: G3 s) O/ _4 G      UF_UI_mask_t masks[] ={
0 N+ i0 t% i. z+ u  W            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};
+ s" e1 R4 ^& a& L" f/ ?; h7 l
            if(
* O' E8 s& M+ k' \                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)- p, A6 O7 Z$ o& g5 }2 C- E
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)1 V  Y0 @2 G+ X: t
                  )
' q; E+ @# B0 z9 e9 C6 q- f. f            {' }5 A  D8 I* s# r( Y
                  return(UF_UI_SEL_SUCCESS);
0 q0 }8 b, k, m+ ]) Z1 d, u5 v            }; @% Z# m/ k/ x1 ^* D& U( Z
            else
3 @1 z. |, {- _5 L, r: N            {     2 F' S2 E8 G6 A9 Z; ?5 Y9 ^! u
                  return(UF_UI_SEL_FAILURE);
9 c* ]+ s* b# W! b% l: W            }* |% A* z4 v6 a* r
}
8 V0 `& Y: n2 B9 x2 ?5 N, ^/ Dint find_tag(
8 J% c/ E3 N+ ~- b8 r9 n0 w                    void * client_data,//用以传输过滤资料
: z& n0 C9 X, ]8 ?/ x, d9 t8 c4 |' _$ k                   tag_t object//现在鼠标所选物体ID1 o1 _$ \0 ~4 D- e1 I- U$ h
                   )
6 Z" U- E1 j* v( ~6 r& ~) k' X{5 [/ ?/ g& u5 W
      user_data *obj;
% N# A9 W2 ^( a- _# T      obj=(user_data*)client_data;
8 v  W+ t8 G" d* G0 T& f7 k      int find_face=true;//接受
( m" B( \, F' M/ T4 t$ ?      char *string1;
* y2 n9 Q( r5 h" x      string1=newchar[133];
$ c. a$ P% i! d% P9 g4 u1 C6 s7 h      string1=UF_TAG_ask_handle_of_tag(object);
( e- [  r: @. p8 X  Z      for(int i=0;i<过滤的数目;i++)
- E) B* g0 M/ t3 z      {' n& ?" @% K( _) K: W3 _9 w1 B

6 x$ Q' K# i: }0 I            char *string2;. O( J, S  s6 q) V, F, _$ E
            string2=newchar[133];2 Z4 ]4 A# ^3 a3 s, _. r
            string2=UF_TAG_ask_handle_of_tag(物体ID);
- e9 X0 d, Q1 T5 I            if(strcmp(string1,string2)==0)
2 @6 q/ I- W4 J' `            {
; w: N" k6 D) j& w                  find_face=FALSE;//不接受) H  S8 n: F0 G$ |+ Q
1 q2 ?) N) M/ h3 w8 O
            }
: D+ @" m, U  m/ H            delete []string2;
9 x% V0 d3 g* a  T" {# G      }0 J; c8 r  u# d; e8 }0 n! J
      delete []string1;
( {& d6 v2 z# ^  e* t4 b4 Y" I      return find_face;9 w6 Z( o" ]' ]
}
( t% d4 @& N  i9 Z5 @
/ U$ N/ ?+ p/ [! J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了