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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
- o9 M' Q" |4 m# o8 I$ A' l
7,裁剪片体
: i) F: s2 l* c2 P+ Atag_t  *trim_objects;* C  q1 w. P/ l
trim_objects =new tag_t[count];1 v7 b+ U- x' ~1 b; p! Y2 E
trim_objects =bound_id;$ h! z4 u; k! ?: N& o% w3 `- l" ]+ O
voidtrim_sheet()
) \' L4 |6 U# E& n" q& Z{9 z# _- O, A1 M( x! N2 w6 G  n
2 n9 W% b5 G* D$ m, Z' Q% w0 C
      UF_MODL_vector_t projection_method ;
, Z& w8 Q2 r- X      projection_method.reverse_vector=0;- R+ G$ g9 a, Q# U# u3 G; l
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
% ]" y0 h( x5 i; _) T7 T! ]9 X/ X3 \      UF_MODL_vector_defined_by_union_tdir1;9 p, M- H  I5 U$ Q6 Q. _4 }
      UF_MODL_vector_direction_t dir2;
$ o! |- k( v" X! ~9 [. W      dir2.xyz [0]=dir[0];
6 X. R- X( v. `$ ]0 E" B9 R  o      dir2.xyz [1]=dir[1];1 b: U" S( s9 L3 s$ T: E! {
      dir2.xyz [2]=dir[2];) s' ]3 p. ^( q4 v
      dir1.direction=dir2;
5 ]8 ?6 o# C3 K& H  [3 u# ?& A, |) \, n$ O6 f: v, x9 ?, r
      projection_method.defined_by=dir1;( }! E: Z" c( z: u
( @4 Y' |4 c( T9 H0 Q# v
      double point_coords[3] ;0 m/ ?( R: m; F* m, V1 r

; Z6 F6 r$ ^2 v: @/ F      point_coords[0]=center[0];
' X8 z  Z2 ~8 G: Y3 z      point_coords[1]=center[1];
3 O8 B6 h; E1 N      point_coords[2]=center[2];' l( O$ S8 C& l: {( R

! ]: ^) ]8 V; }9 w1 X' }      int gap_point_count ;
, a; D9 o" H% p8 H      double *gap_points;
7 E4 @4 l& z  B. b6 A" A      tag_t feature_obj_eid;
  w0 e! c) \+ i7 e+ Q# L# Q      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,
% X, `/ o& M' _$ ?5 |0 ^                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);$ C5 t, p% Z+ ^: ^% i  ~
0 R3 t( _% H0 R/ K! y
}! K) j, \6 q' G% `. i& E' g3 o
8,offset偏移8 N4 @# w" }- M6 l& G& j1 G- w
7 o1 L/ Y% h% c1 d) `) @% ]8 E
char   distance_str[] = {"10.0"};//偏移的距离
+ s/ g, g" o1 _
% b" D% \* D5 Y1 Z) _int  num_curves;
! ?$ o8 W# ]- W7 otag_t *offset_curves;
. p8 G7 O2 M4 X: vUF_CURVE_offset_distance_data_t  offset_distance;9 V; J! A' \/ \4 M2 [: n8 \
offset_distance.distance= distance_str;. {  A* d: }( r! A" g) {
offset_distance.roUGh_type=1;# o+ e+ `) w6 I+ s8 |8 N9 a, s
UF_STRING_t   input_string;) |4 w9 Q3 W0 p2 B
input_string.id=curve_id;//加入想要偏移的线
: R- W# g2 v! R3 Einput_string.num=1; //偏移矢量方向数量
- P5 n5 S  D* {0 T$ xinput_string.string=&string_count;//偏移线的数量
1 ^- ~; _! y* Z8 ?5 V5 Sintstring_dir=UF_MODL_CURVE_START_FROM_END;) Q. g4 g  ~8 _+ Y$ I8 b& f
input_string.dir=&string_dir;
+ ?: G$ [# ]/ }* V% ?9 |8 i/ D( |" _7 O, A. L
UF_CURVE_offset_data_toffset_data;
' O7 {4 D3 B1 @1 c" u3 F& H* q2 c5 l5 Q! A$ E
offset_data.offset_def.distance_type1= &offset_distance;: j7 d% I0 Z8 b! }3 E) E2 K
offset_data.input_curves= &input_string;8 g! z- Y3 K3 }3 L5 N: K
offset_data.approximation_tolerance= 0.01;  e2 ]7 u4 V2 }9 ?! L. x( u6 X
offset_data.string_tolerance=0.001;
" ?) k, H0 I, @2 C$ O- o  ioffset_data.offset_def.distance_type1= &offset_distance;
  A' _: m- s+ E6 }  [' ?offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;! S$ M& t  S0 g
UF_CALL(UF_CURVE_create_offset_curve(&offset_data,
5 R2 A& z+ i. s1 ]+ v0 s&num_curves,&offset_curves));
9 S/ A2 K2 q* i; W( U# z# Z6 {9,创建平面
7 p" `3 V" }/ p; c& k. x" YUF_STRING_tgenerator;/ c  P' R9 ]' F$ z% C
UF_STRING_p_tge = &generator;  Z7 m' L6 p% H, z1 M

