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

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

  [复制链接]

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

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

admin 楼主

2015-3-2 10:31:39

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

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

x
+ H/ U* l" e% D
7,裁剪片体8 l; V3 Q$ ]/ t5 T
tag_t  *trim_objects;. D) u; [: _8 e( `5 R- I
trim_objects =new tag_t[count];+ k" u% w+ p$ v5 n* I8 G+ _! u
trim_objects =bound_id;" s# ?9 ~" n; B0 L! V% Z3 X4 T
voidtrim_sheet()
; \% `2 M( [) J% J2 r3 L; B. U2 \{; x8 x2 v: i/ b+ }/ C

! [- i' Y/ c3 u+ v, j) i' U$ k! W* @& ^      UF_MODL_vector_t projection_method ;2 o# }/ B& m5 e* J
      projection_method.reverse_vector=0;
+ ?+ [: }. u8 m      projection_method.vector_type=UF_MODL_VECTOR_DIRECTION;( g/ _* ], D5 O
      UF_MODL_vector_defined_by_union_tdir1;: ~& I! Z& q& G, m
      UF_MODL_vector_direction_t dir2;
2 j/ @) V- m4 |- r- _      dir2.xyz [0]=dir[0];
0 A$ Z6 C( Q# ~% u. n      dir2.xyz [1]=dir[1];4 Y8 E& q+ i& L1 V
      dir2.xyz [2]=dir[2];
/ [; `2 I# O' ?6 }/ E' {      dir1.direction=dir2;
4 m2 Q# i7 F4 M: |" w! I& z' Y. P$ x! C7 b
      projection_method.defined_by=dir1;
/ c) S1 w) Q8 G5 d! F, C7 F( @
: ^# u# u# ]0 Y- t, ~' o8 T      double point_coords[3] ;
! u" f' e" X- z
* i) S! }% h4 B5 ~2 c! b' \      point_coords[0]=center[0];7 p" }! }' P" |9 q
      point_coords[1]=center[1];( ?, i# K# c$ t! |
      point_coords[2]=center[2];4 O/ Y8 d6 p2 W" h) r: u% @

' T4 ^6 \# s. \/ C& N      int gap_point_count ;0 ^) @6 L7 ]$ @& x( o+ ^) Q( o% m
      double *gap_points;9 b9 Q! C, c& {
      tag_t feature_obj_eid;4 L: }6 ^8 a9 e3 |
      UF_MODL_create_trimmed_sheet(sel_sheet,edge_count,trim_objects,&projection_method,+ k/ z4 D+ w; A$ I/ W  }6 K( ]3 }
                                           0,1,point_coords,0.1,&gap_point_count,&gap_points,&feature_obj_eid);
  x0 R8 g* J7 d$ L7 r1 d, l6 Y* ]8 H# I- f
}
8 C8 X$ p5 h) e' R8,offset偏移7 x; V' ?# u  n6 J  N2 b
4 H/ a3 z1 X$ e, ~) b9 j  A, d% Q+ M: W
char   distance_str[] = {"10.0"};//偏移的距离7 `: K0 B1 L, |6 `

! I$ C+ e' ?: S6 o1 sint  num_curves;1 v# \# K+ i- ?
tag_t *offset_curves;& ~) E  K0 S. P
UF_CURVE_offset_distance_data_t  offset_distance;& I8 a5 O4 E+ I/ S, F3 A0 Z9 p
offset_distance.distance= distance_str;3 R8 D0 X8 {5 V$ {9 M5 @
offset_distance.roUGh_type=1;
: j% ^; ]; ?( ?& y  \! NUF_STRING_t   input_string;2 p2 }$ h- j: J  ?6 i- t+ w4 A
input_string.id=curve_id;//加入想要偏移的线
  f3 J: E9 o. X1 ], {- Pinput_string.num=1; //偏移矢量方向数量
7 R  z, v0 ]6 L7 P+ r+ c) e2 b, dinput_string.string=&string_count;//偏移线的数量; T  e6 z( @" ~
intstring_dir=UF_MODL_CURVE_START_FROM_END;
4 Y0 G) x6 e' ?; tinput_string.dir=&string_dir;( h% H4 h5 Q3 A! n
- C, I% ?& m2 w6 w8 `1 u, \
UF_CURVE_offset_data_toffset_data;8 s4 M9 F% ^) f' M# U) h: m

% R# h2 X* W0 \; x; f4 qoffset_data.offset_def.distance_type1= &offset_distance;
, _& i+ @+ h5 woffset_data.input_curves= &input_string;
$ D7 ~+ D& R. T$ @3 Aoffset_data.approximation_tolerance= 0.01;
) v% q: f% B( a( e+ M2 n, d( doffset_data.string_tolerance=0.001;# u0 I* L) n: e# A; o
offset_data.offset_def.distance_type1= &offset_distance;
; L& p5 K9 E6 X- T6 d4 m9 ?offset_data.offset_type= UF_CURVE_OFFSET_DISTANCE_TANGENT;
  [% b- `* }4 c, p6 @) x% S) xUF_CALL(UF_CURVE_create_offset_curve(&offset_data,
$ |0 n( }2 l8 H' L3 D2 d8 z&num_curves,&offset_curves));* V0 D$ B) B. c: R$ y. _
9,创建平面
. U; w6 m9 \: w# Z2 ?; O6 zUF_STRING_tgenerator;( y; A2 S6 q6 o; @, x
UF_STRING_p_tge = &generator;
( ?  f' f; l' B# n% ~+ G/ C% A/ ], T& |$ J, H. f  b
UF_MODL_init_string_list(ge);. F0 D8 d+ {5 y6 {4 P
UF_MODL_create_string_list(1,12,ge);9 }' g0 `8 c- h; E8 D% f

7 i6 j! n" t5 Zge->string[0]= 1;( |! [7 w/ B0 O
ge->dir[0]= 1;//指定线从开始到结束3 @* x# \% I0 D/ {
ge->id[0]= arc_id;//指定边界的id, V8 }( [' b! s% G4 `4 y
doubletol[3];& P" w2 }+ y0 k
tol[0] =.001;//直线公差
& G+ }1 ]: X8 f  u# Etol[1] = .5* (PI/180);//圆弧公差  K5 p  }: F. c
tol[2] =.02;//不起作用
, G! @. |. P% Q1 K. h" eUF_CALL(UF_MODL_create_bplane(ge,tol,&bplane));
) l6 m( h7 F% E# A/ {10,选择
% F4 v4 i. y9 J6 a, i- Q7 T1),点选择( g) f3 N- H: j, o. Q+ y6 k! U; }
tag_t point_tag;) Z& X% D3 ~. T/ M) T
double point[3];" z7 ?& T# `- I
       UF_UI_POINT_base_method_t  base_method=UF_UI_POINT_INFERRED ;  
- ~! b; b0 Q0 A  C       intpoint_res;
, ~* y  T  P  F
& x- k% o! B" z6 P3 `: X% L/ J/ lUF_CALL(UF_UI_point_construct("选择起点",&base_method,&point_tag,
4 [: t6 o. M1 v6 Spoint,&point_res));! v" A( n; v& x; W3 F- c& u" n' u+ x3 ]# f
if(point_res=UF_UI_OK&&NULL_TAG!=point_tag)# R- R* x5 l2 e2 B' f6 u; J, u0 |
{: j) i# `0 Q- a$ i
}
! B2 x$ Y* r* S  ]+ u$ }$ y& J2),向量选择; o1 I& z  F% a
     int  mode = UF_UI_INFERRED ;
  w: F1 G. i, f: O% a1 S" A' l# H     int  disp_flag = UF_UI_DISP_TEMP_VECTOR;
