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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

% ~6 W1 W6 ]0 y9 w7,裁剪片体
6 m/ s6 S$ g" A/ Q% W; vtag_t  *trim_objects;' Z. p- c" B) Y* @( t4 E
trim_objects =new tag_t[count];
: G# v+ X' @8 ?9 jtrim_objects =bound_id;
- e* V# z. j4 F& {1 I& Vvoidtrim_sheet()+ m+ f  b/ Z# l+ _
{
/ r7 J0 G7 n: c. N; Z8 h, B. q9 Z) ?8 A4 a9 v# W, F( K
      UF_MODL_vector_t projection_method ;# F; G* ^6 l% f- }9 Q4 N& q
      projection_method.reverse_vector=0;
5 l  U+ o3 C' p' Q5 X0 d6 h: M( ]      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;: z; h; l9 S  o
      UF_MODL_vector_defined_by_union_tdir1;% G0 Z/ b8 _' d8 c! M
      UF_MODL_vector_direction_t dir2;
6 @- Z, V7 T5 J4 ?9 H9 g      dir2.xyz [0]=dir[0];/ r1 {& ~3 L  \! b" t4 b
      dir2.xyz [1]=dir[1];% _7 V4 _. E1 l" e
      dir2.xyz [2]=dir[2];* p9 c4 V- j7 e0 V6 ^$ i! I
      dir1.direction=dir2;
. r" [/ O' F; \
3 O3 h" y9 F( l) Q6 u" j* m4 Y  a$ ~      projection_method.defined_by=dir1;
$ d: h. I2 Q" d9 X' j* V8 y# e3 q. Z& X  i
      double point_coords[3] ;
' Y' F8 Y$ P# l5 J
) ?# b7 V0 w/ c3 L( g7 e      point_coords[0]=center[0];% K- P" S- {- b1 W, Q8 y' p( P- e; P, W
      point_coords[1]=center[1];9 n8 J' B& }: x7 D9 k  {
      point_coords[2]=center[2];1 G9 U5 Q1 J4 {' M
* Z! ~) p3 o& N3 Y5 O
      int gap_point_count ;2 I* M4 |7 _. N( A0 B
      double *gap_points;- ]0 y. G2 i4 }5 c6 y* l* W
      tag_t feature_obj_eid;" @% v2 a$ Z& g& V! V) A- P- }5 {
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,, V% h6 [  A! p( D- |- y+ s
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
: J) f2 T0 O: V4 J+ k' K
( w, v! @8 g, R" x0 P}
1 o! \0 E' m8 p1 O3 d" y! R8,offset偏移  K8 w: O. ?" a7 [: q8 v7 y8 p

/ I9 b" ^% L, H2 Q$ G( Pchar   distance_str[] = {"10.0"};//偏移的距离+ X3 e' p9 a$ n' M# s. Y( q0 q9 R
' _2 O) z, H  J! M1 N
int  num_curves;) e2 @$ T$ p! i
tag_t *offset_curves;8 L3 R) j% K  o* V
UF_CURVE_offset_distance_data_t  offset_distance;' ^' f' Q) g4 Z: ]
offset_distance.distance= distance_str;
& m8 n: R% [0 j% Goffset_distance.roUGh_type=1;* T  V6 Q7 }9 Y4 Z! |) n
UF_STRING_t   input_string;
4 v  w% w& Z" {, O( S/ j; ~* ~+ Jinput_string.id=curve_id;//加入想要偏移的线
, ~6 M2 v7 z9 g/ binput_string.num=1; //偏移矢量方向数量, e  u0 R0 W" D
input_string.string=&string_count;//偏移线的数量
2 t# d+ D  b4 Q5 Lintstring_dir=UF_MODL_CURVE_START_FROM_END;
; U1 L: V4 g: _, xinput_string.dir=&string_dir;
% _% D4 r6 S) j$ W9 y- A% V% }0 O" n8 X* A
UF_CURVE_offset_data_toffset_data;8 ?# P5 a5 `$ q
! {+ v( G' V) \$ f% o6 |
offset_data.offset_def.distance_type1= &offset_distance;9 |! c8 K2 ^4 M
offset_data.input_curves= &input_string;2 H  W9 S7 g' Z4 ?6 j+ V( ]
offset_data.approximation_tolerance= 0.01;( K9 s1 R6 z/ G4 M5 X
offset_data.string_tolerance=0.001;
0 q- O9 M9 a/ p# B2 K; o  Goffset_data.offset_def.distance_type1= &offset_distance;6 n/ m3 W, v0 p5 d0 ^( [$ k
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;( E' T$ P  X/ ]9 ]; ^
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,0 G0 ]+ z- g8 S. k. |
&num_curves,&offset_curves));6 M: F4 D4 R" _0 I9 {
9,创建平面- H: P9 A' z; w( ]0 a
UF_STRING_tgenerator;1 _7 O1 ]7 N3 \$ @% n& b% l
UF_STRING_p_tge = &generator;
5 g! r& u% e0 g# T. h; ]. a  N! t
# S' U8 @3 k2 aUF_MODL_init_string_list(ge);
) k, ]# ~% M* M8 ~2 Y. rUF_MODL_create_string_list(1,12,ge);! T. F4 h8 w; U
  `( y/ e; c$ R4 j8 E) F
ge->string[0]= 1;9 r( n6 X; G3 J: P
ge->dir[0]= 1;//指定线从开始到结束
$ ?! a; z: D, \! j3 w/ u1 a' u1 _6 R" Vge->id[0]= arc_id;//指定边界的id
$ ?) W2 U* ?; G& k$ G8 Jdoubletol[3];
* T5 j; G, u% T* }) H( J/ Htol[0] =.001;//直线公差0 f( T$ e: {" o" l' [; P# F4 ?
tol[1] = .5* (PI/180);//圆弧公差
# E- v' W& P6 r" R9 H" N, e+ |tol[2] =.02;//不起作用
1 l; ?# `$ x8 d" n' s3 S+ kUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));1 T/ B& H5 P) n& f/ w8 j7 f
10,选择1 n7 l. ^3 f8 p* z! N
1),点选择
9 f0 |8 k' ^# Rtag_t point_tag;! }% {1 U, V0 q( k0 p: ^( j2 N
double point[3];3 D* |( J  x- o0 J' p+ [
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  ; X& a, o8 I1 L$ H  s; v
       intpoint_res;
" N  ^2 a8 H. v+ X+ L) j4 S; I( `$ f( @3 `! \- z/ h
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
1 f) T4 Z4 ]: |, P$ K; \# Ppoint,&point_res));5 H" V' w( e7 J5 a4 d6 P0 ]% J
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
( D% }0 |: F  x{
0 y- ~# U/ w# [ }* i" T% k8 V6 ^0 W6 D  C
2),向量选择3 z: k3 O  u, |2 f# w
     int  mode = UF_UI_INFERRED ;
