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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

. ~6 Q$ b2 [6 ^0 g7,裁剪片体# ^/ p  B. p' X0 J) W+ K
tag_t  *trim_objects;0 D$ i" o; f# m% L: k% _6 @6 E
trim_objects =new tag_t[count];/ [7 b; B9 D8 S- o
trim_objects =bound_id;: }3 K: T4 C) b0 V8 y) x  F, J
voidtrim_sheet()
6 }  u- G9 z" [4 b; V{' o- _$ _8 \1 z# a* S" x
2 r/ d3 r- F$ ?8 ?: _: [5 `
      UF_MODL_vector_t projection_method ;  u% P* w: N7 r* I
      projection_method.reverse_vector=0;
# q6 Z2 w; M+ c      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
8 O& o( H! P- {3 t) R+ I8 K      UF_MODL_vector_defined_by_union_tdir1;0 z) H* P3 ^5 ]3 r% s
      UF_MODL_vector_direction_t dir2;" \" W( {# b2 O6 Q& y& e0 z
      dir2.xyz [0]=dir[0];( _$ J0 d- O+ ~: z- G& w# T+ L
      dir2.xyz [1]=dir[1];+ D& l0 g; I1 t* n. `7 M
      dir2.xyz [2]=dir[2];
! L, T8 [: E- e" R8 L6 |+ f      dir1.direction=dir2;. X" ?8 e. p# E: z  `* q

: a. ^5 O% A" ]3 e' d7 l      projection_method.defined_by=dir1;( n* N7 J5 Y/ p, t& V
) [$ f% Z  g) t
      double point_coords[3] ;
. a  y# a4 X  z2 E3 a3 M; z; ]' M, ]8 B: z$ a5 F) b
      point_coords[0]=center[0];
+ c. J1 Z9 U- A' d- `  Z- }9 j      point_coords[1]=center[1];
4 F- p' t6 w3 K) ?      point_coords[2]=center[2];
8 [( t5 y/ E3 N2 O$ p8 d5 R( ?& j6 ?9 X1 s# @3 e+ U
      int gap_point_count ;# a+ B/ x6 R9 K9 ^1 h
      double *gap_points;5 [0 b6 ?; R& w, l
      tag_t feature_obj_eid;
; Q# c! x3 |, U      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,9 A" e; S& l  m! i1 `
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);0 r- o( ~7 L0 b/ w6 S4 m# V

1 h/ Z* z3 W9 G}  d$ T: v. ?9 x
8,offset偏移
, B/ z& }9 i+ R6 W5 t1 ?+ o
, a( L6 X  _; `( f! {9 Echar   distance_str[] = {"10.0"};//偏移的距离7 ~$ ]5 C" q7 v6 a5 y4 f

+ l' _# o; X2 ^int  num_curves;
. {0 @1 o0 M3 btag_t *offset_curves;
0 [1 B8 W  p, R. o6 G3 j4 L5 ?UF_CURVE_offset_distance_data_t  offset_distance;5 f, A: g/ s' `2 H3 p) F
offset_distance.distance= distance_str;7 ]) K7 r. t& X" V  C+ W3 c! _/ W
offset_distance.roUGh_type=1;
4 e3 p" g# w1 b+ C* C) C$ ?UF_STRING_t   input_string;% x1 Z; n- r' a# e6 O
input_string.id=curve_id;//加入想要偏移的线2 a" P8 ?7 X) P+ b+ `
input_string.num=1; //偏移矢量方向数量1 h; h$ s( M0 T# {# U: F/ r
input_string.string=&string_count;//偏移线的数量
% j5 p: {. p4 a7 A0 Z: Iintstring_dir=UF_MODL_CURVE_START_FROM_END;. k1 j# d- L8 e  y! R) d$ D2 r9 n
input_string.dir=&string_dir;
; d# G& `* g( s  A4 }1 \' G0 g  E
UF_CURVE_offset_data_toffset_data;) ?0 j% q: G5 O9 u- |. c# n7 V

4 h2 e" W; {2 D& Q8 S* |$ poffset_data.offset_def.distance_type1= &offset_distance;" k0 q6 u) k2 d4 }# e7 P9 d
offset_data.input_curves= &input_string;. K1 ^1 o: j; i6 I# f* {
offset_data.approximation_tolerance= 0.01;
# ]4 L7 n/ v& S0 ioffset_data.string_tolerance=0.001;
' C; u1 P, I+ P- `# Voffset_data.offset_def.distance_type1= &offset_distance;
; `7 K2 u. ^/ v" t8 ]offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;3 I% O& N0 }; x
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,2 }" X9 ]6 Q4 T& d9 b0 e) X$ e; Y- A
&num_curves,&offset_curves));4 x* R, Y) b! S1 I( W" }
9,创建平面- C5 T2 _, i! \! }5 U
UF_STRING_tgenerator;
) H6 E/ j# p3 G7 X8 ]9 t: LUF_STRING_p_tge = &generator;; u+ I8 r) I; a  G

: ~( _# q, j5 j0 i5 _! ]UF_MODL_init_string_list(ge);
& N4 S; b0 E* N; m( a) }. IUF_MODL_create_string_list(1,12,ge);5 B7 R" o3 i7 A' v" ]1 O
. z" N" n4 F% S# v: b
ge->string[0]= 1;6 F2 r: b+ u/ P
ge->dir[0]= 1;//指定线从开始到结束$ f) P! [8 o% U2 U
ge->id[0]= arc_id;//指定边界的id# o9 j8 I. R* j/ _+ w
doubletol[3];
* ]2 Q5 M& j! ~# h; ltol[0] =.001;//直线公差
7 P) P- k$ L& }tol[1] = .5* (PI/180);//圆弧公差
7 R4 W# b  Z- }; C. utol[2] =.02;//不起作用
9 I8 h1 a; k/ u% i  Y! JUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));3 O# [; p; P. O4 v7 ^# l
10,选择* X7 g% U- [, w: F5 e0 u. k  Q7 p
1),点选择
6 m2 }( M/ }- R( }- M! i2 atag_t point_tag;
3 n5 _+ |; p/ e7 n  L' h$ ~double point[3];# Z7 R4 I1 ?+ Z+ c6 F' ?/ i
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  5 `6 w: [! y2 r5 b
       intpoint_res;
+ H: j4 U4 \3 k9 p2 R$ {3 Z8 u4 Y* d; |2 ~$ X' @, l
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,. {6 i. t7 q5 G! U
point,&point_res));
- @( l/ A$ v5 M% r! u7 cif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
8 T2 `4 K# a0 W- y8 |+ B5 z/ p6 e{) p( o/ w5 Y0 j6 C+ `* [# o5 M) ^
}1 P; x1 j8 r% x" ^' K# Q$ V5 X/ z
2),向量选择$ m6 f* \) O7 w/ Y, C- p
     int  mode = UF_UI_INFERRED ;
  f- U( X# K/ z     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
3 |8 c$ t7 U( O! |, m# |double vec[3];6 h, U5 a6 N2 j0 G2 ^  N: c2 F# y
double vec_pnt[3];
. E, c/ {0 F$ ^: Sint res_vec = 0;
  h8 Q5 a" G* b# t2 ?- T2 l7 Q* U0 \     UF_initialize();  . E- P6 E( D) }8 |
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,6 s2 `5 Y/ O- S; U# C3 F7 e
           vec,vec_pnt,&res_vec);
5 k) i7 }- H$ z7 ^1 i# Z  V     if( ifail != 0 || res_vec!= UF_UI_OK )   6 ]/ @) w; N$ C% Z* D
     {     2 Y3 C0 C7 B9 D$ S. I
           UF_UI_ONT_refresh();
) d3 S/ a2 N% |+ y9 @0 O: p           printf("No vector selected \n" );# f' p" i* q# n: ~3 A
     }1 ~, L' C1 G0 W9 a
     else, }. W  b* _, i7 ^3 R
     {" \. y/ _5 m3 [- M. L
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
% t5 c4 G+ D7 L) t                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
! k/ @' _3 T1 E( x6 i3 N- o}5 j0 k8 B) x' ]
3),平面选择4 r8 M# j; L; C& C# E" M$ r
tag_t plane_eid=NULL_TAG;+ \& N4 I& b) m: V7 p9 M
double orientation[9] ={0,0,0,0,0,0,0,0,0};
  z. t/ _8 H* P2 Q. D9 ]" M   double origin[3] = {0,0,0};
7 B( f$ u/ Y# o- p   double pts[6] = {0,0,0,0,0,0};
, ^* y  K/ @, g0 \6 Q, u" _& J   int i, error_code = 0;
* r! Y9 U9 ~% P   int mode, display, response;
( x8 z. y2 T/ v% G' {" W/ a3 T   mode = 1;                    9 j$ s  [7 p. S4 @, ^
display = 0;      
2 G- a& K0 K8 i0 W, w+ S8 `; @UF_initialize();; y! k- U  f* L0 N
   error_code = UF_UI_specify_plane(
. K9 ]0 v. u9 a# o: D9 H         "Select Plane", &mode, display,; ]; p0 |0 x/ K, t7 B% d
         &response, orientation, origin,&plane_eid);$ H! A/ v' R) k  @% N9 S) L. G: ?
! m3 @. g: H( I5 A5 ~: U
   if ( !error_code && response != 1&& response != 2)
# @+ O1 M) b& L5 F0 u( F   {$ g# \- i, D6 G5 u/ A) A6 a
                     for (i=0; i<3; i++)$ R* h  B# V$ B" R
               pts = origin + orientation;
0 K% R7 l% ~2 Y0 K4 s' M                     for (i=3; i<6; i++)
* V% s* T+ e# J+ l8 W) |               pts = origin[i-3] + orientation;. ^, h8 T7 F2 d' K" u
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);9 V, S5 y8 p. K( a5 w2 X
   }0 y+ |6 E* k: P
11,临时点,线! C! e1 w# y8 m$ W5 @2 l. _
void display_temporary_point_line (double point1[3], double point2[3])
1 B! m$ R1 z& {{
5 ]: S8 `% c$ {9 F6 S$ U  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
9 S  m* X% k9 J6 I* u  UF_OBJ_disp_props_TColor;$ ^( L0 K( v# G, v/ D. h& x
  color.layer= 201;% {# }% Y: x, e- d0 n  ?
  color.color= 186;
6 p# `! V$ H' ~0 v  color.blank_status= UF_OBJ_NOT_BLANKED;
8 K1 e0 |" j# ?9 h+ f9 [  color.line_width= UF_OBJ_WIDTH_NORMAL;0 M2 |- ]# E8 |) u" K
  color.font=0;2 f% e; @' l3 G9 U: b; V1 f3 g" M
  color.highlight_status= FALSE;
) b* G9 E# Y8 d6 e3 i5 D. z; c  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;
. f& [2 ~: c& V7 s& a, K$ x) g
! s6 K. g. P$ VUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);0 U1 ~5 \2 ?8 q" E* N! t
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);& S! }  w. a# S# n9 f. F: L
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
$ T, R7 d# w5 k7 C8 ~3 |/ \& b0 e}; D# K; s( Y% s' Z, X5 O
12,WCS与绝对坐标转换
3 c9 l( {7 \) C6 `                        voidcycs_wcs(double point[])/ L- B! J& m% S' R
{
  }  [. z% y, _2 L3 [7 P, K      tag_t  wcs_id,matrix_id;5 n% n2 C0 f6 f: z& z9 d: `5 E3 a( ?
      double matrix[ 9 ];
6 ?# w9 E& j( d      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
, ^  J2 M+ f5 D4 T      double wcs_origin [3],vec[3][3],point_origin[3];
1 R+ t) `& `) `+ S2 }; u8 u/ e      //1,得到工作坐标系- [3 U# ~3 w  {2 i8 {# c
      UF_CSYS_ask_wcs(&wcs_id);8 X+ O8 X$ U# B0 f
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    5 e- C8 G+ D% E6 K# h0 }$ ?* e9 N; h
      UF_CSYS_ask_matrix_values(matrix_id,matrix);! T1 X) ?( G) s# x$ M

1 G" y, t1 f) j7 n" K# }3 w      //2,得到工作坐标系轴向量
) p# G- L9 k* E# z/ m8 n  Y      UF_MTX3_x_vec (matrix,vec[0]);
5 B( I, J. n4 r2 J7 o      UF_MTX3_y_vec (matrix,vec[1]);
9 v$ k& n9 I' M* U" h( a  Y      UF_MTX3_z_vec (matrix,vec[2]);
2 @: f) l, `# X5 E% E0 w( s4 Q% N$ R: V) E; _
      for(int i=0;i<3;i++)' x& _* ]; D! Y" {
      {     
/ \$ G' @- j1 J4 s1 e            double tol;  }, `5 B- z1 {6 n1 ~) m
//3,得到点到工作坐标系原点矢量- n; H, D3 z) K( h% ]
            UF_VEC3_unitize(vec,0.000001,&tol,vec);
5 ]9 O3 |7 D2 m8 [0 ~//4,得到点到工作坐标系原点矢量
6 G+ D$ _7 [. q  s' o/ N            point_origin=point-wcs_origin;/ O* F6 I5 q8 u) z2 z  E
      }- p0 |, _+ q. R% q$ A& I
      for(int j=0;j<3;j++)
' _" F( g# D: N! @' k7 L      {' j' [+ `1 n  J  F6 o
            UF_VEC3_dot(point_origin,vec[j],&point[j]);1 m5 ?( Y! z# _- E0 l
      }
' d) i- C! w4 E$ g1 ]" V+ |% f}
2 T; J1 R: \+ y, [1 {8 m8 t; N13,三点求圆心( n  [1 Z1 K6 [4 \5 p9 J
#include<iostream.h> - P& h$ v" ?7 _, J7 g- @7 r; _/ o
#include<math.h>
/ G, H% X* `  ^6 K* L( _8 W* _8 G5 D/ Y2 m( D5 h5 @, ]$ H
int main()
4 t: t" _% ~. Z0 F5 I; O{" `8 f" L- \% A0 H0 [2 p
      int x1,y1,x3,y3;2 @: I4 S3 E& C  I, M- }
      double a,b,c,d,e,f;
- n% b- P6 [6 S9 ]4 ^4 [      doubler,k1,k2,x,y,x2,y2;" ]1 o$ |5 d6 h4 d. ~
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;: p7 n7 i+ @2 j; g2 P
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
# A8 U0 T3 h7 Y5 c8 b! G  Q; f2 \      if((y1==y2)&&(y2==y3))
7 u& d6 z+ Q6 B* ?9 J      {9 }, y$ B7 u7 b2 C/ x
            cout<<"三点不构成圆!"<<endl;' ^7 w! u) S0 h* {+ ?! m2 J
            return 0;6 ]6 N6 w. d: [7 m- n: R' l6 Z5 a
      }
, x" ~5 x1 ^! j+ D& n      if((y1!=y2)&&(y2!=y3))
+ L* V; l3 ^9 P4 U( T0 d      {
% p  l) h7 d/ L8 I' L            k1=(x2-x1)/(y2-y1);
; [6 X: H+ |) w1 d            k2=(x3-x2)/(y3-y2);6 p; i( @4 f8 N
      }
9 u: {& M& I' {% z# M: b) H% }      if(k1==k2)
( t& \8 d' p: w      {
( L% z# C2 H- r5 H" C& n            cout<<"三点不构成圆!"<<endl;5 |) h  \7 [. t. m; A& a; f! L5 W
            return 0;% p- P: \$ @- Q7 _5 o: H
      }1 n* o, Z+ m# a% B
      a=2*(x2-x1);
% C$ j6 `: r7 W) }8 c% \" E9 c      b=2*(y2-y1);
$ A/ X7 X5 {1 z6 D, M- [      c=x2*x2+y2*y2-x1*x1-y1*y1;
. G) I9 c$ d' S0 Z# G$ ~      d=2*(x3-x2);0 s$ E& Y' A% @: E9 ]# T3 U
      e=2*(y3-y2);
& Z7 H- Z# |: K( b: ]) T" C      f=x3*x3+y3*y3-x2*x2-y2*y2;
) C2 k# x& `2 ~      x=(b*f-e*c)/(b*d-e*a);
" i% V& P* P7 `* B  k* D2 v      y=(d*c-a*f)/(b*d-e*a);$ r  j8 I" \  e
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;* h; e7 M" C. I& V& A4 T
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
0 Q/ j# I1 q! w/ h2 W      cout<<"半径为"<<r<<endl;% y9 }: ?4 E$ R- C
      return 0;
" ]+ l. l( q8 ]0 `& g% C; _" F}0 g) p) t5 M3 g" _5 |/ n
14,查找圆心& Q/ u& b1 l, J+ [2 N" m
            UF_EVAL_p_tevaluator ;
5 d0 Z# |+ l4 ^: U% [0 ^5 o5 b, c            UF_EVAL_arc_t arc;
8 I. ?6 _. j7 k8 H& R0 O  ^0 M            UF_EVAL_initialize(obj_tag,&evaluator);) A' T. m0 B* V
            UF_EVAL_ask_arc(evaluator,&arc);8 F& ~# r$ Q) }
            UF_VEC3_copy(arc.center,point);           3 I( |. t) |! T* V
