PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x

  N% F; S0 @7 P7 \- T% }7,裁剪片体# N4 G) {7 |4 s$ w
tag_t  *trim_objects;
4 ~  R! U. G- \2 [1 N$ otrim_objects =new tag_t[count];
1 Y# G1 f0 L( M$ Ytrim_objects =bound_id;
3 c4 [/ F- O- B$ {- J  pvoidtrim_sheet()
) V) m" H1 V8 Y, p, h, X' r5 U+ z{' G8 k5 [. D6 e, L: G. g  \$ N
4 r8 ~9 q" }6 i+ I9 v+ M
      UF_MODL_vector_t projection_method ;8 f' E6 P2 G7 A5 I+ z! T
      projection_method.reverse_vector=0;$ z; B6 A) Z& c8 `+ J$ ^
      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;
5 y+ R( e3 A7 T* @, j( t+ A# a: f      UF_MODL_vector_defined_by_union_tdir1;
6 d, x; D3 ?3 U& L+ ?      UF_MODL_vector_direction_t dir2;1 U7 {  s2 S7 K
      dir2.xyz [0]=dir[0];
5 |6 _' K: F( ]: C$ q# e" l      dir2.xyz [1]=dir[1];# R; o) l: x. q
      dir2.xyz [2]=dir[2];
: c5 i7 j- n, q& v( @8 t      dir1.direction=dir2;
  K' _$ A5 l0 T2 D
, r2 q% w# b0 T' g% \9 H  B+ p' \  M: e      projection_method.defined_by=dir1;. I3 E2 t& b9 A6 K# W, b
0 o  h, B% ?4 h' l: k2 T# w5 Q
      double point_coords[3] ;: c5 L' m6 a: D7 H8 I
0 d* K0 T  Y7 E4 r  l9 }+ v
      point_coords[0]=center[0];7 w0 \+ ]' I- h- c: @3 f- l
      point_coords[1]=center[1];
0 H; |" T4 M4 p6 f' n0 U      point_coords[2]=center[2];
. a5 @5 |4 \' [! M! s8 T1 Z% k, g6 V9 \, z9 t2 Q2 N
      int gap_point_count ;5 U& q- M& s$ G  a5 D! Y5 @; s1 j
      double *gap_points;
3 J% |$ o5 u7 V* N6 z6 X! l& {      tag_t feature_obj_eid;
; t0 p+ p( k% n% X6 A      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,& W  C: D8 H* s) E6 R8 n1 n
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);) a: K: J$ Y/ x& C- M9 F

% j. U, T0 ]5 R1 L( ^2 y}! A6 \8 a8 \4 P2 P. g/ w
8,offset偏移8 k9 A6 P7 C/ y4 ?
6 b) n) K% U5 o5 D- G3 b  T& C; L
char   distance_str[] = {"10.0"};//偏移的距离3 c  y6 o9 i" D" ?- y( O, k# E

0 J! v# c, g0 Fint  num_curves;
0 b  f. y1 D! X/ n' jtag_t *offset_curves;. W# ?5 s( v' S7 d  z  O2 d
UF_CURVE_offset_distance_data_t  offset_distance;
; L1 g( B" [. R: Boffset_distance.distance= distance_str;+ g. k+ L  H! ]! o
offset_distance.roUGh_type=1;# o/ V, t" N! o9 a/ `  Z
UF_STRING_t   input_string;% A' ?+ Y' l/ |* H& D3 v) p
input_string.id=curve_id;//加入想要偏移的线
8 d; z# E* W9 Q/ y) _: uinput_string.num=1; //偏移矢量方向数量3 z- l8 O$ F$ t" n& P# d3 u
input_string.string=&string_count;//偏移线的数量' s" k+ r- q& O3 L
intstring_dir=UF_MODL_CURVE_START_FROM_END;  O' m6 ?, {% {# f$ g2 d( f
input_string.dir=&string_dir;5 U$ a3 C/ C- {2 a0 o, R

1 ?4 u! S- _6 Q' ]- u! Z4 UUF_CURVE_offset_data_toffset_data;4 r, V' ]! m' X& ~! N
6 i1 J+ M0 n* [6 S; W8 O7 N
offset_data.offset_def.distance_type1= &offset_distance;+ g6 c& X" m+ Y% Z) _! r! @
offset_data.input_curves= &input_string;( f! ?/ l' I4 Y; N" Z- N
offset_data.approximation_tolerance= 0.01;
2 w3 e. R% I, L! l1 b* `offset_data.string_tolerance=0.001;
- r# I2 H, L; \* |/ ^6 ?6 U* [! c! [offset_data.offset_def.distance_type1= &offset_distance;
* C1 i9 K$ n1 a$ L+ g3 H  q3 ?offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
) q1 ]) o+ t1 `4 X$ }7 P3 RUF_CALL(UF_CURVE_create_offset_curve(&offset_data," k. s- Z. \. n6 D2 E% R2 D) ~
&num_curves,&offset_curves));
/ j" s2 F! T  V9,创建平面
) Y1 Y7 c/ a* E7 ~7 {2 yUF_STRING_tgenerator;* T4 a& U6 J; j
UF_STRING_p_tge = &generator;
* Z# [8 W- ~) `$ @4 }8 M0 a# ]
UF_MODL_init_string_list(ge);
7 t5 T3 w: T9 \+ }UF_MODL_create_string_list(1,12,ge);3 |7 j# U+ n( d! B9 e& n+ n

  m+ M& `8 d5 a- vge->string[0]= 1;  w8 U. ?# h* ~6 Z
ge->dir[0]= 1;//指定线从开始到结束
& y; K1 X% N, D9 t5 a* Uge->id[0]= arc_id;//指定边界的id
& J, }( f" n0 u0 I% @doubletol[3];9 [/ `7 K3 Q# R, F/ u
tol[0] =.001;//直线公差
+ t4 }) ?) u1 g" T) ~7 U+ \: Z  q  Ktol[1] = .5* (PI/180);//圆弧公差
, U+ k: l+ }- b- btol[2] =.02;//不起作用
6 ?- C& o# |% h: C& KUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
2 N( k2 }$ j% u/ z$ Q10,选择
; U! E; e% G6 H; B1),点选择
) n9 f3 C  i0 D" A5 Jtag_t point_tag;
8 b6 \% g' x! z+ o. i3 R/ B/ idouble point[3];
9 m$ }! x7 F" l+ k( `7 \% C       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
+ @9 k/ Q8 W' S4 U6 m2 D       intpoint_res;0 O7 V9 o- e! R
" U' ]. q& S6 {" L7 o
UF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,9 H, Y7 ^" z. D" Y+ ^+ a
point,&point_res));
0 |% D/ b  d* q9 Y& }2 oif(point_res=UF_UI_OK&&NULL_TAG!=point_tag); Q/ R* y  v; x# \& v: u
{2 k3 \  m- n( w& ~
}# M$ ^5 p! _# K7 A
2),向量选择3 N, O8 t) u8 }8 ]) I
     int  mode = UF_UI_INFERRED ;