6 N( ~! N3 u2 j. y     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;' c8 r9 H" [# I1 P
double vec[3];7 Z: W) L" a: ^; r
double vec_pnt[3];/ z  M% N7 e; q0 ^, h+ _9 N* G
int res_vec = 0;
. g: B3 k0 U6 x2 M4 w  j  C8 r     UF_initialize();  3 O' d$ t9 J1 K! T
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
7 A; @+ P1 q4 `! g0 y7 E$ X0 Q$ ]           vec,vec_pnt,&res_vec);1 b  W0 f' n% x- r2 ]  B
     if( ifail != 0 || res_vec!= UF_UI_OK )   
/ u3 Y* O% n+ @; |( N0 D     {     % s, {7 C5 Q  C+ e4 Q4 I
           UF_UI_ONT_refresh();
! K5 T$ @! ~+ x" V" B           printf("No vector selected \n" );
) o" \3 ^8 ?! O5 r  J5 k) L$ ?     }
0 c7 ?; D" z5 Y' C1 ~/ q  j     else
3 a! U& J8 I% \- O, M' d/ j+ H     {
* j6 A6 ^  w/ t- g( m4 ?4 u           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
& L1 W. M! P3 b+ w9 U                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );& P5 N% B9 P6 ]! z& h) ^/ n
}, ?& ?; h0 b% x1 m; j
3),平面选择' G5 \  b4 j. z$ o/ K) _
tag_t plane_eid=NULL_TAG;
, [8 ~9 L- h8 [' `% {& D% F$ bdouble orientation[9] ={0,0,0,0,0,0,0,0,0};# _) z& ~+ J* Z% E6 k2 S# C' U
   double origin[3] = {0,0,0};
3 E8 `: ]2 n' ?% j' r, H) x% Z   double pts[6] = {0,0,0,0,0,0};
2 s9 x/ I) y; Z, v( Y9 k   int i, error_code = 0;
* r) d$ I/ O3 Z) T   int mode, display, response;0 h# R) p; x. h
   mode = 1;                    ; S& y/ f  r. M3 o9 R1 ]& F
display = 0;      
9 x6 Y4 l; S7 X. {0 O! \/ fUF_initialize();
  Z  j* `" q6 l   error_code = UF_UI_specify_plane(- d) t5 n! k, [' D  N) ^% e
         "Select Plane", &mode, display,5 ^2 p) z! w$ @  y1 @
         &response, orientation, origin,&plane_eid);, C$ L) {# _- T

5 `2 P1 M$ w. F3 Z, }   if ( !error_code && response != 1&& response != 2)
5 Z( S5 ]1 J' D8 f9 S- t0 n   {6 v0 u4 B: X' W* s) Y
                     for (i=0; i<3; i++)5 u- u! {% G# v4 \0 g
               pts = origin + orientation;1 l0 ~5 |- ^- `- n7 k
                     for (i=3; i<6; i++)% M! y5 k5 v0 a* X* q+ C- G3 `
               pts = origin[i-3] + orientation;' t: O+ U4 {: \; Y7 ~4 W
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
# w6 M5 O4 `1 `9 ]   }
% c, F, R; m5 j' S11,临时点,线
9 L+ e8 ~/ S- Svoid display_temporary_point_line (double point1[3], double point2[3])
/ j6 `. M2 K7 ]! m+ q9 u{
! N6 g4 \$ |% }7 D8 n  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
; w7 Z$ R8 T" E  UF_OBJ_disp_props_TColor;1 j+ L4 M& Q8 F' q- S& x' m
  color.layer= 201;
) Z) I0 E& v. b$ B  color.color= 186;
  y$ u' U) p6 t  color.blank_status= UF_OBJ_NOT_BLANKED;
