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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

% n, J, y  d1 N8 c- g7,裁剪片体# x' f$ I5 u6 y2 f
tag_t  *trim_objects;
; z9 {* Z7 B& \  y& p  O5 mtrim_objects =new tag_t[count];6 l$ l: z. I% X8 r2 W8 C
trim_objects =bound_id;
* m! E; ?2 U0 m: b% e" ]& uvoidtrim_sheet()
1 H# V4 q0 Q4 J% N; n  z{
/ P. x: d$ t$ |- }' X# }  ~# d
, x+ a/ _% F  s( _7 L- s, e      UF_MODL_vector_t projection_method ;/ {! M" e1 q! v4 d
      projection_method.reverse_vector=0;* D9 G& {& n, I: D1 z
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;3 g; ?* a* ]1 r# t2 p6 R+ \* T
      UF_MODL_vector_defined_by_union_tdir1;) d* B2 \0 z. @0 H( e
      UF_MODL_vector_direction_t dir2;7 `- B7 R6 l2 Y, E% Y% M. U
      dir2.xyz [0]=dir[0];
/ P: Q. {$ P; F& e      dir2.xyz [1]=dir[1];5 }8 \" n0 w0 @
      dir2.xyz [2]=dir[2];, B) F; F0 a' G( c
      dir1.direction=dir2;
2 W( z, u! Q4 P% S! |
8 n( X* R6 T5 Y      projection_method.defined_by=dir1;
! v% ^9 N% f2 m! g( H/ A$ r# @0 }. p
      double point_coords[3] ;
. P; B1 u6 v8 o5 ^  V' g, z: K* b' H2 p9 E. T) E
      point_coords[0]=center[0];
1 `$ E4 X7 i3 s. D2 `! S% _  G% A      point_coords[1]=center[1];
! v& Z% M6 k/ v  M, A      point_coords[2]=center[2];0 P0 U) a5 @9 K: F

9 n( T! M( n( |      int gap_point_count ;
. I/ M/ l: t! A, _/ m      double *gap_points;
. [" @: }' \# _7 k5 j; c      tag_t feature_obj_eid;/ k0 `7 W/ N, M
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,2 W, ~# `1 K! E: f& ]7 M
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);9 q0 I6 ?8 r/ j

, V8 H) o+ H* e9 |7 k}5 W: W3 p6 G/ q0 B2 u0 h5 d
8,offset偏移1 j( a+ L3 U6 M) |' C
& w6 Y. X! l: ?
char   distance_str[] = {"10.0"};//偏移的距离
  @, R0 b* \% h4 Z) f2 V- N
9 G# L, }7 [/ A/ i' Vint  num_curves;
+ k; @& E! B6 a5 x, Y  Btag_t *offset_curves;
) k; ^( y6 G: J' Q: sUF_CURVE_offset_distance_data_t  offset_distance;
+ j+ x. _, {# s4 eoffset_distance.distance= distance_str;8 q: E3 f, ?$ {# @% H* B% s
offset_distance.roUGh_type=1;
& D5 _+ e8 `8 wUF_STRING_t   input_string;  h+ [, ?$ @9 U) @+ h* f$ ]) d
input_string.id=curve_id;//加入想要偏移的线3 ~9 m: K, d& w2 _
input_string.num=1; //偏移矢量方向数量! ]& x7 W4 [9 M- H! F
input_string.string=&string_count;//偏移线的数量3 \- Z1 r# l7 H
intstring_dir=UF_MODL_CURVE_START_FROM_END;
3 W/ }' q$ I" ?input_string.dir=&string_dir;% u9 }. z3 i% v6 x. x
2 H+ M9 x) x8 Y8 Q1 |
UF_CURVE_offset_data_toffset_data;. @2 z; D9 ]5 M4 d( W3 v+ Q. m. L4 w
. u1 y7 {' M2 s/ |- h
offset_data.offset_def.distance_type1= &offset_distance;7 {! E& S# Y: i
offset_data.input_curves= &input_string;! S( T  j/ b, L5 @
offset_data.approximation_tolerance= 0.01;
5 O4 _9 Y9 G, z$ _7 voffset_data.string_tolerance=0.001;
: H) p- [9 k$ P6 Z9 Boffset_data.offset_def.distance_type1= &offset_distance;; `4 u! x4 v4 T/ B
offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
7 M6 E4 w7 ^) C& y1 g2 SUF_CALL(UF_CURVE_create_offset_curve(&offset_data,( e1 u8 y3 m2 w! K
&num_curves,&offset_curves));
! C) w) L" D/ D5 D: g$ A9,创建平面
$ X7 n% I; Z! FUF_STRING_tgenerator;
+ ~6 [, ?* u% U/ G2 u( E6 L) jUF_STRING_p_tge = &generator;
7 K1 f- w9 S# o. ], P# x+ p2 J5 I9 \2 u2 G: Q; j
UF_MODL_init_string_list(ge);
" |  J& U  _& j$ q) U$ `& _/ }6 IUF_MODL_create_string_list(1,12,ge);% {+ r: d/ Z5 {5 b

. z# q7 V. M. p6 i. xge->string[0]= 1;
+ V: m# h2 u5 u  j  G' v& ige->dir[0]= 1;//指定线从开始到结束7 ^  g' u4 H5 U$ z/ G: l- j
ge->id[0]= arc_id;//指定边界的id0 l" f9 e4 z" h8 B8 X9 T
doubletol[3];8 z$ o" i9 ?1 l6 z, k% G6 |
tol[0] =.001;//直线公差
( ~, L' F- f7 _, W2 V" f+ |tol[1] = .5* (PI/180);//圆弧公差; ^4 g4 b6 I1 z0 Z
tol[2] =.02;//不起作用
! ?/ K" }( j* L8 g1 z2 ]6 EUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));, d* W- A; H# d3 }) e
10,选择. w, O1 ^  A+ M8 X8 ]/ M
1),点选择
" r: Z, N* N; r! Stag_t point_tag;
# Z+ u; H; S7 Odouble point[3];
# Y4 E" m- l5 O/ k       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  ! g& I$ J1 D2 K% G
       intpoint_res;