( ^, X7 [2 a1 `" o     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
# o& T- b) M' T  f8 Q) hdouble vec[3];, [( v' x' l3 N+ g5 B, F; D9 b
double vec_pnt[3];
1 g% d! q( N* n! O1 ?' J% Y. H% hint res_vec = 0;
5 b5 {# @  |8 n2 b( A: Z: `. ^, W- d     UF_initialize();  - c6 Q3 J' u0 i' h
     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,
( }- [0 }$ u5 ]/ G           vec,vec_pnt,&res_vec);
# ^6 R* N( B/ D* c, ?     if( ifail != 0 || res_vec!= UF_UI_OK )   5 Z2 B- Y6 Y+ U
     {     
( N' o# X" _) T/ r9 x           UF_UI_ONT_refresh();
* D$ }) f8 W+ C& J           printf("No vector selected \n" );; G. V0 c  Z7 j4 \# _. j$ m
     }
0 I0 F# k2 O  N     else
, T4 H$ I" T7 V- A$ E     {
5 c. Y8 G- j1 Z8 D/ k           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",
6 k2 [; ?9 a; \8 e8 b                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );1 V, U8 H( v+ i) ]) d, p2 `! i
}2 t7 [: q$ i# ^; ]& K
3),平面选择9 H: ?6 L$ j" ~  N% v7 i* n, |
tag_t plane_eid=NULL_TAG;
6 i9 {* E5 b, t' d$ R  v1 Edouble orientation[9] ={0,0,0,0,0,0,0,0,0};
! f/ }' v6 z5 y   double origin[3] = {0,0,0};; Q1 I6 B8 H3 E8 W5 L+ B
   double pts[6] = {0,0,0,0,0,0};
" l+ _% I: W& \; Q  i! [   int i, error_code = 0;3 V* d$ H5 d7 a  {. X
   int mode, display, response;" u2 n0 S. ^& Y
   mode = 1;                    
+ R. [& T" x3 p& Idisplay = 0;      , Q- z& l8 Z- b( m1 A7 f
UF_initialize();
' ~! p% E: w, y& t3 D1 Q+ i) H7 K   error_code = UF_UI_specify_plane(
: u$ d5 W) d3 ~8 @+ F% G; t         "Select Plane", &mode, display,, ~# t9 D- R) x3 v& L! K0 _
         &response, orientation, origin,&plane_eid);
$ t6 O% `+ C$ b5 j# m, t
, S; h9 F2 B6 }! b6 F8 \- E   if ( !error_code && response != 1&& response != 2)
: W2 N/ N: J+ K& G7 x! w  ?   {
* }$ C; J& B% ~" d" ]) ?$ S                     for (i=0; i<3; i++), O1 Y0 W$ I: t* h8 Z4 X
               pts = origin + orientation;$ J3 ?) W$ s" j: I& y; }
                     for (i=3; i<6; i++)
