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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
  N7 s2 ^; Z0 G* }: H  C9 M
7,裁剪片体' I: Y+ W" [+ O
tag_t  *trim_objects;, Y/ x1 L3 v$ Q  _; W2 I! r
trim_objects =new tag_t[count];
& t+ t+ Y6 X# i4 Gtrim_objects =bound_id;
, v& `& t, Z& D7 m% Xvoidtrim_sheet(). l% c4 l0 J/ Z
{
- O- c3 A" ?+ p6 d1 Y
) m* e8 y/ a+ i/ u. F+ z      UF_MODL_vector_t projection_method ;5 p: l2 g! @( j1 G
      projection_method.reverse_vector=0;8 l3 m3 }1 S. c6 s/ y8 V! W
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
: Q% z. ?2 F- c      UF_MODL_vector_defined_by_union_tdir1;8 U5 [! o7 a. }6 X  u
      UF_MODL_vector_direction_t dir2;
, F$ w- |# D  I! W- V      dir2.xyz [0]=dir[0];1 N# `' U) C% H% D8 s& g9 a
      dir2.xyz [1]=dir[1];% s" _( P' k7 s0 a1 p# }+ x- i
      dir2.xyz [2]=dir[2];
2 Y7 H7 `3 e% R9 c) ~1 Z3 ]      dir1.direction=dir2;* n. P5 @  V4 J7 {4 \, ]

7 v$ i  D! e: Q- L4 U6 q$ m. c      projection_method.defined_by=dir1;/ q8 [6 k( N& F4 a$ ~

) D5 ^  \& L0 v) ]      double point_coords[3] ;
( A' w! S5 f6 q, S) m" F+ X2 D; S7 l: B
      point_coords[0]=center[0];/ r# \$ D2 ^; X
      point_coords[1]=center[1];
* {8 Z1 a4 x! N/ z9 q4 }7 L      point_coords[2]=center[2];+ g! p$ g0 L$ d+ Q6 w

2 l* U( b6 |2 S  \7 X  s$ v( I+ `      int gap_point_count ;
" _5 M: U5 l; O) h9 J& V( L1 C      double *gap_points;
. K8 D+ x* o) g& |! n! _      tag_t feature_obj_eid;& a5 S5 f. s& v7 t8 o
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
+ t: {4 f5 X% b( ]                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);" i' M# w0 N" i( G' x; }
8 T8 V0 B% F/ n; l# S+ O0 Z# \
}5 B8 d2 z$ b0 ^) K
8,offset偏移5 @; P; R. b( s2 B

  G/ L' G. u" p6 y8 h/ ochar   distance_str[] = {"10.0"};//偏移的距离" H& p  s$ M' R' ]

& a% ~. I# e2 `/ S% uint  num_curves;
  n6 P+ o$ `3 I3 J! F5 ^tag_t *offset_curves;
1 n0 z: n5 w# Z7 u* vUF_CURVE_offset_distance_data_t  offset_distance;
3 M& R& |2 b4 qoffset_distance.distance= distance_str;
/ l5 l, o+ h! j# g5 moffset_distance.roUGh_type=1;$ c' Y5 p! f8 t6 N* Y5 g6 T  i
UF_STRING_t   input_string;
$ o; M, J9 A: _* minput_string.id=curve_id;//加入想要偏移的线) `! F: H" N5 F4 }: G, p
input_string.num=1; //偏移矢量方向数量$ A: t0 R5 L9 Q. {0 x/ Y
input_string.string=&string_count;//偏移线的数量1 B9 r( y+ \) V: e1 _/ j
intstring_dir=UF_MODL_CURVE_START_FROM_END;  |  k  J! f$ T! i0 z- K
input_string.dir=&string_dir;
9 v" j' N+ d2 t! p1 n
/ i( H6 a) X9 w' s7 c0 tUF_CURVE_offset_data_toffset_data;
/ A- q; ~" r% c& K- X4 i7 j/ d; F$ h3 {- S% u
offset_data.offset_def.distance_type1= &offset_distance;
% ^8 v5 Q3 l3 @. Z# g  @9 d0 Koffset_data.input_curves= &input_string;
$ a+ v( e* i# \; {+ {. b. p1 y4 Z$ A1 Noffset_data.approximation_tolerance= 0.01;1 G: I4 o. x) m& M
offset_data.string_tolerance=0.001;9 \$ N2 c9 D4 c+ Y/ f0 r$ z7 \
offset_data.offset_def.distance_type1= &offset_distance;# u! L( E  f  u- v) i1 v
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
5 H* I* h) R( T% \$ U& x1 x" o2 cUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
9 l1 a8 e5 \( ^' e&num_curves,&offset_curves));4 E' E$ m7 j. ]7 ]* ]! R" x2 L
9,创建平面5 a) J5 q  W1 q! C+ \6 x
UF_STRING_tgenerator;  x- _* C* l. ]8 E2 a  W5 S6 \
UF_STRING_p_tge = &generator;
7 L6 L0 G. |, l8 U9 `* \% v3 T6 {$ [9 t
UF_MODL_init_string_list(ge);
% x* Y8 i& m, `/ p  j4 e6 \- |UF_MODL_create_string_list(1,12,ge);
$ g/ `2 O, o; K; }+ i
6 G2 L0 K% o& v  a( y& f% ]+ Cge->string[0]= 1;0 C' v; M6 y# I  {
ge->dir[0]= 1;//指定线从开始到结束# i, Q* T: f. s& q
ge->id[0]= arc_id;//指定边界的id
6 d  P( f+ f! f2 {% `4 gdoubletol[3];0 p$ S& ^! E0 s! J1 Y# {7 w, R) o* C* d
tol[0] =.001;//直线公差' |  p5 I2 Z# e' U- O
tol[1] = .5* (PI/180);//圆弧公差* k8 g4 P. e* ]* C  I* i  L
tol[2] =.02;//不起作用
, F3 r' c# P$ H$ PUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));5 ?1 A7 A$ D! J, x& l" z! I2 ]( C1 t
10,选择
. k9 [/ u. `1 Y! V, d0 R4 X1),点选择& k9 i; R- K) M& f, h  \/ ?
tag_t point_tag;
; z# B) y4 p3 ^  X$ m4 ]; idouble point[3];
' q( y5 I- x8 T- O       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
: k: Y) V& R7 U3 t2 M$ V9 I       intpoint_res;
4 F( \7 ?% j. [, d3 A
8 Y" f  e; B5 L+ pUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,; H1 B3 j# W. c7 c: f- K$ r3 C
point,&point_res));
2 S- N* W$ k" f( T3 |& mif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)9 D1 M/ {( K! i5 A% B2 A9 R
{
' Z, R) q+ P. F8 ? }
5 M  f3 d$ U( _) k5 O4 ^8 c  m2),向量选择3 C# o: T: X7 z+ F- e
     int  mode = UF_UI_INFERRED ;
4 l+ T/ x5 b: D9 m* G) n     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
) r- G9 J5 i7 N& ]/ C7 h" bdouble vec[3];3 ]2 u6 M( Y" f% u
double vec_pnt[3];3 e( V3 W7 t) b* H- k9 o- W
int res_vec = 0;
( x( N- J- o2 ^5 `- }     UF_initialize();  
; {5 z  J2 Z" }" a! t+ x9 l     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,: w2 G2 D: e- w6 v
           vec,vec_pnt,&res_vec);. U4 h: h+ F" j& T8 V/ X1 `
     if( ifail != 0 || res_vec!= UF_UI_OK )   + p  w. i9 [! O" \, s3 o: D
     {     . Q. U% L0 f, @# |* a) `0 R
           UF_UI_ONT_refresh();
3 H' o) E+ t/ ~           printf("No vector selected \n" );
* N/ g2 M) _2 \8 }+ w     }: r4 L% k, u1 C& j! x6 H
     else: {9 i0 V3 C4 {/ a; T
     {
/ q6 y" f( U$ M9 F* N) f- M; \# `           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
- J) ~" `" X/ E, x1 H0 X( Z! |                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );$ a7 |8 _6 O, Y  x! S2 a: z
}
/ W; l/ s" }; Q* s8 K: F3),平面选择
$ F) |. k# ~2 L5 O- ^tag_t plane_eid=NULL_TAG;
8 P  O! a2 \' I, Ndouble orientation[9] ={0,0,0,0,0,0,0,0,0};
9 p+ j0 T: n2 k5 v   double origin[3] = {0,0,0};6 ^  n& Z. F, y! ^# \  P, K
   double pts[6] = {0,0,0,0,0,0};; e/ S! S* y# f2 Z7 Z3 u# b) E
   int i, error_code = 0;" ?$ B& c6 u, J2 u! J- f- W1 |
   int mode, display, response;( ?( x( F. _6 ^! S2 d
   mode = 1;                    
# N; W3 Q. Y. v. a; q! g! p- edisplay = 0;      
% w( T! U" d) d. w; D; T& w; }UF_initialize();
" Y( w* Z) Z; l* X9 U+ @4 u   error_code = UF_UI_specify_plane(2 g+ S  u) N, {/ p0 Y; N
         "Select Plane", &mode, display,' S) F( E0 S4 S' d* e
         &response, orientation, origin,&plane_eid);7 H# {' Z3 F) V9 T1 }
# d6 h$ P' ]- T" f2 o
   if ( !error_code && response != 1&& response != 2)) I$ p9 s% }; u* S2 J+ k
   {
/ T' u8 m+ a; h8 Q' J2 Z                     for (i=0; i<3; i++)0 c. }  q( r3 w+ |9 w1 }2 k
               pts = origin + orientation;
; g9 R+ z' |+ a; f4 q2 B                     for (i=3; i<6; i++)$ Q* g) X) ^3 _. X9 i' I
               pts = origin[i-3] + orientation;6 ?% b# p1 x5 `6 L
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
$ i) m& ^4 b. T0 i. Z% S   }1 D* y, B* ?1 ~
11,临时点,线
7 \3 c( `* Y5 Cvoid display_temporary_point_line (double point1[3], double point2[3])3 {: D& }, e  ]0 f/ v0 {% y
{/ x1 M7 q! u6 I9 ^) Y9 X! D
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
( ]0 I- ~0 ~5 {: T  UF_OBJ_disp_props_TColor;$ e# |6 W5 F7 x- P4 S, k
  color.layer= 201;* t0 W  X5 N* @9 G# d
  color.color= 186;
, L$ }, Y( C) l* g  color.blank_status= UF_OBJ_NOT_BLANKED;2 m8 W4 O( I/ e: J# f
  color.line_width= UF_OBJ_WIDTH_NORMAL;
) R6 B* x" Y# w) q3 Y9 V* i+ Z, D0 E  color.font=0;  P# u% I  z5 a9 R: A0 ], T2 X. b
  color.highlight_status= FALSE;
: ~4 K( B! [; D, z  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
' X8 t0 x9 n2 J7 z3 P- L5 n
6 b7 Y  J! K% D5 z8 {& ?UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);" y# }  L5 [1 q$ g8 @
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);# a: l8 I& X2 u  Y. Z* s7 _
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
8 h. @2 w: A; G0 [/ }}
/ m9 j* \) E& h12,WCS与绝对坐标转换
5 u8 h! u$ T& L) R; w  |1 I' ]' K                        voidcycs_wcs(double point[])# ~% V  t6 n( ~" Z& F
{
: B4 A/ y% X: ~' ~% ]      tag_t  wcs_id,matrix_id;$ E9 i! W5 T: m) i' w
      double matrix[ 9 ];" A& T- ~) N( X+ L1 ?! Y
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
7 i* _  F8 _9 j      double wcs_origin [3],vec[3][3],point_origin[3];6 y9 {7 P7 R- }' r. e4 c; x) s
      //1,得到工作坐标系
  r- h( j. M2 K% H% H      UF_CSYS_ask_wcs(&wcs_id);" J, W9 ^1 D; R5 P- o
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
; G2 |( g1 K) {( F  \) e      UF_CSYS_ask_matrix_values(matrix_id,matrix);( t' T4 K8 H& p, o1 Z4 _1 F

8 ]% F: W( @- l      //2,得到工作坐标系轴向量4 a0 E9 @) s5 {5 M" f" p
      UF_MTX3_x_vec (matrix,vec[0]);) T# _* G, b& M5 I/ J( a+ s! b
      UF_MTX3_y_vec (matrix,vec[1]);
/ X0 d* V+ E! r  w  P' k1 S4 Z! P      UF_MTX3_z_vec (matrix,vec[2]);
: I8 z$ A0 O" d, h0 \) j% }( X2 D6 c/ ?7 K4 m
      for(int i=0;i<3;i++)' F, U! z" z; [3 @
      {     3 T# D/ r, T0 h" \: V. ~  [9 [# M! H
            double tol;
1 S% a5 k# E2 @6 J& \//3,得到点到工作坐标系原点矢量
8 I! I2 r% H$ q! i, F            UF_VEC3_unitize(vec,0.000001,&tol,vec);
4 F2 b4 g4 W6 H//4,得到点到工作坐标系原点矢量
' w( r$ F+ E$ w; X. U+ g" c1 q            point_origin=point-wcs_origin;* [  \2 D1 |" W: g/ G- b: Q
      }
6 B5 Y4 t) G  m! X' `4 `+ F0 C. J      for(int j=0;j<3;j++)
! @& g- ]& Y# g& ?      {
. l) C8 n% y7 [, m4 z9 J1 f% E            UF_VEC3_dot(point_origin,vec[j],&point[j]);
3 n# K7 ?9 \( m/ U. \2 `      }) \* v9 S( |7 z9 G& y$ d
}- Z; P" h1 h6 F1 A: I0 l
13,三点求圆心
+ d6 N; z  v4 L' E, q) V* E#include<iostream.h>
; t3 {# U6 I1 a( |; o! i$ A#include<math.h>
( t0 J$ R2 p* O, S9 ]. k; G1 {. B' g6 I0 x" q; k
int main(), c+ J' @6 ^& {  ~3 ^5 Q
{
6 j/ j* w; I# h$ x. G" ^+ t      int x1,y1,x3,y3;: T+ o% m' u. E( n7 ^; v* _
      double a,b,c,d,e,f;
* ~; @: P: ^. K' C) n+ R3 {0 m      doubler,k1,k2,x,y,x2,y2;0 s: v1 V3 Z/ [' D# ?
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;) W& Y& ~! O7 |% x. u  g2 p- [
      cin>>x1>>y1>>x2>>y2>>x3>>y3;' w( K; T6 J6 x3 e* W! f  E
      if((y1==y2)&&(y2==y3))
  @0 R( W1 N" k      {
2 y0 ~+ x6 d5 P7 `            cout<<"三点不构成圆!"<<endl;
  K2 L: {. p% r4 Z$ o' V' v            return 0;
. c3 `6 p9 |2 u6 u1 C2 ^      }
  w- D, f2 [/ ]+ V5 y      if((y1!=y2)&&(y2!=y3))& `, Y* P* O1 N% }2 R
      {5 i% R3 j4 e1 c$ d0 a0 Y& b
            k1=(x2-x1)/(y2-y1);
0 l* V" W9 Q) ^$ h% l# {7 k4 y            k2=(x3-x2)/(y3-y2);
" P4 W4 G" a) Z3 H/ r( G      }
! {- C( {9 R& N. t, K8 A      if(k1==k2)
% E! |) c- B$ Y9 S      {
9 z/ V. f! T8 ^            cout<<"三点不构成圆!"<<endl;
- u! H# s! y! x* x! V- L) g            return 0;: Q, x0 i" ~2 |
      }8 q0 l& z) P7 P0 J1 r
      a=2*(x2-x1);" G  l2 J0 O+ M( I" p2 r3 n1 |, d2 G
      b=2*(y2-y1);
9 m7 f, F4 N9 S# i/ _      c=x2*x2+y2*y2-x1*x1-y1*y1;7 U/ _1 P' c* L
      d=2*(x3-x2);7 `# u  n' U6 ^6 T2 R1 M
      e=2*(y3-y2);
& _+ G& [. S/ ~% w% U  {5 u0 ]      f=x3*x3+y3*y3-x2*x2-y2*y2;4 r* D, Y! Q$ G
      x=(b*f-e*c)/(b*d-e*a);2 Y+ `" R$ A; v
      y=(d*c-a*f)/(b*d-e*a);
/ I5 Z) }+ T$ \$ ?$ M) ]      cout<<"圆心为("<<x<<","<<y<<")"<<endl;) _, W" H  W0 f3 U3 @6 u
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
4 |* F5 }  p- m- K      cout<<"半径为"<<r<<endl;3 Y* M  m, t) \) r& B
      return 0;
  B; m; `+ U' O/ U5 A0 B}
- ]6 F2 R  S7 F, i2 y# F14,查找圆心
& m. U& _* ^6 O! d% W7 |            UF_EVAL_p_tevaluator ;
4 `7 X, P  s& o            UF_EVAL_arc_t arc;
6 l0 Z! O# B: i$ F6 ^8 ~! i            UF_EVAL_initialize(obj_tag,&evaluator);
! P9 J9 G: f* w7 W            UF_EVAL_ask_arc(evaluator,&arc);% @1 `' w) G' h; t
            UF_VEC3_copy(arc.center,point);           , {& G/ h9 }! f: V1 D# U0 j
15, message_box
$ b( j- ^- F# q, q/ {void message_box(int *res_mes)
; ~" L& g& N4 T2 i/ R9 ~6 w* g6 j{
( ]7 W" h# A: i9 V8 t      UF_UI_message_buttons_sbuttons;
1 g* E& R* r: F0 c/ q4 u/ |$ }      buttons.button1=TRUE;' w2 B4 |- C4 |0 B8 I$ @; w
      buttons.button2=FALSE;+ {" `0 O% Z0 u; J
      buttons.button3=TRUE;# R3 c8 O7 G  n4 i0 v  z
# _) q- M5 S, p. G* _3 L+ V. L% n
      buttons.label1="OK";
8 `" z/ t9 G4 W. ~, E: Y) g      buttons.label3="CANEL";
& k" q+ ~# ~6 U1 X4 Y2 M$ n0 N( o
      buttons.response1=UF_UI_OK;  `. v; l! Q2 Q' o: ?9 O# k
      buttons.response3=UF_UI_CANCEL;  A0 v: ?" P7 m! F, h3 a
) A# U7 p% R, J  S8 m! G
      char *string_msg;. h# E3 k0 _5 a  H; y
      char*material_msg="ALL selcted objects will be removed";- k0 J/ B. K8 L+ u
      string_msg =material_msg;+ U* ?& L7 |  D6 a: ~9 ^5 q

/ p( y8 c6 A  X5 C; e      UF_CALL(UF_UI_message_dialog("",7 h, }* Y; d% _! C
            UF_UI_MESSAGE_WARNING,' O  G+ P$ x  o3 q
          &material_msg,
3 C/ q1 B, p- u+ s# S            1,
( E9 U" c+ i: v6 z5 r            TRUE,# `) q4 b5 q5 h5 ~$ X3 ^
            &buttons,% {+ c( P  z$ {+ g! s! w
             res_mes ));% Z3 V5 N% C: e. f. h/ T# V
}( p+ N9 {+ |) E% Y& E, U
16,选择过滤
( X3 N( `1 @) Z2 ^. `) bstatic int init_add_face( UF_UI_selection_p_t select, void *client_data)
9 S1 Z- c0 D0 G. \  n% g' j{
& p/ [* x9 C/ S  y      int nums = 1;
4 ^# o) `/ M! `& u      UF_UI_mask_t masks[] ={
3 e5 ~3 B7 _  a  B" c  Q            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};( R- I$ q& w7 a: M- c1 a

: @' w& R: A: n; Z* x9 C8 Y            if(
2 ]7 n& P1 I1 i                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)# J3 E3 U7 ]2 K# k* y! }
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
6 `/ x6 ~6 o; `2 ?" D, n# B2 w                  )
# M( `3 C* c/ H            {
7 Q& ^8 c4 h' M) M* O( h! A                  return(UF_UI_SEL_SUCCESS);1 ]' z7 s% e: z7 R& b
            }  x- c3 M7 ~+ Z+ L9 O
            else/ r$ ?0 n  f' Z! v" v! R, P1 V# G
            {     6 a$ o1 S3 h* H4 O4 A$ e+ C
                  return(UF_UI_SEL_FAILURE);
* [  D0 `3 i  E" N) O3 `            }
* x: |8 \" @! V8 l) w# n}: W# }- B0 g- ^! e
int find_tag(  I! {6 v- T0 v* r+ ^8 T
                    void * client_data,//用以传输过滤资料
, {! z' b$ l2 O. H, P6 v) ^. J                   tag_t object//现在鼠标所选物体ID
0 V9 K" i5 Z8 p                   )
7 p; @! E( C6 R: D{0 p" ^9 A, B! q5 T5 |6 T
      user_data *obj;" v2 I) p  W  }+ ~
      obj=(user_data*)client_data;
# k; }9 \; u- [; G# r      int find_face=true;//接受7 `* W7 y) M5 n( ~% x4 b
      char *string1;& e* F) ?+ I: a
      string1=newchar[133];
' d8 o' K4 b' x' g, Z8 {      string1=UF_TAG_ask_handle_of_tag(object);
' p/ A* I" w8 A* s$ P. r7 X4 ?+ i      for(int i=0;i<过滤的数目;i++)
  o  T+ ?! a1 o4 B" v# V; f      {5 P, F; v) i1 V- a5 K' h3 D

- |: v) Z2 ?. Z9 j            char *string2;
0 G- U2 l/ m* w; K; a            string2=newchar[133];" s3 S. n1 m( Y
            string2=UF_TAG_ask_handle_of_tag(物体ID);. G) i* Y; p2 a7 L
            if(strcmp(string1,string2)==0)3 p. [9 W( y2 ]) @
            {
) ~$ i6 T$ p) X* O& j% P                  find_face=FALSE;//不接受  m, {- u* n0 H5 v
  A2 ?: e9 @. _5 E; l  q, |& Q
            }
2 U! X6 K8 D1 b( N            delete []string2;
0 X( m5 f  ]! v: T1 |. p/ Q0 r( y      }
% Y- e% _8 x2 \4 Z; o1 E* s      delete []string1;4 Y) {+ x8 J" S* R1 f
      return find_face;
4 b$ Z# V; v* L! V& Q' f* L}
% z5 p# F6 e7 }* f$ {
$ s* W: z  h* n. w9 e" Q0 c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了