4 ~; B# S. K, y9 D; ]) ^/ J  color.line_width= UF_OBJ_WIDTH_NORMAL;
2 p; Q: I- s9 d% Y. ]" q# \  color.font=0;
0 m( p* h  B# p( E5 Q$ S+ P0 a& S# H! Q  color.highlight_status= FALSE;6 A  [7 w1 A9 m( a
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;: C) w% P0 E4 x7 t) {

9 I( ?  l7 }/ a: ?1 SUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
- Z2 l# |: x, ]! WUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
: }1 \% q1 \5 e; }% K9 `UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
: @6 j6 g; a; w) V. e/ P. ^( j}- }; G0 f; ]1 L  f2 F  U+ P% v6 w
12,WCS与绝对坐标转换
& m; m& a7 ~1 I                        voidcycs_wcs(double point[])
5 k7 }8 R  E( ~4 R! K{+ H4 N. C- ?) F- T
      tag_t  wcs_id,matrix_id;
2 @1 K! k1 b3 b+ N6 t      double matrix[ 9 ];
2 J( j2 y4 f  b; n. f- Z      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量
7 d7 Q4 I. C* k3 ?; T4 d8 b      double wcs_origin [3],vec[3][3],point_origin[3];+ |% q  j. L+ i: D$ ?
      //1,得到工作坐标系
4 F; W" Q, M1 K! N      UF_CSYS_ask_wcs(&wcs_id);; U0 c& M2 d# I7 g. |) @- G( M
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
; q0 L9 J, a3 }6 I8 o0 N      UF_CSYS_ask_matrix_values(matrix_id,matrix);
* G+ `+ }( F8 g& ~- l! k+ o/ {5 P7 F; g8 g% a% ?3 h( W
      //2,得到工作坐标系轴向量  y# b9 H* r- m" S5 N9 g1 q. k
      UF_MTX3_x_vec (matrix,vec[0]);( ]' u! q( b. z0 j- U
      UF_MTX3_y_vec (matrix,vec[1]);
5 R  G- `5 P+ K% t3 H" M6 u3 _      UF_MTX3_z_vec (matrix,vec[2]);: @+ D5 l  g# o* ]% m& X$ _

+ K8 c0 a; M  H1 ]1 N6 ^8 Y* C      for(int i=0;i<3;i++)0 {1 c9 T6 F3 y
      {     
( T4 ~& t. e5 D/ n            double tol;
3 q5 J# E) `% ^7 `# B" g3 q) u//3,得到点到工作坐标系原点矢量: _) L8 E9 P5 X! ]1 T8 h
            UF_VEC3_unitize(vec,0.000001,&tol,vec);
8 z) R5 d; J5 U& a5 W5 s- M//4,得到点到工作坐标系原点矢量
- @( ?- B$ ]; U            point_origin=point-wcs_origin;! J  E1 @! ]) R$ L) V5 H( R5 ^
      }
3 N/ Y! v8 [0 d. |+ G" H      for(int j=0;j<3;j++). `0 n+ `3 J4 R: U& e8 X
      {
6 `1 V9 h: U. G2 J* Z/ H# N            UF_VEC3_dot(point_origin,vec[j],&point[j]);/ I' P1 s/ p# U/ F# v0 L; S7 W4 k
      }
- Z. a4 E3 x; O9 t* P}
* Q9 v; G4 Y' O1 ^! Y+ K13,三点求圆心: s( |4 X& q" }$ P
#include<iostream.h> ' j/ ]2 p' H$ [9 n9 s
#include<math.h> ! t& M3 M7 z, C/ @6 @
, f+ l( c* b1 Y$ v
int main()
! P* \$ B! H+ c( [8 G+ U: n! w{& z9 q7 c0 P  W
      int x1,y1,x3,y3;
$ W, J; O0 g" K" R2 F* N; ^      double a,b,c,d,e,f;
4 A4 a- S4 c7 T) {. z: J      doubler,k1,k2,x,y,x2,y2;
4 D& _# e3 k( p3 k      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;1 [' ]1 d5 O1 G9 l
      cin>>x1>>y1>>x2>>y2>>x3>>y3;$ ]- ]! O" G1 E& {
      if((y1==y2)&&(y2==y3))
; _7 {9 j% n, G6 k, [9 t+ \$ i. W      {- w6 V: o$ c4 E1 w* o
            cout<<"三点不构成圆!"<<endl;  U% J- v; p7 `$ F: }: F6 }, B' Z
            return 0;7 R$ @( [) b7 X5 G4 A) J' ^1 E
      }" w) g" L9 D' K6 ]2 L
      if((y1!=y2)&&(y2!=y3))  l+ _& h. h4 x7 {  w
      {* q* Z, S5 S6 H3 V# R. }/ G. u
            k1=(x2-x1)/(y2-y1);9 \6 M2 a6 D) }* A' v7 c
            k2=(x3-x2)/(y3-y2);% n9 F8 \- X  Z* x
      }& d! V0 Q7 e9 x: o6 L
      if(k1==k2)& a4 P  a- M8 U% N% O
      {
" X  p% ^: ~* J! A& d            cout<<"三点不构成圆!"<<endl;
8 z! `% f2 L6 l' E  B            return 0;& A- ~2 c, ]: c# }% D6 q% s% m
      }% D9 `* d7 y$ P+ T
      a=2*(x2-x1);3 c1 ?5 }$ h. {$ H- d; F* F4 D
      b=2*(y2-y1);. y. @: L) b8 C! N0 ^- ^. h3 |
      c=x2*x2+y2*y2-x1*x1-y1*y1;5 A. ^- P9 Z( l1 q7 v- s( g
      d=2*(x3-x2);# a) Z& U# c( u7 j3 G2 h
      e=2*(y3-y2);) z  k$ C" k6 C
      f=x3*x3+y3*y3-x2*x2-y2*y2;; a+ X. Z' s! k  w& [
      x=(b*f-e*c)/(b*d-e*a);
4 V* y! X" D& Y( E1 x# N* l. m: c/ N      y=(d*c-a*f)/(b*d-e*a);' m0 X' X( k3 D) K/ |
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
% D% q3 D7 D, w% m. Q* g      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));/ e) F+ I6 l2 c
      cout<<"半径为"<<r<<endl;
6 a; U7 Z! Y+ p1 d      return 0;
) W& y6 ]# t& _5 p; ~7 h}
2 P3 C( x2 M6 c  {5 w3 O5 U8 f14,查找圆心
# ~- H& ]/ ^* H% C6 ~            UF_EVAL_p_tevaluator ;
9 \# f8 y; v& t$ M  W            UF_EVAL_arc_t arc;9 Q8 w- x( J2 x
            UF_EVAL_initialize(obj_tag,&evaluator);8 x  F0 ~8 n( D! t7 {4 _
            UF_EVAL_ask_arc(evaluator,&arc);
: \  f# P# b0 x$ y            UF_VEC3_copy(arc.center,point);           ! i+ a7 G2 b# _: p) S7 I
15, message_box
/ v! l+ y* Y  j/ f; M! jvoid message_box(int *res_mes). }: V, v+ J4 }2 K) B
{3 l5 P- i, Y! o" _+ ^' x
      UF_UI_message_buttons_sbuttons;
& x# @6 ^, L! B6 r6 c      buttons.button1=TRUE;
' {2 N- Z: D9 n3 B- f: i1 n      buttons.button2=FALSE;& @4 ], X- y6 M7 a0 x- s2 I
      buttons.button3=TRUE;, a( q- Q% A& F7 n9 I' w

4 }, x2 o8 W6 r8 i# ~      buttons.label1="OK";: h4 F) S" U  H7 W3 t( T
      buttons.label3="CANEL";
5 d5 b, f/ i2 r4 ], [. ~& a' x' i7 p! L
      buttons.response1=UF_UI_OK;/ k) O# k2 f  w9 v1 ^
      buttons.response3=UF_UI_CANCEL;
. [! A( e& Q% A! h' k/ b# O$ F/ z6 K& K$ q
      char *string_msg;  ^0 k4 D% F$ Q! M. O
      char*material_msg="ALL selcted objects will be removed";2 G1 h% K% U; L+ ]/ C0 V" j3 y2 C( x9 K
      string_msg =material_msg;
1 S! _8 J+ Y  V" B* K& I" U, F6 \# X
      UF_CALL(UF_UI_message_dialog("",
, \8 X6 X( V+ [0 O5 g" M: G8 }            UF_UI_MESSAGE_WARNING," Q& ^) ~" P5 S' a
          &material_msg,2 j9 t; L7 I. X& ^( t
            1,8 T3 S; G! C3 p, h1 s6 A- S
            TRUE,
: g! h% X# }$ X+ q- k/ i* J            &buttons,
% ]; ^( G9 u  R             res_mes ));
% \) [! g4 `9 Y8 \}  i' q, h4 S- ~, F9 z8 x
16,选择过滤5 q- ~* C% W) X5 J$ J
static int init_add_face( UF_UI_selection_p_t select, void *client_data)8 i- d# Z9 ~0 Y7 T/ U
{
+ X- Q; g- L# b      int nums = 1;
" N' n4 S; I! ?. }3 c# A) }% j      UF_UI_mask_t masks[] ={4 X( L* f! s& Q7 i& x$ I) a
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};3 K. [0 l4 o" ]
* }! @/ K; z2 {  I. i$ H
            if(
/ s( R+ @* p  Z1 V" J/ U9 E' E8 i                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)$ p9 [( W  t- K
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)3 L1 U7 D; p- w. }0 Q' V
                  )
8 E& g' b" ?" z" U; D# V( A            {
' Z3 R$ v6 ^( ?( T                  return(UF_UI_SEL_SUCCESS);
# H* y+ f2 N% L# h1 t2 f3 J( [# o            }: S% n  B1 ~! _' h1 T
            else
  H# H1 E0 T6 P8 E            {     
! x  y9 V$ F# d8 T* q) F# p! Y# X7 a4 V                  return(UF_UI_SEL_FAILURE);  Q/ ?6 \* v8 Y- o
            }
4 k. L0 U) a* Z" W  R4 S. C1 G}" ~8 `4 ^) W4 R  o+ @" }3 D
int find_tag(
1 Q6 G  g, ]; j9 ]: u                    void * client_data,//用以传输过滤资料
6 V/ U" E2 k5 G: m8 Y6 z                   tag_t object//现在鼠标所选物体ID! a3 i$ t. e7 Q5 j
                   )$ q# s' X/ [# w1 v
{
* R' ]! Y9 A7 Q  z2 c$ M3 V# a      user_data *obj;
! y9 Y6 b! B/ {( Y. q; g2 A- w! O      obj=(user_data*)client_data;
3 O" `+ L4 l& o" _( L& u) s" g. n      int find_face=true;//接受& k' A* E+ A6 n# d8 b. W
      char *string1;
7 I) S- S" Z7 n, I  I: p3 d2 _      string1=newchar[133];6 z1 p; z4 ]+ @. _
      string1=UF_TAG_ask_handle_of_tag(object);  r: _8 ~$ U' A
      for(int i=0;i<过滤的数目;i++)
( F1 G4 s4 Z8 x, h      {
. f$ ]" r; X9 E! A) i0 m1 W3 Q$ T* L' \9 {% X$ m: @5 _& T7 S0 W
            char *string2;
- x+ s3 c# P0 d( Q/ h            string2=newchar[133];" N% |7 E4 F$ g. Z/ l* k
            string2=UF_TAG_ask_handle_of_tag(物体ID);
/ d# w* r/ q, W, M+ \7 L+ d            if(strcmp(string1,string2)==0)
/ w& c! [' P( Y0 l; q            {0 o0 g" X. T* C! _: y. M
                  find_face=FALSE;//不接受& }, l  u& J( ?0 O7 U& _- ^
/ C/ ?6 B  b" P% r0 X, k
            }
8 {, T& C) N: e% L  |2 D' i# f* A            delete []string2;
( n  u6 U8 f9 T1 B      }
3 a- A8 c( ~5 O- T4 J      delete []string1;
& f: B' Q% Y% |% {' V% F  l$ t      return find_face;
4 n0 i. Q8 y7 E2 Q3 Z& U}
, D) f$ H' Z9 i4 a# q' l/ E+ V1 C, G/ [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了