. \* b  I0 P  y               pts = origin[i-3] + orientation;: V5 w, N8 l3 I: K; M$ y: p
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);2 z  R! u& \: P' U# A
   }7 R" o( t0 B0 J3 g
11,临时点,线2 y4 @) G8 {. s- G1 u( w
void display_temporary_point_line (double point1[3], double point2[3])
+ G$ t; a, t9 E{
1 c! O: {' X5 b# i/ P: G) Z  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;% e) F4 ], M; G9 l
  UF_OBJ_disp_props_TColor;
9 ~. O* x' v+ V  color.layer= 201;! {' t& L8 W. {, l
  color.color= 186;
% `6 f0 D3 Z% V: m7 O+ O6 Q  color.blank_status= UF_OBJ_NOT_BLANKED;
% T! }3 ^. h/ I  color.line_width= UF_OBJ_WIDTH_NORMAL;# F9 U$ i3 j6 v8 L  E! H& x6 e
  color.font=0;
4 l4 e9 M* B) ]+ a7 P  color.highlight_status= FALSE;& m9 @$ W  }, N' U
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;, {* V& E5 l: I4 @' p1 A$ l; Q

# y6 i  O* q7 E7 g+ aUF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);
7 V7 H" v" y+ g  O5 [4 [; o7 LUF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);3 X! n$ I3 M9 p$ L
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);
* p4 W8 N+ N9 P5 K" U}: R, z7 B- y+ M# \
12,WCS与绝对坐标转换
2 X6 M$ R: P# L% W                        voidcycs_wcs(double point[])1 {5 v$ u' k; b9 H% F4 [
{; G4 R$ E8 w$ M! ^8 G8 H  M0 h+ k( |
      tag_t  wcs_id,matrix_id;
0 E) g  ?. Y9 P6 `      double matrix[ 9 ];2 S  B) L! [9 n0 a" r
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量- Y+ O+ T4 C+ @( J; Y. M$ ]( w1 [
      double wcs_origin [3],vec[3][3],point_origin[3];
5 O' I, ~3 p- R  e3 l5 l      //1,得到工作坐标系( C; U3 y# V+ f9 Y; |* [& i0 K
      UF_CSYS_ask_wcs(&wcs_id);# Y- _  h- _9 u+ T* T. @
      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    
$ P* q4 A9 u; w. E2 S0 A      UF_CSYS_ask_matrix_values(matrix_id,matrix);
. ?) F$ w/ f$ U
) Q. w+ S5 p2 I      //2,得到工作坐标系轴向量
0 N6 Q. C( Y" i* D6 R# h- R      UF_MTX3_x_vec (matrix,vec[0]);
$ U6 i9 O" n. u2 `5 z7 k      UF_MTX3_y_vec (matrix,vec[1]);
  q$ n, b' Z! Z      UF_MTX3_z_vec (matrix,vec[2]);. v: h0 i/ X; `2 y# }" m
8 A& W3 q# y% v8 `* M
      for(int i=0;i<3;i++)
2 s! L- E: Z) o$ t5 p: q6 Q      {     0 N/ Q; R5 ^0 S, \) s  j
            double tol;; ]7 B2 r1 y# c
//3,得到点到工作坐标系原点矢量
  L. p2 Z( g+ ]% l) l            UF_VEC3_unitize(vec,0.000001,&tol,vec);
5 K- S% \' o; k2 I2 {  a//4,得到点到工作坐标系原点矢量2 c; V3 [8 q7 v0 ?0 F
            point_origin=point-wcs_origin;1 L8 K, _  w+ S; K
      }
0 e, ]" N0 }$ Y; T# ~      for(int j=0;j<3;j++)6 V% B' {* ?! ~$ U& e5 f0 @4 y, e# V% v
      {9 D$ o9 t7 v5 j: D! o6 C
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
& Z/ |3 Q7 e0 V$ I$ Z. k  Z+ c      }
' f& r$ H5 s4 C- |  i( N$ b( f}' Z0 ~* }1 R( A% u# T
13,三点求圆心% p+ R) F4 p/ r
#include<iostream.h> $ d% U9 N0 K9 `; A5 B  W
#include<math.h>
% y& m# ]" f1 |/ o' X4 k, _9 \! o: @
int main()
7 o9 p% f& h. ?; Q* Z' a' J{4 B) E. e& `, s' F
      int x1,y1,x3,y3;
7 {) q% A/ {* J2 X, }3 `      double a,b,c,d,e,f;
1 [9 A8 u- j+ ^, v      doubler,k1,k2,x,y,x2,y2;7 x, n" u& }% X+ h; @* i
      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;; x  h4 T! o: i
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
9 V+ ~5 m2 _2 X+ k. S1 u7 I" ~      if((y1==y2)&&(y2==y3))
. e4 {- k6 k/ x% m      {
; ]1 d3 c9 s, N9 ]& z, K6 B0 G$ Q; \* x            cout<<"三点不构成圆!"<<endl;
  E: E. G8 X- B            return 0;
- j4 C1 q* B& h  v5 B      }
; ?7 k: O# ?( y: `* I      if((y1!=y2)&&(y2!=y3))
; @* \3 ~' d( c) d$ ?      {
" q9 Y3 P. k6 b: N" m7 ?; Z& I4 i9 _            k1=(x2-x1)/(y2-y1);
0 P& e4 y% b$ l+ t            k2=(x3-x2)/(y3-y2);
, T4 _) p& a: F, T      }
5 _- h9 `  E3 N: o      if(k1==k2)
8 q3 U- `  L. m' v' ?      {* X# a- A9 p, m
            cout<<"三点不构成圆!"<<endl;# U; L5 b! h% r. k+ R6 N+ |7 e7 c
            return 0;
/ e; `# O0 M( Z% x* g, e; V, o      }: _: N5 K# V$ [3 h
      a=2*(x2-x1);- D" X+ g; i( k* x- U
      b=2*(y2-y1);" N7 U& [$ ^/ B' I4 F! c" k
      c=x2*x2+y2*y2-x1*x1-y1*y1;6 g: @( L7 B, a* J# d7 C3 d* A
      d=2*(x3-x2);
6 h6 n" k. s( Y$ H  J& Y. Q      e=2*(y3-y2);
# h. O  F" X! r9 y! L+ Z% \+ _      f=x3*x3+y3*y3-x2*x2-y2*y2;
1 ~" p  ?* i! }8 F6 U$ i      x=(b*f-e*c)/(b*d-e*a);9 I) k0 x. V% ~
      y=(d*c-a*f)/(b*d-e*a);: c( z' E$ e% }& L. F! e; o4 b
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;0 d' }1 k: y/ R, m0 q7 |
      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
/ a- r  l! Y* `8 a: v      cout<<"半径为"<<r<<endl;8 o: F1 k6 [& C9 ~% D0 Z/ y/ e. R. V
      return 0;
0 a9 [1 F) ?% o4 ~4 [( X: E}1 ^2 N6 C9 r% U5 |3 m
14,查找圆心# q0 S! p# x1 |5 f( D
            UF_EVAL_p_tevaluator ;' l( m2 l8 E2 V2 c4 R
            UF_EVAL_arc_t arc;
4 @+ {/ c& Z8 |1 D. X* \" F            UF_EVAL_initialize(obj_tag,&evaluator);
$ [# Q% _# ?2 o            UF_EVAL_ask_arc(evaluator,&arc);
' }, q1 L5 p0 C6 ]7 a! g            UF_VEC3_copy(arc.center,point);           
) T9 e  I& G9 j. T/ F+ B15, message_box
6 b# G5 F" l3 j. _2 Svoid message_box(int *res_mes), k* J1 d3 j& }$ W$ _0 @4 w) {4 r/ x
{# @2 J9 t, h% \" S
      UF_UI_message_buttons_sbuttons;
0 k/ w7 C6 v- X; }      buttons.button1=TRUE;. y2 _7 {, P# o- g
      buttons.button2=FALSE;6 {' `+ h6 R: a& U2 U( K( }6 d
      buttons.button3=TRUE;, u: S5 Z6 R3 O8 l. j3 A

0 Y8 l- b" G% j# A, Q0 P% F$ m      buttons.label1="OK";8 A& }1 P- g( o, ~
      buttons.label3="CANEL";
' ?0 `5 c0 L) p; Q3 u8 z- N" h* e4 c; c  c+ n1 m0 P5 `* D4 M' c
      buttons.response1=UF_UI_OK;
; H# \; W( M0 M& k      buttons.response3=UF_UI_CANCEL;4 w% L6 Q! {! \/ y9 e1 q1 r3 \+ |

7 J+ a9 b/ ]# Q% h4 V) l2 l. Y& O. {6 v      char *string_msg;
2 n+ k) x- s$ v  Z* F" J9 [8 l( {      char*material_msg="ALL selcted objects will be removed";
+ H  X6 V. @, b      string_msg =material_msg;9 ]) P* y* _) }& t0 H1 @2 |
6 C  @0 L* b7 m9 L- _7 I, H& a" E
      UF_CALL(UF_UI_message_dialog("",
9 {% f3 c  f/ _" T            UF_UI_MESSAGE_WARNING,
) H0 C* Y2 J8 a" d$ n& C# `  U! P          &material_msg,
6 X& _8 p. O$ C/ O6 Y            1,
- w* e2 K; b- c& Y* Q4 ^% T            TRUE,1 S" D1 P/ Q6 h6 h& ?! p
            &buttons,
2 q% D1 B/ n' ?, J             res_mes ));" f6 q8 y0 H* g- h6 s- l
}0 r2 b1 u  N, j' A
16,选择过滤
' Z. M2 ^$ K* T0 W; W7 P! ^static int init_add_face( UF_UI_selection_p_t select, void *client_data)
' v8 @3 ?  f- W$ p" k& O: {5 p6 ~* l{
6 }: \% p* n* U- F* q      int nums = 1;! N5 A4 f# E+ n8 x$ L
      UF_UI_mask_t masks[] ={
) O: C0 u  [9 R* M2 T  X            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};6 o! Y. y7 N: j( Y2 q3 {9 Q1 x: K. r

6 l) ?6 U2 V- z' g            if(
0 I+ K+ o: B4 ^' E  z2 M                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0)0 q9 p, W3 y0 S- F7 B9 A+ ^
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0). U; ]) P. p# X, K
                  )