, E0 N% A; r4 |1 iUF_MODL_init_string_list(ge);8 ^  T) ]7 F# U
UF_MODL_create_string_list(1,12,ge);
; A7 l$ g: U! p9 ~9 c' A
1 f/ Z* S/ |/ A- Z$ F1 Mge->string[0]= 1;" `. x; Z/ o2 s! @, N
ge->dir[0]= 1;//指定线从开始到结束6 q( A0 E9 G# g. f
ge->id[0]= arc_id;//指定边界的id7 d- |% }  _& V) S' `- }6 |! _
doubletol[3];8 X) \: W* y2 w) P: l- L& ?6 L
tol[0] =.001;//直线公差5 V; L8 y% l; r
tol[1] = .5* (PI/180);//圆弧公差
; u9 F# a# Z: V$ U9 g7 z! ~! Ktol[2] =.02;//不起作用
1 J' Y, ^# g# A: Z$ xUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
2 b1 ^+ \# e6 J* L' {3 h10,选择
9 a+ j& v, g9 t5 ?1),点选择4 U2 Z# v4 G9 y# a: I2 c) |
tag_t point_tag;. S5 F( |( B9 n6 g7 K# p3 T1 @) P) t
double point[3];
# W1 M9 ~. V% ^& P       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
# C8 {7 r# H$ B3 F       intpoint_res;
, H* y$ U# s1 d/ U$ b! }! }, Q: \2 A, w2 o
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,4 Z, M: y& K7 w7 {: r1 j0 i2 Q
point,&point_res));
+ `' `- x$ B* E1 D0 K: K. Yif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
0 a! r: _- a! @+ v" Z. M; N6 s" T{3 s5 ]7 i$ Y6 F) H8 g$ c  {3 K
}9 q$ i, E- n7 U" V# z
2),向量选择/ q" N* s7 i8 Q3 N5 ^. a8 i9 y8 [; y; D
     int  mode = UF_UI_INFERRED ;( w/ {) @* j4 ^4 Z3 p0 \
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;& }. J, U2 @7 v+ d) o! z
double vec[3];
  f9 D: n' Z4 B/ S! tdouble vec_pnt[3];
& A' j( ^# A% q' Y- Jint res_vec = 0;
- F, l) t- w( Z# m" p; |1 ?0 L     UF_initialize();  
9 G3 T0 A; L; K3 S     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
) Z. p* Y" K# O           vec,vec_pnt,&res_vec);, _9 S# e5 Y- b+ o
     if( ifail != 0 || res_vec!= UF_UI_OK )   
