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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
" y3 R$ v" C1 B6 h8 n
7,裁剪片体1 s0 j/ a: S- [& G* v% o6 d8 h
tag_t  *trim_objects;
2 H1 ~( _* r% A0 {/ T1 ptrim_objects =new tag_t[count];
7 ]+ y# _- ?1 rtrim_objects =bound_id;
3 |! m/ Z6 W$ ?voidtrim_sheet()$ }' q. y5 T* v/ a3 r, S
{
4 m( Q9 r2 F! z0 z* l
4 R  f$ n& x/ t; n% p3 r( @* ?      UF_MODL_vector_t projection_method ;
1 S! V' w8 z7 E7 l      projection_method.reverse_vector=0;0 _, R! G+ P% x5 T
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;# f' |6 q+ z/ J* T2 ~1 c
      UF_MODL_vector_defined_by_union_tdir1;
# Q. c6 G  X5 O) \5 Q( o      UF_MODL_vector_direction_t dir2;# @( P4 L) {5 x9 ^9 J& B3 x+ y, F+ X# e
      dir2.xyz [0]=dir[0];
+ B. Z& W$ n  o) ^' J: a      dir2.xyz [1]=dir[1];
, X7 t# i8 l5 I0 M& H: f; _      dir2.xyz [2]=dir[2];  E. A% r; G: R$ L. w& q
      dir1.direction=dir2;
& F+ n! j- o6 ^1 H7 c% P+ ~/ Y* f$ o3 M% D4 _
      projection_method.defined_by=dir1;% u$ Q$ B& C6 s5 D- }% R) W

! T3 V4 L- J) K8 l& Q0 h      double point_coords[3] ;
7 R' \- o4 V' \3 F" M
) C) [; f8 j) {      point_coords[0]=center[0];
* F- v! ?$ k. l% ~      point_coords[1]=center[1];9 D+ b; n% a) w# O1 N
      point_coords[2]=center[2];* H' D  t/ O+ U. c" C

8 \# W& T! e# c7 s      int gap_point_count ;
& [' Q3 B2 v* l  A      double *gap_points;
! j$ C4 T* {& Q8 q      tag_t feature_obj_eid;
/ G. _+ L; F3 p$ V1 ]9 s) b      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
$ a8 \  M% K% z3 R+ t1 v                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);9 |3 U4 I! t. ^) b1 W