$ o& X$ n8 v: K0 Y5 W3 h$ e- h; }5 S, ^. Z2 _' M
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
1 ~7 m% W1 J; f1 A; Tpoint,&point_res));
. s1 I7 h. S, X; Q% c4 K  @+ F2 Eif(point_res=UF_UI_OK&&NULL_TAG!=point_tag)
/ S$ J6 A8 ]" t7 w6 u% L9 I{
9 I, o, i4 |1 Y7 x$ R }4 O. K1 D4 P' J6 T3 [1 d: f
2),向量选择
, E9 |: y% \# K     int  mode = UF_UI_INFERRED ;6 }2 {* [7 r9 t; L6 R5 x# s
     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
( x7 D( B, F+ U; c. Gdouble vec[3];
3 @7 q$ {7 {/ I! A7 k  F) l3 vdouble vec_pnt[3];8 o- G% M8 W9 V2 e
int res_vec = 0;2 m3 l7 n8 u; k* d4 U
     UF_initialize();  
2 v  L/ \' E7 y: {4 o     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
5 W( V9 t6 f% B. }. Y# D" _           vec,vec_pnt,&res_vec);
+ W& i( F! L$ e' }! W     if( ifail != 0 || res_vec!= UF_UI_OK )   
4 y& N: l( t* I: L     {     ; @5 o: F; H& B/ k( h
           UF_UI_ONT_refresh();
; m5 V/ z& W3 E7 x5 @           printf("No vector selected \n" );
) t% o2 }9 ?, |6 O: v; |$ C     }
2 Q/ V6 Y& L  s8 T     else, V: l. W. z# h. i% z3 D6 l
     {; ?3 t, t# K0 H. `# A
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
# X+ F% x/ ?* i$ h. w5 a& a2 ?                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
: x+ o# \; Q) _; Q5 [}& o- p2 @) a1 r8 c3 o; k, B9 ^
3),平面选择
2 v6 U$ r/ r1 c2 d) Etag_t plane_eid=NULL_TAG;
1 d! J0 ~, h3 C3 o+ |- bdouble orientation[9] ={0,0,0,0,0,0,0,0,0};
7 Y/ X2 e: R* W3 g7 ]   double origin[3] = {0,0,0};, K  d& L6 i, V: d; [+ G, q! ^; r
   double pts[6] = {0,0,0,0,0,0};
+ _% q/ `- v% [+ n0 m% w) v, u   int i, error_code = 0;+ k. c& I' C  v  [8 k- b' z' M
   int mode, display, response;
2 v( p, E: J) N   mode = 1;                    
% v1 k, j* X3 ~display = 0;      7 d0 `7 E$ Q4 c8 \% s
UF_initialize();
" W! k3 [4 h, s   error_code = UF_UI_specify_plane(
# Q. P" l) x% p: _6 f& \3 E         "Select Plane", &mode, display,
1 {, G) R5 j( f         &response, orientation, origin,&plane_eid);! P7 A  A+ d# S
7 E* n: I3 O3 C4 T- j  N
   if ( !error_code && response != 1&& response != 2)
/ U, |9 ?! u8 i% f3 f( t% r6 ?5 O   {
( J+ L  s' Y: J                     for (i=0; i<3; i++)
; t3 ^/ T5 @+ B  z' `               pts = origin + orientation;
- @+ ], `& ^8 L                     for (i=3; i<6; i++)6 e1 |5 Z+ ]% B: Z0 b, r
               pts = origin[i-3] + orientation;
4 j/ [& D) j2 S$ G, m0 i# L9 x+ r         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);
5 v1 C5 Y9 t. F9 c0 v" `7 j/ U3 W   }* A+ [' {9 s' j# l. m
11,临时点,线5 D; ~4 B; b  n6 q; X+ U
void display_temporary_point_line (double point1[3], double point2[3])
8 L+ N) [8 K5 S{
& q2 Y4 ^# d, Y9 @2 z  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
( [+ r. _4 |) ^' R; I5 n  UF_OBJ_disp_props_TColor;  r7 `, v6 l; x$ x/ u
  color.layer= 201;! X+ T$ k+ Q4 Y3 x
  color.color= 186;
  m! p: o" a9 h  color.blank_status= UF_OBJ_NOT_BLANKED;
( ~/ k; c1 ~; x  color.line_width= UF_OBJ_WIDTH_NORMAL;& d8 ?- E7 f+ K- L
  color.font=0;
; Q& g. L  F$ |! q: ]  color.highlight_status= FALSE;
6 R+ H8 ]5 K  R" H0 @2 q$ X- C1 m! K  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;( H) w' Y7 L& g" A# f6 r$ \
0 g6 |; @  q' b7 P
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
1 }$ F- g; q! KUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);1 e$ ]3 k  }1 o2 b2 _) r
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);7 s) ], F8 P9 K" w, G' w2 G
}
, l. y4 ?! v, @# K% k12,WCS与绝对坐标转换+ U7 m- M0 b/ J8 `; M3 t" I
                        voidcycs_wcs(double point[])