6 c2 |2 L, q$ x3 o! J7 }     {     
1 c5 p$ P8 `$ k9 ^& Q! J6 k           UF_UI_ONT_refresh();5 ]% r2 _- c6 M: }0 o" i
           printf("No vector selected \n" );( E9 O/ l" V5 \$ j0 r
     }
0 E* g0 T6 b# {2 E     else
1 ]! Y9 }$ U( {1 q& _     {
5 G% f" ^& H+ h           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
% m2 B& H8 h: S6 \4 T- V7 d                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );# a, a: k7 g& a9 S
}
6 K# ?$ _, a. G# M3),平面选择
; p9 L% J  p1 F5 e3 xtag_t plane_eid=NULL_TAG;
7 j( Y. X( i$ }- ?5 z/ f. }double orientation[9] ={0,0,0,0,0,0,0,0,0};' |5 [2 ], N3 F: T3 n6 E
   double origin[3] = {0,0,0};6 B% r1 d! L8 U6 k4 p
   double pts[6] = {0,0,0,0,0,0};
( F$ b1 e7 s; ^( Q1 A   int i, error_code = 0;
) r: M  r3 G8 z% m/ _   int mode, display, response;
7 U" ]& {: e  k   mode = 1;                    " n# u( D) ?5 G) i
display = 0;      6 s& O' x4 i4 d9 h
UF_initialize();6 m3 R* T+ C0 z5 D+ A
   error_code = UF_UI_specify_plane() e( N/ J) S, Y' _* ?- q9 o* O' D
         "Select Plane", &mode, display,
* O4 K7 h2 Z) }& u7 P/ {         &response, orientation, origin,&plane_eid);6 O$ U& m; r. N+ w& }
5 h2 ]! X& `6 X3 V+ @* M
   if ( !error_code && response != 1&& response != 2)
  B3 X4 F2 n" V   {
, a" T7 ^' I) f8 j5 c% t7 A4 f# C0 E( C                     for (i=0; i<3; i++)9 S8 N' m! \' c9 n& B
               pts = origin + orientation;# ?3 O  x% ~; y& d4 P" T  x6 U4 {
                     for (i=3; i<6; i++)" V! t! `. G: i9 o" ?/ i& j' B
               pts = origin[i-3] + orientation;' r4 ^1 G3 I$ [. k% c% ^4 C2 c0 _
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
- D. a/ y  a, _( l9 E; g7 U; J   }7 S/ }: K$ n+ S  x4 {
11,临时点,线4 f+ C2 Q* I; o; `+ q" Q
void display_temporary_point_line (double point1[3], double point2[3])
: t0 C3 N' x3 O. Z3 X{
7 y' b# S0 z+ h  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
6 h* o1 j) w( F! H! \  UF_OBJ_disp_props_TColor;& J: m# S. X5 p) @4 _4 V* z
  color.layer= 201;
( `6 u, ?' z; j5 v  color.color= 186;, m4 E$ p: u, p; P: u/ m
  color.blank_status= UF_OBJ_NOT_BLANKED;5 M8 l  @+ h& g4 m
  color.line_width= UF_OBJ_WIDTH_NORMAL;
5 \  k1 A# z  Q; J7 o7 m) G  color.font=0;2 X' s# T7 P" Y' z: x
  color.highlight_status= FALSE;. a* h0 O) Y6 D4 J7 n7 }( n( Y- f
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;0 D6 t$ P* x- S, p

( ~9 Z  G* p+ C- \$ ?. ]; Q0 RUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
& J8 u- R5 J  SUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);
1 h2 X/ E; R6 F9 I5 ^5 LUF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
2 j* i; g0 p( Q4 |}; @: Z2 d. y$ u, [6 s& ^' p& z
12,WCS与绝对坐标转换
/ J3 v, a+ Y4 ]( T7 ~4 q                        voidcycs_wcs(double point[])
$ s. n; U* T& O3 w{
$ c5 b9 x6 B) w      tag_t  wcs_id,matrix_id;
; m/ c' i! X$ s4 I      double matrix[ 9 ];- l9 ^% m  p( o( d( y' Y$ y8 V
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量  @3 K0 u: r/ @- _' Z0 F- U$ D- U
      double wcs_origin [3],vec[3][3],point_origin[3];+ y* i% M0 Y, Q# K& c7 `/ Z& E7 b
      //1,得到工作坐标系$ B8 D& y; b' j
      UF_CSYS_ask_wcs(&wcs_id);* x0 r( ^  F; Z2 ~# F  G/ a6 \
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    * ?) x. r0 B# K" h: j
      UF_CSYS_ask_matrix_values(matrix_id,matrix);' L" e  J. A) w/ U9 L& m* u: {
. ~: b5 F; V4 l
      //2,得到工作坐标系轴向量
$ `: X8 c, \0 c+ U. Z# U      UF_MTX3_x_vec (matrix,vec[0]);
& `, U% \5 b3 V! T5 H" W5 d3 `      UF_MTX3_y_vec (matrix,vec[1]);
" q' u2 M- r6 R( @2 l0 E      UF_MTX3_z_vec (matrix,vec[2]);- J, P3 |  _0 l2 R  R
4 _- Y. o2 N  A/ ]" R
      for(int i=0;i<3;i++). F& `; n; i6 H# M% k, u# b! s! O
      {     
% o; _3 n; K2 u6 V4 i            double tol;
& [) N* ]2 {) i//3,得到点到工作坐标系原点矢量
5 J- k) K8 g* F' ?" e' \! a            UF_VEC3_unitize(vec,0.000001,&tol,vec);& s" \0 u( r* x8 K' e
//4,得到点到工作坐标系原点矢量
( ~, `) @, c' t4 o            point_origin=point-wcs_origin;4 S5 e9 C" d' p' R
      }