" p+ Y/ P8 q' ]+ j, G' I  E0 \2 A# {}- h+ {7 A; @& e# h" L
8,offset偏移! t5 O7 \  V) `7 T7 A, Q8 {

: b1 k. m# A! b9 D+ ^' s+ K+ echar   distance_str[] = {"10.0"};//偏移的距离
1 v( H& m7 B/ ^! ~0 Q# H4 x# W
) _5 ]( J  r- b0 f7 }5 sint  num_curves;1 y: b2 A3 }% x
tag_t *offset_curves;! T+ V! W% ^  K7 W6 j; i
UF_CURVE_offset_distance_data_t  offset_distance;
+ Y3 k( z* U# Y, V, joffset_distance.distance= distance_str;' @1 @: t! V* x8 |0 ~3 \+ {1 x
offset_distance.roUGh_type=1;8 x) v, e- ?4 z. P7 F  n
UF_STRING_t   input_string;9 u$ m$ X# z/ g' o+ W
input_string.id=curve_id;//加入想要偏移的线
+ d% O& z, H: a0 T8 cinput_string.num=1; //偏移矢量方向数量" t: b( u( v1 V  k: c/ B* e
input_string.string=&string_count;//偏移线的数量
/ Q! w" {$ }. C. O. Z. d% mintstring_dir=UF_MODL_CURVE_START_FROM_END;/ A4 g  ^; g8 F
input_string.dir=&string_dir;3 p! E; Y9 M! T4 X3 r5 I9 s

! c. @! e& ]1 ]4 ^- u( `5 PUF_CURVE_offset_data_toffset_data;
. J. H  z% f# \/ r3 Z9 y5 m9 m" X- r, Z! S8 c
offset_data.offset_def.distance_type1= &offset_distance;4 e# ^% \! s% T8 e( ]
offset_data.input_curves= &input_string;
+ u- ?1 L$ G/ C( Ooffset_data.approximation_tolerance= 0.01;
! v2 e3 J. e0 F8 C, z" R! ]% ?offset_data.string_tolerance=0.001;
$ ^% _( T7 h! w8 L+ l1 @* p4 noffset_data.offset_def.distance_type1= &offset_distance;" G9 y2 @) ~0 p
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;! j: ?2 Y# d% z( k, Z- X
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
# F8 w* E+ o& X- ^9 v" r( d&num_curves,&offset_curves));( ~( m4 H2 o7 [& w" A6 @0 Y% n! X
9,创建平面' N! p! u7 E: }+ \
UF_STRING_tgenerator;
( p6 y( v- i1 |- t8 C4 \UF_STRING_p_tge = &generator;
9 I- d8 D5 `7 d; r" T: v( r
" q; T$ J& N  \1 EUF_MODL_init_string_list(ge);
4 m# _  P6 u+ g* g. SUF_MODL_create_string_list(1,12,ge);
# ?* |  L& z* J$ }3 j  j, G2 R- t1 G5 M, M9 B
ge->string[0]= 1;( f0 G- Z5 p) K
ge->dir[0]= 1;//指定线从开始到结束
: h5 l' w+ E+ P, J% E, @+ c0 Hge->id[0]= arc_id;//指定边界的id9 ~; ?  i4 R6 n
doubletol[3];4 B6 k: o, Z, t/ D& t  g' L' E
tol[0] =.001;//直线公差% n8 a# n0 b3 ]  i" N; c
tol[1] = .5* (PI/180);//圆弧公差
1 }% u6 l" O# N) _tol[2] =.02;//不起作用
3 c) A) \6 w6 R; Z$ n: C* e+ o; RUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));7 P& D4 w4 J! i( o
10,选择! y( }: C: O7 Y4 T2 |
1),点选择
2 B' X7 B  ^, m- Ttag_t point_tag;0 J8 w3 N4 R3 x
double point[3];
/ o3 S$ d" @9 T3 u; V       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
8 ~. D, d3 ^4 J1 ~7 s" O. l. y8 A6 D       intpoint_res;5 s  y1 y3 ?. x3 n! B( N+ ?5 a
$ H5 E! p/ G& o7 g; A0 l; G( O
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
% I6 H3 m9 Y+ f( q# g  N0 Fpoint,&point_res));, q# L0 P+ V" M
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)# p; q" f2 }& j, O; Z
{
9 R% T8 @: y4 x. \# D& F/ M }7 g  `( ]1 f0 q* R' ?; o" ^
2),向量选择
, n" i: S- Y$ t     int  mode = UF_UI_INFERRED ;
3 B# E5 h0 \7 I     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
* g, q/ ~$ s. T8 {double vec[3];9 W3 x8 ]  N* m9 B; F
double vec_pnt[3];/ q/ L; p! u2 N2 o) {+ U" r% X
int res_vec = 0;, i% }8 y, u' Z
     UF_initialize();  
2 m% n( _/ ?' t$ V* B- W     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,% Q6 M' W  m" }7 O7 x& \( M
           vec,vec_pnt,&res_vec);/ |2 @4 K2 {! [/ \0 S  s
     if( ifail != 0 || res_vec!= UF_UI_OK )   
& R% @9 _6 H- [/ M( z( C     {     
  Q$ q3 K3 \5 X           UF_UI_ONT_refresh();
0 Y. r5 L$ ?# H/ H" L" s# I5 r  P           printf("No vector selected \n" );
7 ]. X1 X- L) |1 a5 h8 g1 H     }) e9 O9 N6 U3 g1 g; R
     else% M1 |9 @7 s1 ]7 U1 p
     {" ^# d) @, T9 R: Y6 z3 O
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
0 ^# e+ e6 k! X) L                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
) M9 O- }0 |6 P2 ~5 T( Q6 R}8 s, I" \) @, n0 W+ S% k( d* O
3),平面选择
. z$ M& u, A# D0 v2 W& R' f# Htag_t plane_eid=NULL_TAG;
& b9 h5 b. S# edouble orientation[9] ={0,0,0,0,0,0,0,0,0};# t; L; W% m1 c1 l- v" s
   double origin[3] = {0,0,0};! z* `& I/ F+ E$ v% I% f
   double pts[6] = {0,0,0,0,0,0};# j! Z* C& W4 M! F
   int i, error_code = 0;
& _6 z3 |* j& e3 R9 {. B9 Z   int mode, display, response;4 f4 |6 S; M0 J
   mode = 1;                    1 S) s' ?/ y( N
display = 0;      
3 ]4 q* G( w' |+ B9 XUF_initialize();" [9 S7 m+ z5 C# L
   error_code = UF_UI_specify_plane(
: r) R% M* k- {         "Select Plane", &mode, display,* k. j6 ~$ I- X0 P
         &response, orientation, origin,&plane_eid);4 x) `, G6 m* K$ m0 Y- Q2 O4 R

+ _( b/ S" K. U& }" V- \& _7 d   if ( !error_code && response != 1&& response != 2)
/ L( s  Y. C& I  C" b   {, P. C9 T! b- O& X( O
                     for (i=0; i<3; i++)7 f7 p3 E  Y5 J# [8 S
               pts = origin + orientation;
1 m: M0 X. R. v+ I) f                     for (i=3; i<6; i++)
. d* p) N/ M9 l2 P& r$ i- H8 I. U1 Q( y               pts = origin[i-3] + orientation;4 Y) e) V8 k' C9 [5 h& `, t/ v
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);+ M9 o* v/ a7 C, Q" H: i% t
   }