! O6 Y) f# }' F0 R  o8 Edouble vec[3];. i4 Z' }' s0 u# M# q
double vec_pnt[3];  V9 G, N6 {0 e: L3 |0 i2 _- x
int res_vec = 0;
# W1 I2 T% w1 Z     UF_initialize();  
2 |: x1 \8 P" c. l     ifail=  UF_UI_specify_vector( "Choose aVector",&mode,disp_flag,/ V- H0 K: K& @$ E2 \3 a5 b
           vec,vec_pnt,&res_vec);
4 [! P( j: c7 I2 L     if( ifail != 0 || res_vec!= UF_UI_OK )   
$ D+ P+ h! U  i. e     {     
6 R+ Z) H9 b3 _           UF_UI_ONT_refresh();& s, Y, V1 m1 v! P7 B
           printf("No vector selected \n" );
% B$ p; k( I% A' k) `) u4 q# j     }# {! [9 [8 R0 R
     else& x* @" ?. j9 K6 _
     {9 B' O6 h0 p$ e1 ~/ S4 _9 a2 N
           printf("Vect base (%f, %f, %f), direction (%f, %f, %f) \n",1 l+ Q' T& }# B& ^  T+ ~( u
                 vec_pnt[0],vec_pnt[1], vec_pnt[2], vec[0], vec[1], vec[2] );
& X' w- _4 J! M6 T}3 A" w3 j$ k: ~3 y/ Z3 U
3),平面选择: m4 V& Z( }/ F8 a5 [
tag_t plane_eid=NULL_TAG;, S$ p% C0 x: c, W+ ?6 I1 k
double orientation[9] ={0,0,0,0,0,0,0,0,0};
# ?8 n0 G. d$ Z- P8 K$ @   double origin[3] = {0,0,0};& @( S8 f% E6 N( r
   double pts[6] = {0,0,0,0,0,0};
( I* q0 @- `" f4 Y) S& }- R" \8 E: o   int i, error_code = 0;
6 h/ h& d$ X& i8 L2 n, R1 O5 g   int mode, display, response;' j1 C/ i5 H! f8 N- D% [
   mode = 1;                    " J% a) L/ Z# m; S
display = 0;      
1 z/ a% l# v1 G7 n1 D* EUF_initialize();2 K8 Z3 t  B( C) o
   error_code = UF_UI_specify_plane(& H- l$ a/ l; m7 ^* a; }
         "Select Plane", &mode, display,
+ B) ?  G! X. z- k5 {3 H( }$ u         &response, orientation, origin,&plane_eid);7 k  i' |. F7 f* D

# M+ o* V" P- |8 L" d   if ( !error_code && response != 1&& response != 2)
) y" ~5 K- I' l( d  l* T% m1 D   {- W% ~( J" h8 u$ ~0 L
                     for (i=0; i<3; i++)0 X+ U  k$ W9 a2 [
               pts = origin + orientation;/ O+ `/ k7 ?& |2 ]# p6 \+ p
                     for (i=3; i<6; i++)
, e8 d3 @6 K7 G" T5 t               pts = origin[i-3] + orientation;  B+ y1 p' \% z; Z" q$ c; q8 J0 B
         FTN(uf5374)(origin,pts,&pts[3],&plane_eid);( N' _& Z7 }: R
   }3 `5 j, F% z2 u, C8 K/ K" z
11,临时点,线. y3 c( {( W+ Y) r% O% K- ]: y. ^
void display_temporary_point_line (double point1[3], double point2[3])! e  e! ~. d: e7 U
{. `# P2 E7 C6 l2 u
  UF_DISP_view_type_twhich_views = UF_DISP_USE_WORK_VIEW;
) @2 X4 J  |/ v* ~8 O5 A% z4 o  UF_OBJ_disp_props_TColor;
% M! |! n% c% d& }2 j  ]  color.layer= 201;
. x7 y# D& C( f3 S7 t. m  color.color= 186;+ _* ?4 r4 L" A% L, v& r" p
  color.blank_status= UF_OBJ_NOT_BLANKED;9 G6 T" ^4 k$ R$ b  E: N$ L' {
  color.line_width= UF_OBJ_WIDTH_NORMAL;
0 M3 ^! N+ I6 R$ o* [0 r$ G- j  color.font=0;
  x% v9 y8 I9 ?- ?  color.highlight_status= FALSE;4 M) ]) ~3 I& M1 F! W& S; s0 p
  UF_DISP_poly_marker_tmarker_type = UF_DISP_POINT;2 X& `+ P) U! a+ P7 a0 W9 y* E. n
) P: v' d) @( h; P1 h3 L( @
UF_DISP_display_temporary_point ( NULL,which_views, point1, &color, marker_type);7 _. A+ C: V" @$ B% ]) }
UF_DISP_display_temporary_point ( NULL,which_views, point2, &color, marker_type);1 v% i/ q) S9 h
UF_DISP_display_temporary_line ( NULL,which_views, point1, point2, &color);2 D% y$ i( q: ^- V" w9 J
}( O. o, U8 Y1 ]( \& _, C+ }
12,WCS与绝对坐标转换; e# d' `$ u# z- O
                        voidcycs_wcs(double point[])7 C0 D) B( T0 t% Z1 {' F
{
* B7 c8 q  ?2 K% g+ p      tag_t  wcs_id,matrix_id;- `+ h, ^1 R' J. d7 n& F) s5 T
      double matrix[ 9 ];9 z; X! O* d& x6 K/ [# {
      //wcs_origin:工作坐标系原点,vec:工作坐标系轴向量,point_origin:点到原点的矢量# l# B7 d0 i# y8 m
      double wcs_origin [3],vec[3][3],point_origin[3];) X3 K* e3 z. y9 A
      //1,得到工作坐标系- ~+ f2 s: ~6 h9 L1 n( v+ r: u
      UF_CSYS_ask_wcs(&wcs_id);
6 V" _8 h. \- Z" M      UF_CSYS_ask_csys_info(wcs_id,&matrix_id,wcs_origin);                    & [1 S8 r1 `3 s% ]" n: X8 Z
      UF_CSYS_ask_matrix_values(matrix_id,matrix);- `* E) i0 A+ }  e
$ z  r  P0 U2 f  g. K* D
      //2,得到工作坐标系轴向量0 Y. u& g, B: N5 E
      UF_MTX3_x_vec (matrix,vec[0]);" u% `" \% Z3 h6 B. Y( \4 \
      UF_MTX3_y_vec (matrix,vec[1]);& u7 A) W. S: v
      UF_MTX3_z_vec (matrix,vec[2]);( d8 ?8 _6 L: t3 {: T
1 j- s: ^: l" c4 }4 q9 a
      for(int i=0;i<3;i++): q6 u+ r7 @$ K
      {     
/ a9 @. d$ d0 t- A            double tol;' t- }) \; N( E
//3,得到点到工作坐标系原点矢量
* j: I7 m1 v8 ]% L( I- z            UF_VEC3_unitize(vec,0.000001,&tol,vec);  b8 _7 U  U/ }: p& T
//4,得到点到工作坐标系原点矢量
& K4 q( R0 E5 T2 h5 [$ I/ q* V4 N            point_origin=point-wcs_origin;/ V7 T+ q% t0 H% _/ s
      }* n  Z7 G5 b: U9 c& A+ ]
      for(int j=0;j<3;j++)
( Q7 O/ I8 r9 h' x  Q; z      {9 @8 i/ [0 r  z: Q3 _
            UF_VEC3_dot(point_origin,vec[j],&point[j]);
* |0 u* A! t: n5 i, A2 I      }
6 W# d( O# l7 [- }* W& q' o}
+ u1 Y( m; V4 g13,三点求圆心
; F# A! M% W+ [$ s/ \#include<iostream.h> . W1 |0 c. ~/ |
#include<math.h>
6 p3 K* }- d) Z3 V' z2 H6 D# G% D3 h
int main(): [. j4 D4 |, b# O, H" b' m
{
$ U- e5 D8 O7 z3 \% n      int x1,y1,x3,y3;
2 f7 E! F: G  K+ W$ x4 a      double a,b,c,d,e,f;6 B1 r$ {# p0 T% c/ r
      doubler,k1,k2,x,y,x2,y2;
1 j! w7 N# {7 \6 a" v      cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;  w" w5 R) @" s8 }% m' c
      cin>>x1>>y1>>x2>>y2>>x3>>y3;
+ U. N; }: f8 J5 j      if((y1==y2)&&(y2==y3))
1 ^) W2 `+ }1 b& v: P      {8 v) g# o0 Z0 |  @2 `
            cout<<"三点不构成圆!"<<endl;
. w( n' N4 b3 L            return 0;- z6 w5 v5 {, G+ B$ g) v/ X! r
      }
0 M: R2 g+ q3 r( k; z# Y7 z      if((y1!=y2)&&(y2!=y3))' z6 x5 Y& X- V; g, n! U8 z& F7 x5 O- a
      {- {$ a) d" L. o/ G% b) [$ h
            k1=(x2-x1)/(y2-y1);
' R% z* Q% I6 h+ W            k2=(x3-x2)/(y3-y2);5 L2 i; r6 p* {
      }: o/ `1 K2 r; j6 |3 m( z
      if(k1==k2)
: y+ m7 @. P  h% t& F2 ~( k- s" J      {7 j% C- ^, d0 I
            cout<<"三点不构成圆!"<<endl;
3 v6 F4 ?) [- L            return 0;
8 `6 |+ h1 n) {) z! n8 C      }  G# [: |. y; }% i
      a=2*(x2-x1);
7 x1 C0 r- c( E  G      b=2*(y2-y1);! ]: w) F, p9 P% [, r# u" X) \
      c=x2*x2+y2*y2-x1*x1-y1*y1;  Q: F1 q" W& P9 }) U: r- w" u! g
      d=2*(x3-x2);- Y% u# [' |0 i3 n" i
      e=2*(y3-y2);
1 c0 h0 Q/ J: z      f=x3*x3+y3*y3-x2*x2-y2*y2;
$ ]6 q' B2 U& \      x=(b*f-e*c)/(b*d-e*a);
. A, t8 i% u# d      y=(d*c-a*f)/(b*d-e*a);6 A/ I  A8 `$ x
      cout<<"圆心为("<<x<<","<<y<<")"<<endl;
; ~' f$ q0 e  x" ?! J3 f      r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));% i% f2 o2 {* z: |# w' P4 J
      cout<<"半径为"<<r<<endl;
# v( A& B5 U7 j" e      return 0;
0 A: S" C7 C: j0 l) \; A1 W0 C}
1 F- u8 h( j, J+ d, M- Q14,查找圆心
& [3 T& S. M. T$ d9 o            UF_EVAL_p_tevaluator ;
1 G  u) C- s6 G9 d. F            UF_EVAL_arc_t arc;
+ V: B* Z* J# T0 Q( @) {1 O/ y' t            UF_EVAL_initialize(obj_tag,&evaluator);+ H3 G* L, y  \3 O; B$ v8 S5 y4 w
            UF_EVAL_ask_arc(evaluator,&arc);9 \; @: |) q2 H) B: Z
            UF_VEC3_copy(arc.center,point);           
* m3 p/ Y) x8 t. }( j15, message_box2 ~: w9 [: f% `2 A/ m4 Y
void message_box(int *res_mes)
9 D  k3 l7 t9 X' F+ ^! F' d{
; z  r. Q9 |0 ^) g/ Y# O      UF_UI_message_buttons_sbuttons;1 v% x4 U8 i8 K! E
      buttons.button1=TRUE;
3 I  F% N2 E4 U( H      buttons.button2=FALSE;
5 o7 C, O' n3 P8 K9 C, j      buttons.button3=TRUE;8 t+ f; n5 j5 I/ k2 d
" `1 \8 P& L! I8 ?6 d
      buttons.label1="OK";) Q: n" Z. U4 j; }/ C4 I8 H
      buttons.label3="CANEL";0 f/ k9 q3 {, j$ `! |% F" z; ^$ x

6 F' k. @, a3 o+ C; ~      buttons.response1=UF_UI_OK;
4 F+ L2 V% M0 u# p/ ]9 G      buttons.response3=UF_UI_CANCEL;
' T* ?  n& Q  a- `7 ^  f9 V+ B! t& l0 {4 K+ q: v  u
      char *string_msg;
& t; u5 \' H. a# _9 r5 V( J      char*material_msg="ALL selcted objects will be removed";
4 n" N6 T/ m/ n. m% `      string_msg =material_msg;5 O; \; E. k( D: W7 z
% t& `/ X5 Z9 c& W4 S; `  G
      UF_CALL(UF_UI_message_dialog("",6 |+ g7 K) z4 B" f# V; J
            UF_UI_MESSAGE_WARNING,* Y9 k. M2 u* T
          &material_msg,, X: [! X; V3 Q+ z1 L
            1," y9 B& ]' Q, w
            TRUE,+ @* g* o: N6 e- N& c4 D. j
            &buttons,
4 b% R9 U& q& o0 W9 L, j4 ]2 W             res_mes ));
- r7 T; t# A/ y8 ?}' q! I# y, g8 {' s7 s
16,选择过滤
- N2 O5 L% \, T4 d8 z! |static int init_add_face( UF_UI_selection_p_t select, void *client_data)
7 i* ?' _9 X& T. M8 Y9 \{
: ^' ]# X/ M7 d0 R  A      int nums = 1;" P' {7 D$ t4 ^" u5 T4 e
      UF_UI_mask_t masks[] ={9 J2 N' M" m/ W3 T3 R( ^. M
            UF_solid_type, 0,UF_UI_SEL_FEATURE_ANY_FACE};  [! F# Z2 [+ c6 J" {
! k5 x, }: L' t- Y! u$ q5 ]
            if(6 i' j4 Q/ d4 @) t$ h4 R: d
                  (UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,nums,masks)==0); ]1 `( K, }$ e$ {* X  G( B
                  &&(UF_UI_set_sel_procs(select,filter_proc_circle,NULL,client_data)==0)
9 |4 \; @2 @! L2 M4 V( k                  )) A/ c9 Q9 |4 U( o) p( R; w2 l/ [; e
            {
, h. A* Z1 f* }9 i                  return(UF_UI_SEL_SUCCESS);9 |8 g7 [% g; b9 r, W1 P
            }
) E) w# n8 I+ U9 H: X; p9 S7 ?6 E/ W            else
+ o% {- F" G, H& ?4 p( b            {     
9 e9 V0 t2 o+ e# r! x* r' ~                  return(UF_UI_SEL_FAILURE);  L; U) H. e% k; L) m, Q. `( d
            }/ Y0 o3 X/ f+ f1 v0 [
}5 `- C+ Q( M4 m- E1 l- L
int find_tag(6 q2 k* ^- J! C/ X5 x: z# Y3 |
                    void * client_data,//用以传输过滤资料
4 y$ v, r  A: N) H& c; Y* X. n                   tag_t object//现在鼠标所选物体ID
: U1 l) o0 H! A" T. a  Y( r                   )
8 |* m- ?( U. P) T4 [& V' W7 Z; B{
- }; j* _) H9 f      user_data *obj;  G  Q" E; u9 A9 w* |6 z" f/ n' h
      obj=(user_data*)client_data;
3 a9 u: Z+ Y- ^+ R; K9 n& `      int find_face=true;//接受
4 L6 R5 z. K7 s      char *string1;
$ b1 H5 d8 U  m1 B      string1=newchar[133];9 T# ^9 q" M  \0 G
      string1=UF_TAG_ask_handle_of_tag(object);2 O2 M/ k  K/ @+ }' i$ w2 O
      for(int i=0;i<过滤的数目;i++)
, |) V: ~/ M. f      {
/ [0 i  C$ l2 g7 Q3 a( f% G5 }; t* x# p
6 q% H) C7 S6 O8 o            char *string2;
% _) f6 h/ I+ a- F            string2=newchar[133];, V4 [- X- o3 B( Q5 T% S* z
            string2=UF_TAG_ask_handle_of_tag(物体ID);
7 q& S" C  [4 e% \            if(strcmp(string1,string2)==0)
' N- o0 |8 c5 G            {! e3 Z6 g" Q! J
                  find_face=FALSE;//不接受
0 L( }' G* B6 W* p7 U! s% a
( Y& G9 I2 R8 n            }
9 d) H  L! r' _: R6 d7 A: T/ A2 k6 q            delete []string2;3 k1 J8 g7 z( _( z$ e
      }/ M5 o' g9 B! ^/ t
      delete []string1;9 ^: S4 j+ ?( |
      return find_face;
. u% l4 @3 v9 J8 g& [, z, ]2 R}
+ p& O7 [- R. c4 F2 b% R) L! f: i8 z; E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了