; V3 t0 ~9 a" N! p/ S      for(int j=0;j<3;j++)
" C+ [4 W# V9 o  r2 O8 @) J! A      {
/ X8 ~: J9 W, j0 I            UF_VEC3_dot(point_origin,vec[j],&point[j]);2 g) G" D6 S4 }( @" Z
      }- b% Q: y; p, }4 k. R
}
7 }. a1 x5 X3 B+ }% i13,三点求圆心
: T- H5 X1 {! g#include<iostream.h> * U0 @/ K( s: [1 q# K; r/ ?
#include<math.h>
) ]; N' v! P2 Y2 Y- l9 R% }2 N$ y8 `! b$ R
int main()
) b& K; Z& x0 L, [1 @1 o{/ L# N9 i& ^9 T
      int x1,y1,x3,y3;7 V1 X5 A2 n4 e6 o: s
      double a,b,c,d,e,f;
! j6 E: I; q) a5 f' @" n      doubler,k1,k2,x,y,x2,y2;7 I; v# D3 o* E3 h+ d
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
1 I5 [" B& m+ b      cin>>x1>>y1>>x2>>y2>>x3>>y3;. P# T3 \: @& ?  v' B6 c
      if((y1==y2)&&(y2==y3)), m9 l: Y0 U) o  d# ?
      {
7 e4 ?) ^: ]) E' u            cout<<"三点不构成圆!"<<endl;$ H$ j* w! F8 K3 O0 }% [' I, _
            return 0;
* {5 w. K1 J% [' V4 I$ w# `      }8 P( L1 ], L2 \& U0 S/ h7 K
      if((y1!=y2)&&(y2!=y3))6 X$ K1 T& d- I% W% d( F; m
      {2 w8 r) I$ Y* E/ b9 l. D" B# z& }
            k1=(x2-x1)/(y2-y1);9 H% E( C) w( y. Z4 \& O
            k2=(x3-x2)/(y3-y2);
. R9 S) Z) U' S" i3 Y5 F2 p      }) y" I2 x3 O! n# @4 K/ L
      if(k1==k2)7 ^! B8 A) E/ M* `& e/ q4 e
      {: B$ Z7 }: _# J
            cout<<"三点不构成圆!"<<endl;
7 F" z3 J& }1 R2 H: v2 C# m/ D            return 0;: d0 r0 c( G3 p( H
      }. L9 ]3 w& I+ f2 M4 ]; m
      a=2*(x2-x1);
/ N& _/ [2 w+ k" F' Y( Z) r      b=2*(y2-y1);
- k& `. m  W' E2 a4 L      c=x2*x2+y2*y2-x1*x1-y1*y1;' [- n+ c5 A- u, e" ^
      d=2*(x3-x2);
! Q8 w, z2 j& u, y      e=2*(y3-y2);) W: ~) ?4 N9 c# Y. ]  Q
      f=x3*x3+y3*y3-x2*x2-y2*y2;