' D% J/ n+ s9 ?0 {11,临时点,线9 h9 t+ n! y+ w7 _) W  J+ s
void display_temporary_point_line (double point1[3], double point2[3])
: p& C* P- H' r/ ~3 H( e6 b{
) o0 h! i- X( [  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
+ ]/ I) m4 m* O7 D  UF_OBJ_disp_props_TColor;# p6 R9 b" w# p% P7 h: M8 t3 t
  color.layer= 201;
8 v5 ~% O& H  }* S2 e8 c3 O  color.color= 186;* z4 V& S4 b& n# ~9 M" W4 l/ }
  color.blank_status= UF_OBJ_NOT_BLANKED;
/ V! W# \! I  h  color.line_width= UF_OBJ_WIDTH_NORMAL;
  r6 Q% p$ b  F' h2 p- U$ r  color.font=0;9 d# J8 W2 m- A# z. l0 Q
  color.highlight_status= FALSE;& w5 J8 ]% t* l( k8 j# M2 K! O
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;7 X; U% @1 x% a( Z/ F2 g% y7 n5 ~
6 Q/ u6 V/ O) X  f1 q: ^
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
& T3 S( e1 \& M0 O: H, Z+ t; E$ AUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
- x- ]5 g4 u0 f& ?- ^& e( A8 j- w0 KUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);7 [. j* T0 N! t# G$ X
}: `5 R8 V, t6 E1 e" B/ d4 l5 e
12,WCS与绝对坐标转换
6 G5 K. d  v5 U$ I                        voidcycs_wcs(double point[]), \* r. Q* c; H# R. H5 {; s  f
{  }1 ~4 l0 h2 H
      tag_t  wcs_id,matrix_id;9 u* A  j  O* B+ Q
      double matrix[ 9 ];
$ y! n' z8 M" G9 `      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量7 z/ T- E, W+ y# ^; d
      double wcs_origin [3],vec[3][3],point_origin[3];6 [9 \% J% L$ Z6 L* A( n
      //1,得到工作坐标系
" o  }' W* F7 |2 b3 I  {      UF_CSYS_ask_wcs(&wcs_id);
5 T! z! }$ h' q' F      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
/ X$ \) c3 R) l* A$ o      UF_CSYS_ask_matrix_values(matrix_id,matrix);
+ K  V; I  ~% R' U+ G; r
# U! v0 N) {: T9 {$ p2 e, V/ L      //2,得到工作坐标系轴向量$ e9 I" ]0 g5 H; e" L2 q
      UF_MTX3_x_vec (matrix,vec[0]);% {& I6 ~! n0 x  q5 R/ G  P( C/ H
      UF_MTX3_y_vec (matrix,vec[1]);$ c0 Y, J3 v& A( O+ Q& \, P
      UF_MTX3_z_vec (matrix,vec[2]);" w- g. P3 r3 e2 q, @9 t4 C$ A# n

% T& g+ ]  S+ G, ~) h      for(int i=0;i<3;i++)
! D* d% P; _2 C( E3 y+ m* B      {     : k* u9 f) l1 x, t( @
            double tol;
! p8 e7 C' n( G7 U//3,得到点到工作坐标系原点矢量
% q) P# [. n- H            UF_VEC3_unitize(vec,0.000001,&tol,vec);6 G# X: ^( \: `' O0 S, |
//4,得到点到工作坐标系原点矢量: \- ]" P/ N. C1 _2 s1 ^- }! r4 |
            point_origin=point-wcs_origin;# U4 o3 O( g4 z3 q) W
      }
) m* R7 f0 v3 Y* ^1 x" |5 Z/ R      for(int j=0;j<3;j++)! V+ C& z7 j. e
      {
) U8 z; p0 j1 k- A- s$ ~, \            UF_VEC3_dot(point_origin,vec[j],&point[j]);5 [& z0 A! N, F9 ?# K
      }. R# g/ j/ V1 ^+ ?  x
}* H% c/ o% J' ~( D
13,三点求圆心2 q; k1 Y- S* r: L
#include<iostream.h>
3 x( p& x. v) i; D: i4 P9 M+ V# }#include<math.h>
' G8 Y+ @& o  }$ M9 [2 r  j7 g1 F4 E4 P, u( Z& c& G1 a5 E2 {
int main()$ k. V3 |  {! }1 a$ ^% W3 Q8 V0 Z; e
{
9 {7 O. Q( P# b% _      int x1,y1,x3,y3;! P/ I4 r: c; Q% i
      double a,b,c,d,e,f;7 U4 j* M" I8 v( T/ V& V1 J
      doubler,k1,k2,x,y,x2,y2;
, G' {$ r7 X5 i: \- N      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;# s: c6 O# w9 U  T1 t/ l$ `3 a1 C# ?
      cin>>x1>>y1>>x2>>y2>>x3>>y3;9 [. ?" E5 r$ j. t* Y
      if((y1==y2)&&(y2==y3)). X/ l6 q& R! d5 n3 v
      {
4 G, \0 s& @. b# j6 U1 j            cout<<"三点不构成圆!"<<endl;3 s  Z, }5 Y* b) F+ V+ R* W" C
            return 0;9 u- Y" g8 O% l" O7 t2 r, G' ~- w
      }
  b8 b8 G+ ~* Y, i$ s8 a      if((y1!=y2)&&(y2!=y3))
, H( }# q* x8 W9 }      {
% ]6 z$ S( W" Y9 v- A4 e            k1=(x2-x1)/(y2-y1);
8 G9 g7 F1 ?5 I" a/ l! C' @            k2=(x3-x2)/(y3-y2);
$ T3 [, w0 W3 B$ g- \3 }! D6 b      }" q& c9 i! D1 ~9 ]1 `2 ^
      if(k1==k2)
: Z7 S, x6 N1 ?, W      {
; j* m$ h( b9 N' V' s" F            cout<<"三点不构成圆!"<<endl;$ p! S0 `) f, I! ~1 U
            return 0;- s# j! K. t8 m) V' d
      }
$ m, Q6 u7 A: g4 A" ]      a=2*(x2-x1);
$ y' u0 F" J2 L, o0 F      b=2*(y2-y1);$ ~' o+ s5 x. W/ ^' J7 P1 T, Q
      c=x2*x2+y2*y2-x1*x1-y1*y1;
2 u9 |& R' R0 L% _+ w      d=2*(x3-x2);
3 l8 C- L/ W6 {  y! F5 @      e=2*(y3-y2);, A7 U3 S1 k- d2 F7 I- a# ?# a2 P
      f=x3*x3+y3*y3-x2*x2-y2*y2;  m4 D6 K6 |% W- G1 K5 J
      x=(b*f-e*c)/(b*d-e*a);
3 p+ T! l0 k" O6 @5 X" a      y=(d*c-a*f)/(b*d-e*a);
3 O# [- E" v! u. }6 I      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
, {! J0 O0 q: D. K9 u7 `) `* x7 B      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));% Z4 D$ y0 {5 t
      cout<<"半径为"<<r<<endl;" O& o7 A: L2 U) p; p+ K; A
      return 0;2 ^* k: C% T1 P; [$ U# T
}
0 X. Z6 f0 L' B  S0 z1 z% r5 K3 p14,查找圆心, V6 U7 v- k% d  f$ g
            UF_EVAL_p_tevaluator ;. i% R) n9 a+ I- L; Y* |; |1 R; Q
            UF_EVAL_arc_t arc;  @& I( K8 }1 f0 |# Q4 B* a" o
            UF_EVAL_initialize(obj_tag,&evaluator);
* G% @0 W$ }) u* `' L7 L            UF_EVAL_ask_arc(evaluator,&arc);- y% V: X- n' N, G5 N4 O/ L0 F
            UF_VEC3_copy(arc.center,point);           2 ]6 Z, e& O# ~5 s
15, message_box1 H8 X; H# c5 v8 v3 B7 M& C
void message_box(int *res_mes)
, x; B& B1 W' o- E{
% q2 M) r* F$ a, W- F$ I6 W      UF_UI_message_buttons_sbuttons;! c) `' [3 w7 u
      buttons.button1=TRUE;
4 O, D7 i; R; K* t+ J7 f& n; @6 ~      buttons.button2=FALSE;% h8 K9 w; P4 ^
      buttons.button3=TRUE;
( y% h% D0 D3 R# h, V& `( o- T/ n* C0 t
      buttons.label1="OK";
( v; ~/ [5 k3 ~/ ~# z: d      buttons.label3="CANEL";
) ]" z7 B& F/ R
8 X, A7 C# t, |      buttons.response1=UF_UI_OK;
$ k* k) u$ [2 I. S% D9 t! }4 s      buttons.response3=UF_UI_CANCEL;
- j0 P' S: s$ `( I0 F+ U6 U  N" U+ f. n# n3 u* D) v
      char *string_msg;
7 [- L8 O5 u. L. s7 Z" G      char*material_msg="ALL selcted objects will be removed";5 d5 o. \8 }* z  P) |
      string_msg =material_msg;! ?2 T+ w1 V* W( }
/ T" V! y$ [$ P/ ]# o5 z. K; W
      UF_CALL(UF_UI_message_dialog("",
8 \7 n) A9 @. h3 [. N4 x7 e6 S            UF_UI_MESSAGE_WARNING,+ V1 Q) F7 B. s
          &material_msg,
# p1 C* p% O$ n, d6 P& c& u* j4 _            1,1 J. |( v" k9 x# k
            TRUE,) R- h6 [0 w2 k9 n, z3 M2 e2 j& n
            &buttons,5 ~! W2 ]' F" @7 Q6 _( y
             res_mes ));2 ^5 T% G7 ^) ^
}
) g2 V, S2 L) q* N16,选择过滤
! V3 G2 R% C/ v# X) istatic int init_add_face( UF_UI_selection_p_t select, void *client_data)5 ~2 f. @* y. D4 g( X# P& P
{
& X. Z2 q  w. c, t; s" I8 G6 N& P8 E7 T      int nums = 1;. d6 }5 e* |& N# W
      UF_UI_mask_t masks[] ={/ p# Y0 B; j2 A! }/ U0 Y: u% |
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};) a; ^1 s( }2 B. k5 E
  M+ E+ d- P7 i* S* P( ^
            if(& O$ ^5 c+ T5 d, F& B
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
5 t( v7 m# J- R2 W# l                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
1 ]! Q: V3 `4 e1 S                  )6 I% w1 i* r- {5 ^2 p7 ~% d
            {
2 k* G4 B- R3 }9 z' Q/ ?                  return(UF_UI_SEL_SUCCESS);% @* x; I5 `" r
            }5 d" K8 Y0 H5 E& B% s" \
            else$ L( q. A1 B% Z
            {     
! ~" ?, |+ I$ ?% ~                  return(UF_UI_SEL_FAILURE);  V( }& b  @* U. }. ^- `2 a, j, [1 L
            }' u6 W- G6 U7 o7 a* P' l" i) M4 u  E
}8 f2 e6 J, I% X% m* P4 \  A  R/ j
int find_tag(  ^' V1 S! z1 N' B7 p! W3 O
                    void * client_data,//用以传输过滤资料
2 e$ X2 v! t$ q5 n) P+ @                   tag_t object//现在鼠标所选物体ID* p5 t* [1 X, a1 x& c
                   )