15, message_box1 b8 E5 f8 y, p- g+ z
void message_box(int *res_mes)# J6 M$ d, X/ \" P* }; G; M
{
4 @, R' f2 S& l! x. u      UF_UI_message_buttons_sbuttons;
7 g9 Y# {* j/ _7 I) ]5 G. w      buttons.button1=TRUE;6 s- i+ E% Q$ y. ^3 }$ P
      buttons.button2=FALSE;
3 n7 T2 \- h. k: v      buttons.button3=TRUE;
; @* H$ Y2 J1 C& C' l
8 \3 _5 k# `3 |, ]      buttons.label1="OK";9 }2 o# i+ X) U1 D5 B7 r
      buttons.label3="CANEL";9 ^, X. E9 P- A& Q4 ~  a  o

. V1 Q, m; ^4 s) A* _      buttons.response1=UF_UI_OK;: m3 f  g1 r8 ~  @! u
      buttons.response3=UF_UI_CANCEL;
, v8 B& y2 H; i3 r6 P* w
" x: V. o& O9 ~) G: ]# ~: \! D6 e      char *string_msg;
% G0 k5 z% i) C  P. }' \! x4 F      char*material_msg="ALL selcted objects will be removed";& t( f* t5 Z$ v
      string_msg =material_msg;, W$ z$ v2 \# R! I# }. J9 J