5 l( k1 \- a( X5 n8 [  V7 J" W            {- V) Q# n  r' z
                  return(UF_UI_SEL_SUCCESS);  T9 c& j4 l9 D( a2 A
            }) X, y3 ~/ Y7 {
            else
. o1 O- z- M' }; G- c% M3 ], i' e! D            {     3 g# z- L/ M/ N* o9 s, ~% ]
                  return(UF_UI_SEL_FAILURE);
& E5 {1 X2 o1 B3 t            }/ c* K$ h6 o5 L7 |6 P
}' i+ l$ E+ E8 r  _) Y) E! v; K
int find_tag(
% N; y) w) W4 S4 V4 T                    void * client_data,//用以传输过滤资料. `1 |, c# E' ?3 m
                   tag_t object//现在鼠标所选物体ID
9 L! k) j/ j% K  r! _9 Y                   )# I, z+ d  T5 X
{
5 G  W' Z  n5 }; q2 |9 e# N      user_data *obj;5 \1 Y' m' T2 Q4 ^9 V% B
      obj=(user_data*)client_data;
7 _( m( _) ~+ I3 I      int find_face=true;//接受
" J: O  e2 G& H1 g0 D4 E      char *string1;, @0 g1 V' a" `5 U5 ?9 k
      string1=newchar[133];
) C+ F- o, @+ @" J( j5 _6 ~      string1=UF_TAG_ask_handle_of_tag(object);
& O, b7 t2 q$ `- f3 j6 e2 R      for(int i=0;i<过滤的数目;i++)
. e1 A5 o9 ?' f9 f      {
) E1 H" [  Q  `/ t0 e
& S4 W9 |/ t) _$ [- r: W, X            char *string2;
0 G. q# z3 O2 w- g            string2=newchar[133];% H, N. V! a1 W: D
            string2=UF_TAG_ask_handle_of_tag(物体ID);
' W0 a& l! ]  k+ \            if(strcmp(string1,string2)==0)
) l" K$ `* G- U: R. ^5 b( m            {
" s6 P& v4 o1 b: T6 p9 C& f                  find_face=FALSE;//不接受7 ~+ [$ [6 v7 g- h+ ?2 F+ T

2 G3 r  H6 i, [+ H9 W' x            }: I  H* K. {! R7 N
            delete []string2;
, I# V$ m$ R" B- L: J2 m      }1 h7 ]1 [5 [. y9 [4 }+ |" J  u
      delete []string1;
4 W6 h, c+ L2 O& Q! r$ [- U; E      return find_face;
( K0 Z" y! I- \3 B/ K}
6 D* z& z% A& I  j! a1 T. i0 q2 Q: M: z7 k8 @- I( d1 ^. v4 `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了