/ I" Z4 M1 ?0 `      x=(b*f-e*c)/(b*d-e*a);* Z: B% E, E, q" D# e& o6 T  f
      y=(d*c-a*f)/(b*d-e*a);
  h! i3 p/ Z+ R1 T      cout<<"圆心为("<<x<<","<<y<<")"<<endl;0 V9 }0 a" l$ [
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));9 I/ ]# ?: b" b+ S3 T
      cout<<"半径为"<<r<<endl;
  c9 r: A; L1 x! ~/ q6 v6 v      return 0;( q2 b2 H3 {, U8 h/ D4 I
}5 @' O$ z1 d2 v( @' i% B& S
14,查找圆心& f3 D$ i( _7 J
            UF_EVAL_p_tevaluator ;
! M$ B( Q' A6 ^" M            UF_EVAL_arc_t arc;7 |+ m; r* t8 B0 X
            UF_EVAL_initialize(obj_tag,&evaluator);$ D( J/ A% ^/ T( _- Q
            UF_EVAL_ask_arc(evaluator,&arc);, P$ U2 \7 Q5 m6 d! A6 s
            UF_VEC3_copy(arc.center,point);           
# C  ^+ W0 @& ], J9 j/ L15, message_box7 d* ?% e) v9 p+ H; a" N/ f$ _
void message_box(int *res_mes): _! C: m8 k2 a
{
: N4 F! h  M9 d) S4 F6 V* e, U3 x      UF_UI_message_buttons_sbuttons;& g: j9 x. I# N7 [; u: B3 W6 n! z% n
      buttons.button1=TRUE;
$ E8 K1 H1 @, Z! r      buttons.button2=FALSE;
7 r& J6 {2 G$ {8 d7 N1 S9 `      buttons.button3=TRUE;# q4 U" R# B6 R, ^0 Q

6 j: u' Y) w- u0 G      buttons.label1="OK";  Y/ D2 I+ [7 u8 X  _/ l
      buttons.label3="CANEL";, z- @2 Z; i- Z

- L% m' d; \0 e: L3 _% b( i+ I" ~      buttons.response1=UF_UI_OK;/ ]' i9 `) E7 H4 g( x5 q- {
      buttons.response3=UF_UI_CANCEL;8 V3 ^$ P+ }, F1 `

9 S& m6 x& N. g( I9 u- U' v! v4 W8 `      char *string_msg;
. z/ e% ?6 R) ~: J9 \      char*material_msg="ALL selcted objects will be removed";6 h5 J* L, r0 j' R* d6 Z& v: N0 ~
      string_msg =material_msg;
( B& L- `6 F5 G! w
/ L( v2 A5 }. S1 S      UF_CALL(UF_UI_message_dialog("",* _. T9 ~, s3 r! W7 [- B
            UF_UI_MESSAGE_WARNING,
5 b- q9 t+ E# d7 y8 E5 B( y! C8 {          &material_msg,7 h1 p+ u0 b/ T8 X1 Y* q; g
            1,! K' g6 h3 Y) v+ G
            TRUE,* b* {+ c! _: M% \; F
            &buttons,
* q+ r( b+ W4 V5 p2 }2 ?/ d* A             res_mes ));' H! X. s( r5 J( Y9 I  J
}
: D4 p6 H; M7 Z3 J/ v! Q4 T16,选择过滤( X% B- h) _/ M
static int init_add_face( UF_UI_selection_p_t select, void *client_data)0 H7 |/ O& s* B6 Y; l9 V
{& b* Q2 }0 n/ W; h" s
      int nums = 1;
: Q& j  r! t: d      UF_UI_mask_t masks[] ={4 X9 t% z' w' b8 O# ?& [/ @
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};0 h3 w% U$ k  q5 z
+ t; ~8 P" Y' X" E4 o
            if(
$ c) _9 H4 |6 P/ J                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)6 E6 r2 X  I8 u4 A4 a1 u% p3 ?
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)1 d' @1 [3 z$ y) F' }3 ]' |0 E7 ^0 P
                  )# H9 i7 X0 t3 F/ Y
            {
' r+ t; {: G8 E7 y% p2 ^# ^                  return(UF_UI_SEL_SUCCESS);$ {2 n9 M4 l0 t( L/ I
            }9 z; I4 O) \: {
            else
8 \5 B1 M. i6 B& v- Z            {     7 I" _6 e) X$ V+ ]3 a1 j
                  return(UF_UI_SEL_FAILURE);+ |+ I# N/ w5 E; i- p; T; q- `
            }0 f8 Z: e3 }" e$ K2 f
}7 ]! \2 G" M' s. Z, @; G
int find_tag(* V) y: }5 k! d- r2 X
                    void * client_data,//用以传输过滤资料
* n1 _$ ~0 n. S( B$ q2 r                   tag_t object//现在鼠标所选物体ID& ]( d. G5 C9 D* N; B
                   )+ `/ X" g% t7 |* k) }
{
5 `5 m% k' }6 A3 h4 u- L      user_data *obj;) O  K% b- f7 P) i, R; R
      obj=(user_data*)client_data;
& d1 Z' q, l& M7 d      int find_face=true;//接受
1 k0 Z* x; S# w5 k9 \      char *string1;
* D6 x5 l% B! l9 T      string1=newchar[133];! l7 b7 R  \  l, n
      string1=UF_TAG_ask_handle_of_tag(object);& G+ X- E4 i% q
      for(int i=0;i<过滤的数目;i++)6 S5 Q" }$ O5 f& J! W) M, K- u/ j* n8 q
      {
) U) o+ |9 d- h' }; i2 F1 {2 P8 `- y! J+ `( i' B/ H, {
            char *string2;
; Q% y8 P+ z: m( m            string2=newchar[133];9 `4 o- L7 ?5 Q  c1 \
            string2=UF_TAG_ask_handle_of_tag(物体ID);, h1 T/ K& j- F* M0 w9 O+ B" u/ u
            if(strcmp(string1,string2)==0)# t- f" _' x+ ~+ h# B
            {7 E' T4 G' K, }) y
                  find_face=FALSE;//不接受
( J. R% E6 M8 j' Z( Z3 z4 ]/ r5 x8 [. ?, ^
            }& V# Y  y1 Q4 d$ A; Z
            delete []string2;* D. T3 S+ s# c3 R% _4 n. Y. |
      }: c( s) K# V/ T; ]
      delete []string1;& {6 u( Q  Y' v( ]& I2 W
      return find_face;! \+ z/ a! f" r; K! \# l+ X" ]# P
}: ?2 r2 |4 M) I4 y& @
- Q: ?* t  _2 t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了