' w1 B* Y& q- R7 B+ D% @
      UF_CALL(UF_UI_message_dialog("",( [& \) ~- H" E0 v# w
            UF_UI_MESSAGE_WARNING,
1 n3 m2 [3 q. l          &material_msg,
& |% X0 j' X  ]  F6 N            1,
$ n2 C& \' H+ L. o9 C            TRUE,
9 A2 ~' R3 L6 I- i( }, D* {            &buttons,! a6 t' F. g# Q" {
             res_mes ));
+ o/ q/ e6 e/ Z. M}# Z. _. i6 }" L/ y0 |
16,选择过滤
: V8 J! g/ _, Estatic int init_add_face( UF_UI_selection_p_t select, void *client_data)
3 i8 ^  Z1 q. V" R" s8 n3 Z$ Z{4 Y- u4 @/ i7 G/ |5 c1 \3 E  _
      int nums = 1;
' X& m2 u5 u5 p* J+ |* J      UF_UI_mask_t masks[] ={# [- Y1 M9 \/ d' z
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};# t) r3 E4 {" w* s) o8 E6 V+ q  r
  i( ?4 X- v" S8 ?
            if(& W! }% |6 ?; m/ ?/ Z
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
8 T. Q' o! j5 R) @                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
* z8 ^( e0 T+ K' k+ \8 Y                  )
* ~  X- v7 K1 s; e+ c            {# r7 B" j* S2 W, V+ y# h8 ~
                  return(UF_UI_SEL_SUCCESS);
) l/ }; J3 ?; r% B            }3 J& |4 G2 p5 U% N6 ~5 y% I
            else% X1 f" D, Q, O
            {     
" J' p  I/ e& m+ G! n+ I' ^7 U                  return(UF_UI_SEL_FAILURE);" k7 o7 c( w1 r0 S0 J
            }
' g4 Y0 w4 a, x8 P2 c}% f& e5 I: O, w3 w) \& S& Z7 g
int find_tag(5 b9 {9 z6 x  [% F8 Z* z
                    void * client_data,//用以传输过滤资料
& B8 I( N& B0 l/ m! c" w                   tag_t object//现在鼠标所选物体ID0 n( S( \3 |" t* Q' m0 U4 K: i
                   )
  j# [- \/ T6 G{
) i# p: g; X# q- m      user_data *obj;- V4 @, I! V- ~/ \
      obj=(user_data*)client_data;
. Z5 M' [9 ~( w      int find_face=true;//接受
9 Y; \7 h- K0 [1 w1 m1 {3 J' {8 ?      char *string1;
7 a* J- Y" K- P0 _) a$ r5 Y      string1=newchar[133];. @# x9 w4 e+ _0 j
      string1=UF_TAG_ask_handle_of_tag(object);$ e# y: ^3 J( p  {6 n
      for(int i=0;i<过滤的数目;i++)3 ^6 M6 i, B( V2 k+ a& R/ T) H$ ?# U' U
      {, ?- u/ f* z8 O

! {$ G) ~7 @# C- U            char *string2;2 w, H- \8 A1 E) t  Z  u' b' `7 [: O) `+ B
            string2=newchar[133];
1 X* y; C/ i! |" I4 o            string2=UF_TAG_ask_handle_of_tag(物体ID);8 {; c3 t. Y1 V$ k4 O0 _6 \
            if(strcmp(string1,string2)==0)% k+ U% B& n; w& }2 Z' h9 K
            {
. U: n: j) H/ T' ]. O+ ?/ t                  find_face=FALSE;//不接受( W; b0 F1 P" i" ~' _4 Y4 P0 ~  N

, E* ]' p+ r2 `7 E0 p4 ^            }0 G! Q5 K  F+ v5 c9 I3 k
            delete []string2;
6 \0 q" U9 m1 y      }# l) O9 B3 ?+ H% U9 B' }* C
      delete []string1;. y  G; L* y/ r7 Z
      return find_face;
$ h8 `' n! w4 t8 Z- Q4 v}0 ?; w* U6 L" J: K

4 W7 U6 Q5 S- c, O0 e7 a0 f; P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了