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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

: r( ?8 c' D# ~- U7,裁剪片体
& R: f: g/ ~/ Q5 W: I7 B9 z  Utag_t  *trim_objects;
& A4 d7 F9 y! [& \. Etrim_objects =new tag_t[count];
8 C8 A; ^' x9 J$ f# Utrim_objects =bound_id;: }/ _9 C& p( z8 ~  m0 @
voidtrim_sheet()% c7 u+ v: A- F/ e3 B
{: K. M; m+ Y  M  Z: b7 Q- K

  N" y( y4 v) U5 e) v8 J: Q: x) [/ T      UF_MODL_vector_t projection_method ;; i! z( h9 }8 k9 j
      projection_method.reverse_vector=0;
& a) `& M3 D- g7 I/ [      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
  g  m) N. f+ M  O& m      UF_MODL_vector_defined_by_union_tdir1;
& m: N( {( a/ `7 @9 n" ~      UF_MODL_vector_direction_t dir2;( u4 o/ G7 X. T
      dir2.xyz [0]=dir[0];
! q3 F/ d7 V. u6 `      dir2.xyz [1]=dir[1];
  i" U5 ~) m& F9 T( @      dir2.xyz [2]=dir[2];4 j/ B/ }9 x# D9 l# \! w' A: O& g- v
      dir1.direction=dir2;
4 C. \  R6 F7 a8 S* u# q/ y# k7 a# }/ r+ V) H: E
      projection_method.defined_by=dir1;
3 B) t) _4 t) v2 F# e
9 {9 V1 L0 }- I7 W" N$ P3 L$ l      double point_coords[3] ;9 D/ x1 R9 g6 a' E: a, ~1 Q

) l1 ^+ I. E3 |      point_coords[0]=center[0];
7 U* Q- I1 R, O9 g: v* L      point_coords[1]=center[1];
- |7 ~' |* j* U" i2 R: J' x      point_coords[2]=center[2];
' i& w3 a; D! i* G3 x# J  ]! |  I% ~* I3 P
      int gap_point_count ;3 X" ~/ x5 H# n4 K6 K2 {
      double *gap_points;4 N! z0 ]3 X+ W
      tag_t feature_obj_eid;& Z9 i& \. k2 E/ L
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,* V; c* |, b. `- `2 _& F5 R3 r
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);; K4 O$ }3 q' i2 E1 e( z

/ Z  S, Z! A5 m# {! y}
7 n# w4 O/ {% q) `8,offset偏移
$ }4 E: K1 P, Z$ `. [1 n$ P/ q# \
; F7 C* t. B& e$ I' q4 Dchar   distance_str[] = {"10.0"};//偏移的距离7 V! i( [3 }! O: Q8 ]

7 q8 t1 L! c1 m2 v$ {( z. @int  num_curves;
% K1 E9 v( J" Y" p. \tag_t *offset_curves;* M9 @% w0 Q8 o
UF_CURVE_offset_distance_data_t  offset_distance;  U( \- p4 r8 q( |- ]  }: h
offset_distance.distance= distance_str;% q: s$ f' {7 ]
offset_distance.roUGh_type=1;
& F0 E% ?- A7 N! z% l* PUF_STRING_t   input_string;" u9 l4 z8 z1 j: g0 j
input_string.id=curve_id;//加入想要偏移的线; C2 E. Z1 M, T5 p% |
input_string.num=1; //偏移矢量方向数量7 d- |8 \& Z# x6 c; P
input_string.string=&string_count;//偏移线的数量
- p/ \6 i* e0 E, i! hintstring_dir=UF_MODL_CURVE_START_FROM_END;% R* O0 R2 Y: L3 A9 ]
input_string.dir=&string_dir;
" g1 x8 B8 v/ _. g0 @! M
% M. D7 v! R* E! Z9 c" }9 @  M$ LUF_CURVE_offset_data_toffset_data;
0 {) a+ P! i" Y- Z5 k4 o6 p
+ F1 r, F' g0 o5 r, H6 Joffset_data.offset_def.distance_type1= &offset_distance;: j  X7 |  z, t+ n  O) ?  X- O
offset_data.input_curves= &input_string;
& I) R5 M3 I$ E4 L! P7 d% @' ioffset_data.approximation_tolerance= 0.01;) a/ j- Y, `8 k( [  _) n
offset_data.string_tolerance=0.001;
( a9 T; E: D: J* ~( A0 Noffset_data.offset_def.distance_type1= &offset_distance;
: _) h% u7 ~  x' {: `9 Joffset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
$ a  R. X- q; G' d/ hUF_CALL(UF_CURVE_create_offset_curve(&offset_data,+ _. ~$ w, l1 Y& L* W  c
&num_curves,&offset_curves));
, k0 t! f! B5 H$ ]9,创建平面  V) C  X) E8 G( V, A# y( P. A
UF_STRING_tgenerator;
& Q$ b4 [2 M4 T9 M9 l; S$ r- w# RUF_STRING_p_tge = &generator;8 {* V3 j# X) C* X6 k

; ~5 J" X. ]4 L) y) n# n7 yUF_MODL_init_string_list(ge);
* ]7 j, l) F) q3 BUF_MODL_create_string_list(1,12,ge);5 u" e( Y+ ]$ s& X
5 g! g1 J- S2 Z8 C* |- T+ _& y
ge->string[0]= 1;# i; S( t' j% k; x6 t, l! p
ge->dir[0]= 1;//指定线从开始到结束8 n. E4 d3 T7 V3 A+ b3 [. k: Q* w
ge->id[0]= arc_id;//指定边界的id
, F. F4 C$ B: _: Mdoubletol[3];: J5 S! B3 X; w- [# B
tol[0] =.001;//直线公差1 R. \* Q$ i5 d; l$ `# c0 z4 z
tol[1] = .5* (PI/180);//圆弧公差" o( |% G% c( [7 |: p5 O! u
tol[2] =.02;//不起作用0 [* M) c( h4 I
UF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
! i3 p( J& t/ N- F7 g+ d( ~8 N10,选择
; A: _& q# `" i2 @( S" ?( a1),点选择5 Q) v( F" q" t8 W' I. y) G/ }; @
tag_t point_tag;1 \/ q# G+ J* C  X/ @- m+ |
double point[3];, y% O7 D' h7 u
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  - C( e* h) x+ F$ t
       intpoint_res;. ~% S# S/ U' H/ A3 f. k  f4 @
; ]0 e% i9 C* k6 b% n: f7 f
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
& @; Q; p" N7 ^' F* ]4 E/ H) kpoint,&point_res));
9 {8 S) I: S& ~8 b; r* _" O4 i5 \if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
% g# ?! {; [1 O{2 U8 I5 Y) x2 f. A2 r+ u8 _  v
}/ G5 ^4 W" t& l; L2 ~% `
2),向量选择0 S2 y; w% G& L6 I; Y
     int  mode = UF_UI_INFERRED ;2 r( w. m3 O+ C1 L
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;, o3 h4 j7 y& i3 U
double vec[3];
& K3 `' v9 ?$ i. u. X- `- Adouble vec_pnt[3];
8 M4 Y+ Q# `, \3 `0 Aint res_vec = 0;
7 }# ?7 H3 m9 U8 x& X$ E. ]     UF_initialize();  
4 c8 K/ f* m2 o- W" m4 i     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,, F* j9 B% Y  f; T' k* k
           vec,vec_pnt,&res_vec);