1 N) D9 [1 K+ h# J5 C: I. N+ T9 E% ]{
$ ]2 S* z- \# b7 a% g      tag_t  wcs_id,matrix_id;
. j, S3 L3 i  l0 v  ~1 G      double matrix[ 9 ];
! l+ P$ w4 E+ j" d      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量$ N, y; A  I& k7 h
      double wcs_origin [3],vec[3][3],point_origin[3];
* s( ~9 S# r8 \! N6 r      //1,得到工作坐标系! s6 g8 b. K) S) q2 o$ j
      UF_CSYS_ask_wcs(&wcs_id);# ^. e' B- E5 H9 g
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
4 Z$ o1 J( G$ ^3 Y6 p! P      UF_CSYS_ask_matrix_values(matrix_id,matrix);2 E+ \0 F' w! F$ {

' n  I/ M2 P, ~. w; u& c6 ^      //2,得到工作坐标系轴向量/ c: k' @  T$ q, U) \8 z
      UF_MTX3_x_vec (matrix,vec[0]);
& b) Y, y; U3 P% d/ G      UF_MTX3_y_vec (matrix,vec[1]);( ^! S  w. h* S  Z/ L
      UF_MTX3_z_vec (matrix,vec[2]);+ B+ s. ?- U1 @5 H- P# M
4 Q9 j$ {  g0 V( O& ?
      for(int i=0;i<3;i++)
* m& k+ Q3 f) x* ~) R9 s      {     1 J# Y" w% g3 k
            double tol;
+ \& [, Y2 H1 v6 e* `//3,得到点到工作坐标系原点矢量1 b7 q. U. O+ }6 U5 f# U
            UF_VEC3_unitize(vec,0.000001,&tol,vec);( u* }  s( w3 I: _* i
//4,得到点到工作坐标系原点矢量
- A$ K" \9 h) |            point_origin=point-wcs_origin;9 Z  s. V# ^9 |
      }+ G* O3 I+ j7 L4 c: L# L
      for(int j=0;j<3;j++)
: e& z4 V& j: e3 S5 d1 |5 u  m- g      {% h6 B+ q% I' ?7 F& V# W
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
- d2 ?( X5 ^! W5 ~- W      }
  B4 @2 z4 U* P! p% J& L}
( `, J* ~  Z$ K- K/ g6 l13,三点求圆心: B1 n2 a' f$ ~! y$ Q
#include<iostream.h> 4 F% [3 e: v2 |  i3 ?* d8 s
#include<math.h>
$ _' }0 Y2 s4 G, j" G' T3 X- e- t3 t& a  L" E) Q
int main()2 W+ G$ J: h& J2 r1 E% ~& P# j
{
9 h7 F7 E* B8 c9 s) L2 j      int x1,y1,x3,y3;3 @3 E6 \. s* Q& D
      double a,b,c,d,e,f;+ ^8 y. _' F) N" V# [
      doubler,k1,k2,x,y,x2,y2;
6 a* N- ?" E1 p- [0 W5 A      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
; l% p" Y0 P. [      cin>>x1>>y1>>x2>>y2>>x3>>y3;% J6 C8 x$ x- c
      if((y1==y2)&&(y2==y3))+ A0 w# N2 W  @: v
      {! E% k9 ]& K2 J6 w$ [& L9 Z
            cout<<"三点不构成圆!"<<endl;! x5 j$ W0 M) C+ i! Q5 e3 {
            return 0;  t1 e" Q& T3 m; v
      }) V4 X1 r, z$ \* O; t- Z( e) q  S+ Y" U4 m
      if((y1!=y2)&&(y2!=y3))% o* Z. j6 z. I6 ~6 Q
      {
( Q9 H0 U$ X1 F# U4 p3 _            k1=(x2-x1)/(y2-y1);
1 ]+ b! e$ a  ]            k2=(x3-x2)/(y3-y2);
8 Z* {/ k. a6 q" c6 N2 X) A2 V      }# s+ G" m0 j4 Z& f* `! U) a
      if(k1==k2)
7 D; d3 j: B0 ^7 M( {7 V" D- D  ^$ d+ i% N      {, ^$ A' w& r) ^; v
            cout<<"三点不构成圆!"<<endl;
! J) X, B' Z8 X0 e            return 0;
+ a: D7 Y3 L1 V+ W% H- G      }+ Z4 L; M$ P$ o7 F+ C- E! V, f8 [
      a=2*(x2-x1);
: I8 K* d$ s2 h6 k+ X      b=2*(y2-y1);
! H0 Z4 L% P: i/ U      c=x2*x2+y2*y2-x1*x1-y1*y1;
- r  J* h' ~% r. \2 g- U      d=2*(x3-x2);9 M) A4 ^' N' C, H1 B6 Y
      e=2*(y3-y2);: c) v9 F8 I2 O7 E1 T% O2 e
      f=x3*x3+y3*y3-x2*x2-y2*y2;
2 [4 F3 y- g! {& l! g! X; ~* }& m      x=(b*f-e*c)/(b*d-e*a);& r6 `/ ^$ P" M3 a
      y=(d*c-a*f)/(b*d-e*a);
" m# P) Z' P5 T' u/ Y( j5 u      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
# R& r: D" @8 @+ ]$ K9 _8 z      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));' P. o2 a6 K9 `' n* H
      cout<<"半径为"<<r<<endl;
) v8 F1 u1 H0 Y* A/ I2 P! L  t      return 0;# ]; o1 G8 {2 ]
}  U. u8 N/ E" M+ Z' c* m, l; q
14,查找圆心) Y, {' W! a% F5 x$ [& k. E
            UF_EVAL_p_tevaluator ;' i! J& k! ?9 O; {5 Q! l
            UF_EVAL_arc_t arc;1 S- e2 b8 Y8 {, H, O
            UF_EVAL_initialize(obj_tag,&evaluator);
) w& d5 v* r: O+ q, p" {; Y# Y1 D            UF_EVAL_ask_arc(evaluator,&arc);2 ]& ^2 Y( C- p0 i& y4 h
            UF_VEC3_copy(arc.center,point);           6 d) |6 }3 L+ S2 D5 g; m& d% n; |4 S