/ t/ w# C, \- J" b8 ^8 w8 }) z{
; d1 K, l( I, P/ t  x/ Z3 M. m      user_data *obj;
& N' e; r% j" g- ^. v. R      obj=(user_data*)client_data;8 b( r3 G  `! Y+ A7 h) V
      int find_face=true;//接受% s: t# q+ u; |7 h) c8 o
      char *string1;
, A& Z3 u6 ]# Y+ X# K; K  c      string1=newchar[133];
5 Z/ l) t' v6 [8 `      string1=UF_TAG_ask_handle_of_tag(object);
& C) B; @' H+ u3 ?0 e. H/ b      for(int i=0;i<过滤的数目;i++)
1 x7 F/ v. e: V, x& G" K      {( w8 x; }- l; z/ V6 S- y$ Q
( d! `0 N5 K& k$ n+ g) |; i
            char *string2;
; t% f3 l4 K3 t0 J1 l            string2=newchar[133];
; _" g% ?8 v& |' `4 y            string2=UF_TAG_ask_handle_of_tag(物体ID);
2 W, ]4 T8 e- O1 x7 m            if(strcmp(string1,string2)==0)
: _/ P% _3 |7 ]5 m7 s2 y            {; K$ H- p9 |) `
                  find_face=FALSE;//不接受
+ Q0 \& \# W8 m; Y& A4 P* B/ X+ b, _5 E
            }
4 ~; d, A* F/ Z( P            delete []string2;
2 E+ _) p2 d8 l) N( k4 Y: ?      }- o( x, W' k" D  x
      delete []string1;8 K0 v6 _0 n" b3 j- ^' P- d% ]) a" _9 q
      return find_face;
. u/ ^1 [$ k: C2 V: X/ H( c) p- V% G}; r  t4 \  D0 v

' _& [* F' ^4 n1 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二次开发专题模块培训报名开始啦

    我知道了