& h0 U4 o9 ^9 I0 a" h& h9 v     if( ifail != 0 || res_vec!= UF_UI_OK )   ! k6 Y) }1 N: @/ P1 A
     {     . v+ P) n6 G; j4 U
           UF_UI_ONT_refresh();
+ g+ E1 r8 h  `) C& E: w+ d# y8 N           printf("No vector selected \n" );: C& M+ m* k" l7 V
     }# B( Z8 o$ q0 D3 L3 H
     else8 n" k! N' J( z; G, N& q* U7 t/ A% o' d
     {
% n, ~: r: ~8 q$ I& q           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
# [+ i7 q; V( n! Z# D; S- Y                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
9 C  }& Z5 S4 ?$ [1 c}
( N8 O7 D6 M4 K' t3),平面选择. u/ u6 ]0 k' x6 O) j& o+ l% l
tag_t plane_eid=NULL_TAG;
3 ]9 Y* Q* a- Jdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
1 N0 u; ~( R& Q' t2 _, v' Y   double origin[3] = {0,0,0};# {& B7 I3 U0 C" U
   double pts[6] = {0,0,0,0,0,0};
/ }. P, k/ F. p7 R6 s! s9 o2 ]( m   int i, error_code = 0;9 h' q5 n! K" K
   int mode, display, response;* n$ M4 C+ y1 C, W
   mode = 1;                    
# W0 n6 O, L+ ?- m6 P. bdisplay = 0;      
) ]& \! @+ q: |2 t8 s: ^3 TUF_initialize();) i2 d6 s0 X( d/ B! R
   error_code = UF_UI_specify_plane(: e/ u' r5 j: b- K& d
         "Select Plane", &mode, display,9 t9 G. z7 o0 h- r5 ]* B
         &response, orientation, origin,&plane_eid);3 c- U. F* L$ j0 t

5 M9 K  t* A6 b+ }0 \  c   if ( !error_code && response != 1&& response != 2)
" G. y5 b' Z; ?  n8 Y8 y7 {   {
! G- l- k/ b* y( i" A3 O, Z+ g                     for (i=0; i<3; i++)
1 \+ D4 n: E6 E. H& N1 W& ~6 [               pts = origin + orientation;
( T- T0 [# O3 T% s* r2 V                     for (i=3; i<6; i++)
, C; S8 a7 j# T6 B, m( n" ^               pts = origin[i-3] + orientation;+ g  d% X9 R& s, x
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);/ Z! X: F6 M9 C( f" m
   }: |- ?$ @# X7 [
11,临时点,线; V9 H# ~3 {: x/ O! l" G& [
void display_temporary_point_line (double point1[3], double point2[3])
! B2 R4 c  R' ?# t{
9 a) R. c: y1 K  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
/ }/ }5 m  b7 ~- o$ o6 V% H  UF_OBJ_disp_props_TColor;
; N$ A! n$ T9 }  color.layer= 201;
  f+ m) M; C! f9 j3 {5 M7 p( v7 @  color.color= 186;7 D) a$ E1 e, r
  color.blank_status= UF_OBJ_NOT_BLANKED;
+ _1 U7 q7 P6 ~  color.line_width= UF_OBJ_WIDTH_NORMAL;: Y. C+ ?/ M1 t9 x0 r
  color.font=0;
) U/ O: B# E3 T- a  m/ P' g4 I  color.highlight_status= FALSE;% E4 D$ h4 c* m4 A5 ~% P
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
8 |; `  f1 E. _1 ^2 I; [+ [0 N9 `- F5 t, D% _
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);% u5 Z6 ]$ Z! C4 u- E# Q
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);) Z+ T# H0 J+ S# `7 U% M% ^
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
+ s$ d+ K7 u) ]8 N# ~% _}, a+ g- `; |8 v9 c2 J
12,WCS与绝对坐标转换
& |2 T9 t/ i6 p! n  k. u. N- s                        voidcycs_wcs(double point[])
- {* Z( m: c/ [9 v- d3 F% ?{
# M4 t. Z4 U- e$ M      tag_t  wcs_id,matrix_id;2 o) z6 N9 f- w3 J' q
      double matrix[ 9 ];8 v, v4 q7 X  m9 r" A
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量. ^3 I  q4 M% l+ r0 v: }9 ^, C6 _+ y
      double wcs_origin [3],vec[3][3],point_origin[3];% z7 j7 e6 f" d5 i" p) o: S  f% |
      //1,得到工作坐标系, O6 R- R) G1 A1 _8 l. d  S/ U( H
      UF_CSYS_ask_wcs(&wcs_id);  G; e* ^. ]" N, P& Q% m
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    6 q1 F8 i" v7 O: O/ N
      UF_CSYS_ask_matrix_values(matrix_id,matrix);
# O8 c5 o2 w4 b; Y" K% u% g% O
      //2,得到工作坐标系轴向量9 c9 p6 K- t+ \0 N- t
      UF_MTX3_x_vec (matrix,vec[0]);
' g7 i1 Q! J7 \4 Q& T7 L      UF_MTX3_y_vec (matrix,vec[1]);
* @. U$ m- d, l2 i      UF_MTX3_z_vec (matrix,vec[2]);) m+ A* w2 V! E
: L5 G" G9 k5 J9 O/ g) t! T+ m
      for(int i=0;i<3;i++)1 h  F4 F1 x( L& F8 s
      {     ' R! b" f+ ^. E* J
            double tol;" A, z" v" s3 m* E- N# ^8 _) p4 y
//3,得到点到工作坐标系原点矢量
# N% H& Z+ M( s; j9 @  m1 u            UF_VEC3_unitize(vec,0.000001,&tol,vec);
6 @2 a4 r8 ^3 G//4,得到点到工作坐标系原点矢量2 f+ s7 c8 V; R" S0 Q( b
            point_origin=point-wcs_origin;
. J6 F1 I) G8 w1 I  K& _+ G9 |6 L      }" b1 |/ g9 Q8 _% J3 p
      for(int j=0;j<3;j++)