15, message_box% b4 T6 q5 p" [2 M
void message_box(int *res_mes)$ P" w: q* @0 q& J
{+ }, R  g' O9 Y4 X
      UF_UI_message_buttons_sbuttons;9 Y9 b; }: ~2 F8 ]
      buttons.button1=TRUE;$ Q, B4 I3 Q% q% [* c) [: ]# P
      buttons.button2=FALSE;
, k8 r% B: y4 }4 v; y: w& V% b3 F      buttons.button3=TRUE;
9 O: G3 h  L$ I# Y- S: n$ h5 p# g3 e% `; B1 p2 s% b1 d! \& h! k- J
      buttons.label1="OK";
* @7 {0 O! m) b/ ]# {) v( W& o9 F; d      buttons.label3="CANEL";/ k- j; T: \; A; c% l

6 n! r) E! a7 S1 m/ X; z      buttons.response1=UF_UI_OK;
% z  N$ S8 q- Q, a( H      buttons.response3=UF_UI_CANCEL;
0 p! M# q, }9 ^) P
9 L5 B  }: n; o  F! u      char *string_msg;
: [( v2 z* v# }( b7 y' r4 o2 @6 ]      char*material_msg="ALL selcted objects will be removed";( Y+ i0 K! U5 [0 N( K) [% K
      string_msg =material_msg;
& v- e& J5 G5 s- ^2 [) T3 q3 Z. L6 W: I( W
      UF_CALL(UF_UI_message_dialog(""," [9 I/ \& m) g/ J( C# g
            UF_UI_MESSAGE_WARNING,
$ Z$ I6 v. b" p$ Q3 r" E9 K# I          &material_msg,
6 [7 W; U1 E$ B8 K: O& O* I9 N            1,2 {+ u( w" Z; q3 {4 o6 ]) W
            TRUE,
  g6 L  e8 N% o            &buttons,4 h' [( ]7 }6 L, E, L
             res_mes ));
) p9 ]( M2 P6 e+ T. W  C}3 Z) S; `) ?8 v, [
16,选择过滤, W4 m. a7 Q7 D) |% S
static int init_add_face( UF_UI_selection_p_t select, void *client_data)
6 F8 `) w# J4 ?{  }7 R8 s3 \8 c& V7 a1 L
      int nums = 1;
. M: C9 [& g5 a7 P; `      UF_UI_mask_t masks[] ={
5 m( g  V' I1 ]4 _: X8 n            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};" g4 }9 c6 h, S& ^* n7 S8 t; ~
6 E, X  z% k; _4 @( X' {' E4 d" y$ B
            if(
1 n* N( u& x, o/ q* E                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)
% J; m8 V5 b' H8 s7 d                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
) v3 {( e) b0 x7 R' e2 W! O                  )" ^: w5 U9 ]4 t8 \6 b
            {  }' V1 f; j4 U/ |1 w0 }- T
                  return(UF_UI_SEL_SUCCESS);
+ ~+ Q% W+ h. c/ p( _9 T/ A            }
- M$ L2 T4 S4 q            else
1 T! Y" d# l& t6 D) D            {     
2 T) b( x) w. Q                  return(UF_UI_SEL_FAILURE);+ g& \( W. _, d; _4 p1 n3 B
            }! H& `% x$ b! k! Y- o/ m8 i& W! W% v
}8 {9 j- i+ o) _' ]: C: B& ~
int find_tag(
4 I: @4 a! W& v) ~. H                    void * client_data,//用以传输过滤资料8 x* |  t8 a3 h9 O
                   tag_t object//现在鼠标所选物体ID
; W+ M( y: n" j$ w$ D! d! d                   )$ }) s0 P8 U! r$ Z$ f
{; |+ L% }! K+ ]( x
      user_data *obj;+ W. s# o, `5 s  U. a2 ~$ p
      obj=(user_data*)client_data;
( u3 N* ~( ~3 X      int find_face=true;//接受+ D( ]1 b( A7 j3 e7 n! ~
      char *string1;
+ {/ g9 r# N( s1 e/ U/ _  \      string1=newchar[133];
6 Q! d4 ]2 O0 Q0 w      string1=UF_TAG_ask_handle_of_tag(object);
' I5 h, T$ j' f# W, |2 R      for(int i=0;i<过滤的数目;i++)* F3 u  {( U. ]% |4 W8 v, p
      {+ V, W8 x' X9 a" c6 p

) t# G7 x0 r/ i) k; |9 y( Y            char *string2;
' q% J. }4 @6 `            string2=newchar[133];
1 z, ]% p- \% \$ v. Q* r            string2=UF_TAG_ask_handle_of_tag(物体ID);
& y8 M6 f7 u, a5 s- H            if(strcmp(string1,string2)==0)% j: O. Y0 V7 z5 Q0 ?4 L
            {' ^* ~0 |6 |- J
                  find_face=FALSE;//不接受
  J* P9 A" s1 z8 c: d4 R! s9 t* m$ Z  F- t! G' ^
            }' Z, C' O& g" N5 {5 F
            delete []string2;
' x" U1 O3 v/ A( u      }2 ^- D  N: U4 A$ p) K4 M
      delete []string1;
$ M$ H/ k" R$ e( `, u! v      return find_face;  h( K( X  ]" F& S
}
; O, H- ~# _3 k' S* Z' j. z7 a
" O* T  F4 P7 J% I- z' t( d8 O# @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了