* D3 E  e) b( x5 z, Z      {1 _' D5 c! @& a! M4 _' ^6 z% v5 Z
            UF_VEC3_dot(point_origin,vec[j],&point[j]);3 L& M9 P* J& t
      }  U0 Q0 ~7 r9 S, [0 _7 g2 S" Z
}" e. L% o! z7 D( p
13,三点求圆心
9 A' D2 m7 K3 S; a" C! s- H! c4 e, \#include<iostream.h> . N$ ^, u" G# a6 T8 ~; V( p8 Q; q5 f
#include<math.h>
( j9 r: n: M( N( k
. U8 r8 l' Z5 O$ t9 o; a& r( Fint main()
$ {% h' d4 f7 ?5 w{
6 N) w$ K; n7 P& y      int x1,y1,x3,y3;  d4 m8 w8 h  y2 B, ]9 `
      double a,b,c,d,e,f;
" d* g/ C' i+ V2 I2 O      doubler,k1,k2,x,y,x2,y2;3 Y" e) I- a$ M6 F5 B1 X, l& V
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
3 A* F. ]. j5 ~2 Z! L5 ~      cin>>x1>>y1>>x2>>y2>>x3>>y3;
! @, V3 R3 B% p. D/ z& A      if((y1==y2)&&(y2==y3))
% f$ E  q' v+ y" e+ @      {
% N" {7 }- b$ @# o! i4 I8 Z) h6 C            cout<<"三点不构成圆!"<<endl;! A$ b* F2 M; c% Q
            return 0;: ~0 s! ]# j# ~- T/ V; R4 L
      }# u- c/ z2 |7 h, Z
      if((y1!=y2)&&(y2!=y3)), v' a$ G/ }& g4 `+ G" M" _
      {
3 Y( M9 a+ n- S) R            k1=(x2-x1)/(y2-y1);5 d% W4 G. v+ {! P# m
            k2=(x3-x2)/(y3-y2);5 M4 s: ~6 L! L0 y  f
      }* i0 o9 f) o) o0 v9 [
      if(k1==k2)3 Y" H3 w- D1 I" ^
      {
" y; G# Y9 X4 t& x* G: G3 r3 w            cout<<"三点不构成圆!"<<endl;
! h6 Q/ |- F, ]# T0 q            return 0;4 O0 C, z& Q. Z1 q0 g' P- ]* E
      }
0 P$ h; c' Y- }6 p$ s) q      a=2*(x2-x1);
  S1 {% g, S/ z" {6 Y      b=2*(y2-y1);
" B  b( l* w7 ]/ \, Y# U9 U      c=x2*x2+y2*y2-x1*x1-y1*y1;
" E. X8 y2 I: A      d=2*(x3-x2);
& h  s) I6 _# D4 J6 A% P" e& m: ~      e=2*(y3-y2);9 {8 ~) c. W- \1 P
      f=x3*x3+y3*y3-x2*x2-y2*y2;
- A* A, F/ ^& p6 Z% `      x=(b*f-e*c)/(b*d-e*a);
) [: l# X5 P4 d0 q+ i! F# s0 a& ?  p1 ^      y=(d*c-a*f)/(b*d-e*a);
9 [. X) e4 _2 G* b( U      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
- {2 Y+ `4 f5 o1 p7 P      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
# O! Q0 B1 U7 m0 _/ k/ _! r      cout<<"半径为"<<r<<endl;$ B+ P0 d6 Y$ e9 s4 K
      return 0;
( a1 l  }8 h" J& Z}6 n) G- @5 w4 N. o: F  X* x5 L
14,查找圆心
4 \( u) w, z8 E0 D) N3 v            UF_EVAL_p_tevaluator ;: o( g! s3 p% x, F" W8 w
            UF_EVAL_arc_t arc;  C) i7 E$ \+ Z' N( \5 i
            UF_EVAL_initialize(obj_tag,&evaluator);
  C( x1 x- Y8 r0 T# D& y% F            UF_EVAL_ask_arc(evaluator,&arc);( R! |, T1 W. G2 I1 l
            UF_VEC3_copy(arc.center,point);           , |8 j+ o/ U3 r; E
15, message_box
/ p7 |: f8 F% N  N7 p/ |" ]void message_box(int *res_mes)6 R  O- X% o$ r: k( q1 u. H4 ?% \
{- S2 K  M  J* i. t5 _: A
      UF_UI_message_buttons_sbuttons;
; f0 O2 m. [7 z      buttons.button1=TRUE;
/ |  t: d4 m+ g7 Y; D      buttons.button2=FALSE;
+ |9 x4 ]/ i: a1 |      buttons.button3=TRUE;
# }/ k% [- w' l9 Q3 P5 x$ `4 P
# }# \% A0 {% ?) o$ E) N. d      buttons.label1="OK";5 }3 x( A0 W0 K. x# m! `# f
      buttons.label3="CANEL";6 R( R6 ?& Z2 e0 a. A/ x( \; v; V

6 S& E# u( v/ k      buttons.response1=UF_UI_OK;4 x! ]; C9 \3 }" i4 Y3 z
      buttons.response3=UF_UI_CANCEL;4 ?$ V5 }& E7 U& o" W7 f; C
! m. z" j: x. G+ Z9 j
      char *string_msg;" \1 y( ~# O& Q+ g% L
      char*material_msg="ALL selcted objects will be removed";* [) p, G1 q) p
      string_msg =material_msg;, P- l/ Z" L0 k

3 ~, b' b) q8 \' s$ A: d% @5 S      UF_CALL(UF_UI_message_dialog("",
; f" Z9 S. b& h' u9 P9 P7 e5 Y            UF_UI_MESSAGE_WARNING,
: E0 N/ c* D. C; ~6 ^          &material_msg,# `* B6 O" Z" z7 W
            1,
) W+ Z/ e6 K, s! X4 J) G& y; j            TRUE,
, F  I# s* c$ ^; Z% q            &buttons,
. d; j/ o- c0 J0 v9 w% z) v             res_mes ));
' f; C0 p' P# x, Z* o}: S, s+ T$ X2 {
16,选择过滤! T/ V. T, {! g' Z% @" l/ m
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
! K0 e$ S7 n% [/ K( g1 S{$ j% T, r' y0 D1 b* r
      int nums = 1;# I% _6 b/ A9 k% l
      UF_UI_mask_t masks[] ={
* C! Q3 K* w0 ]; h            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};6 k3 w' W$ s4 L; N3 W  L; z
7 ^4 Q1 O4 D& {+ y: r# f( O7 V* T
            if(
/ ]6 j' `- V4 l4 ~6 U; P                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
- {" O% a* F; ~* U! o+ E" _- X                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
' a6 H! V+ \2 K$ @  r; d! m                  )
/ T, @! m2 S# O            {1 a5 Q0 p0 m0 u% V
                  return(UF_UI_SEL_SUCCESS);
" X; x1 y7 Q2 e0 Y            }& _. A( R* ~  u9 K7 F7 z9 Y
            else; p6 k( s' q9 M- n6 w0 y4 y5 E
            {     
- [4 X" C) |/ W6 Q0 _: g" n                  return(UF_UI_SEL_FAILURE);
9 S& U) }% d. H( O6 I/ q            }* o/ S" }: F# P
}
1 G- S* R# ~5 g8 @$ e0 O4 {+ uint find_tag(
+ R* g) J% n0 @6 ]. w; N: q3 A                    void * client_data,//用以传输过滤资料
. E- D/ t( W6 y                   tag_t object//现在鼠标所选物体ID6 w$ [3 n! x7 D
                   )
, r% @+ P# T% J$ {{
) ?9 L' F2 N. |- d  ^      user_data *obj;
& u# e  V, _( Z9 ?2 ^& D" |      obj=(user_data*)client_data;
& w6 d# d' y  w3 R      int find_face=true;//接受# p( a; `/ ]$ h4 j, ]8 U9 ?
      char *string1;& b2 `8 O: t, q1 E* r" A
      string1=newchar[133];
; q( C4 [. y% I1 t. V      string1=UF_TAG_ask_handle_of_tag(object);
8 X! @  i- r' u( W; i      for(int i=0;i<过滤的数目;i++)
4 H$ N- ~5 v8 M0 v6 a' z  f* q      {( w4 |* j  D& ^) s  a$ H
7 E' E4 {, [/ p1 Z/ i9 U1 i2 ^
            char *string2;' D( [7 D- {/ x7 r* D
            string2=newchar[133];
, x5 u. S6 q5 O1 F- Q# [            string2=UF_TAG_ask_handle_of_tag(物体ID);
. G' C$ c. ^! n            if(strcmp(string1,string2)==0)
) @# @6 t  y. {' d8 s$ `            {7 Y0 U4 m. M9 q7 X: q, O% f
                  find_face=FALSE;//不接受0 p- m+ j% `& `/ n; Z6 N
8 s* N5 {. I3 N
            }- T  P( O/ N: c& t- C7 O4 c, h
            delete []string2;
1 M$ t0 ^- W- d6 p      }: {& T3 f( F5 {  j
      delete []string1;8 ^9 z$ z+ ]. h/ K9 D0 R; q
      return find_face;0 Y7 v1 n1 |& S3 ~
}0 D. `  H5 {) P/ b. ]
2 |0 k2 M% u5 _- Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了