PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[VIP求助] 库缺少需要的入口点,功能名:ufusr

[复制链接]

2017-2-14 11:29:07 6578 0

lzhyi 发表于 2017-2-14 11:29:07 |阅读模式

lzhyi 楼主

2017-2-14 11:29:07

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

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

x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
7 v4 U# X- F1 \5 f1 Z  J2 I% R) ^# q7 e2 [7 ~& y- U7 I
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
0 x5 {& _" [0 t3 `% z. h代码如下:
+ R1 r, x: x/ ^# y#include "Shrinkage.hpp"
# v9 F1 p, n1 h0 u0 K2 susing namespace NXOpen;5 ]$ Q4 _, w1 s7 C' ]! K
using namespace NXOpen::BlockStyler;
! r& Q4 H+ \* n
% V4 {' R* v. c/ h8 L- W/ ^) CSession *(Shrinkage::theSession) = NULL;
( c6 C/ {, R, j. rUI *(Shrinkage::theUI) = NULL;! R, g5 z  Q6 q; r, v

0 G) M! S+ N- L7 |9 u$ x4 |% ~Shrinkage *theShrinkage;
1 V  B: G2 |$ q& z- E7 t8 X* q
6 c) O7 ]2 f6 }Shrinkage::Shrinkage()
. \, t, n& r" Q# {- f0 [* ^; k$ o8 v- V{& e& R' U* C5 I3 P* L9 b
    try
1 E' ]; E+ v7 x0 M% a3 }+ S9 I- r    {5 J6 r: h7 q+ x: X- G# U9 B
        // Initialize the NX Open C++ API environment8 K& h0 n! D3 @' f5 C1 H( V4 {) L  z3 F
        Shrinkage::theSession = NXOpen::Session::GetSession();
1 x8 p, [! B) V' Y, K  _: \4 q$ M        Shrinkage::theUI = UI::GetUI();
2 C, E: X- ?" M# Y$ l, q0 @) Z        theDialogName = "Shrinkage.dlx";: Y* g0 G1 E- }  _
        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());, m2 H' d& `1 c& M
        // Registration of callback functions
% U$ M3 h$ d6 g" \- R7 K        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));2 `5 _( F: ~! o
        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));
4 W, p( c' ^2 k% y' Z+ d. c        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
4 w" N1 k8 u0 c; P4 u4 Q, ?" f        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));% t4 n: n  |, D
        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
8 X/ [# o* z  c2 ~2 Q3 V        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));$ b9 F5 D# m; ~5 Q6 {/ v
        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));0 W5 `2 Y+ ^3 R- t
        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));! m) }+ p% n% n9 N( d
    }
; S  v& s1 z; p) _& X    caTCh(exception& ex)
" D+ x1 C! m0 ^% o    {0 G% P0 @! w. e/ ^; `" L- w; x' v
   $ j/ x2 f/ C0 \$ Z6 e" y
        throw;& d' f! `& _* y
    }( P/ a# R/ E0 j2 a, @  o1 s
}+ B& |+ k& ^- Y  D: S  @9 Y
  P9 T: a. D4 L* N; p. d7 K8 i
Shrinkage::~Shrinkage()
4 d4 }7 l. a3 B; w; N{
) q# s4 v! z, h) {    if (theDialog != NULL)
& \1 I2 Z- x/ d' u9 x! X    {
6 F* {- a% H) A8 C# ~/ z' @        delete theDialog;
' V! o2 _4 `0 f3 e0 g        theDialog = NULL;
( ~5 \; P- u- k- f* s' ?    }5 @/ h& F0 j: I8 l; v
}: W) k* y' N: M3 U
; ~9 v$ B! Z  j; `  v" I2 T' ?
#if USER_EXIT_OR_MENU! `4 m0 w4 I+ c. S, H4 z* Y
    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)6 w" p( Z! y7 `5 Z( ?8 u3 p
    {
& Y2 N# q7 z+ x- a        try7 A) R7 ?8 u& y0 g
        {! a! K4 M! g. W  r) F
            theShrinkage = new Shrinkage();6 J: ]: i4 z( P: V- C9 l  |$ r1 f
            // The following method shows the dialog immediately3 Q. g0 K/ Z: A: y
            theShrinkage->Show();
  ?( B6 l: |8 M- v" j        }. y3 J" u" i8 x+ R4 w; t) U+ c3 \
        catch(exception& ex)
+ m. Z2 c2 C6 S, \4 R" l, Q* Y: Z        {% d# e8 l0 Y  N
            //---- Enter your exception handling code here -----
& {! j& A# {* a- C' u8 b  x2 \            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
+ l8 d% d, w. }' s: k' T1 L) }        }
  y+ g7 a% q- K1 a/ w! G8 W0 I$ m# j        delete theShrinkage;3 Y; Q% E7 Z8 p+ ]$ n8 k  e2 X
    }6 [# M6 q* s% V4 V
#endif//USER_EXIT_OR_MENU
  G# L5 H  d# x#if USER_EXIT
' H4 Q; z4 A- m$ ]1 O    1 q8 r/ d1 ?# \
    //------------------------------------------------------------------------------9 n* E9 q1 l; r' A: \7 H* F  S
   ; a% i9 y  o5 S  c: x5 r& X- g& Y
    // MUST NOT use this option since it will UNLOAD your NX Open application image
2 s) {# x# ^" f5 L4 |0 r! w    // from the menubar.$ J2 `+ e5 [$ B  Y! A0 X& \
    //------------------------------------------------------------------------------
; U  ]/ y+ g# Y6 |+ b3 M1 |, f    extern "C" DllExport int ufusr_ask_unload()6 h. V4 B8 B+ o5 `: c" M
    {
1 S  P2 \1 z" e7 O* A* X5 M) Y        //return (int)Session:ibraryUnloadOptionExplicitly;( R/ S& `* @( U" z( b
        return (int)Session:ibraryUnloadOptionImmediately;
( t( M4 O1 ]+ H- d8 O        //return (int)Session:ibraryUnloadOptionAtTermination;, S! S4 L4 v& o- g; ?/ y8 o
    }
7 }( f" ?6 `5 q/ c% {- Y    & R. \- _% p4 s4 ]6 t
    //------------------------------------------------------------------------------0 E7 V8 m/ s5 h! ]  q2 l* w& f- F7 m# z
    // This method is automatically called by NX.
" i4 z4 s1 L- v6 a1 t: w& A) l4 T% ~4 z    //------------------------------------------------------------------------------# G2 L; X/ z: k- }# X. P- c
    extern "C" DllExport void ufusr_cleanup(void)5 K& c* r1 g2 M% Z. w+ q6 j
    {
5 Y& q' H+ i& V. B        try
. I. h, |1 @' p. P% C        {
6 }- j6 s5 M9 e; a, C7 C            //---- Enter your callback code here -----/ r0 h7 S9 S" ~& Z: ]2 g; ]0 Q* Y9 x: f/ b
        }' D8 W  b2 T) C$ T- F
        catch(exception& ex)
( A' P5 o; {" _& b' R        {
  n6 w6 V' x: e4 W6 }            //---- Enter your exception handling code here -----5 |# @! m( p1 `  H! ^! W
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
8 A+ B, B' n: e% I4 a' p        }  n6 g8 J5 \* y! A# b9 R" s  O' B
    }5 [. E, X: Z( y/ k: t
#endif//USER_EXIT
$ U! o$ x7 e- n( ?; c   
3 G4 x* T6 w: Z    int Shrinkage::Show()" }6 P( B7 b6 v8 }+ \. b
    {
3 t5 L. z4 t0 {5 X8 U0 l% ~        try5 a  a' f% a1 }% s
        {  n  r* J( t: K9 D+ n
            theDialog->Show();
" S0 x% u, @9 x; V3 r- |. l        }
# _5 J. ?4 L' k7 P+ r( ]- Y        catch(exception& ex)
/ F; \, f- P' b/ ^* ]        {
9 {/ W- a3 D; F: e, R# C            //---- Enter your exception handling code here -----
1 W, c, [7 e0 d& A            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
! F  G2 C+ L5 C2 Y( ?9 q9 r        }  V; l* N+ o  W
        return 0;
7 H& }3 n9 k7 e    }$ I- r" B4 N" x" T; \
   
  T$ W1 u0 @# _% v( D  A$ Q#if CALLBACK
6 q; ]7 t& \  h% q9 e0 j; L/ W% H$ m  b' g; n2 N: s
    void Shrinkage::Show_Shrinkage()
1 F/ a6 t/ B) Z& c/ |5 x    {
( w1 d# u+ w8 q) X" ]        try
% ?; d8 P7 p7 g        {
" Z! _7 |& k: X& R+ J$ [) ?            theShrinkage = new Shrinkage();
  R8 d% j. J4 |' O: }
  Y  t1 z. ]/ k- S            theShrinkage->Show();& f: B' P9 V/ f0 ]6 b
        }
) E2 D2 \/ M* e& Z9 j        catch(exception& ex)( \, z5 z( {0 V
        {4 q9 d5 n* X! s2 x+ s

$ u2 P( K9 Y8 p! m            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());  K( p  W# f4 P' Z( J
        }$ J' K4 r  N0 I
        delete theShrinkage;4 \2 z- T2 I+ k: X" ~! u) V. ~# Q7 |
    }' {" L, B  A5 ]$ V
#endif//CALLBACK+ ?* r' y7 `6 M7 A4 l
   
2 ]" E- E4 e# m/ S* k7 ~    void Shrinkage::initialize_cb()
' [+ `6 d- h& Q0 N: H1 _0 v5 }8 c% W    {
8 m2 l  K" M, d0 z) l        try. [, O( }! s  c
        {
% o# e7 V" D5 X! {            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));5 X+ p1 g: o1 t) D- Y. ^8 H# Y6 E
            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));3 D$ w& b) X' d3 i
            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));; `; Q) R  f/ a9 C8 a4 M
            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));! f7 `0 c4 w. R8 U
            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
1 g. ^" J( o8 s            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));( x4 [; K/ J9 i9 r2 F
            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));& ]- g( B+ A- p, g: b' ]
            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));( D0 [  Q- D% w' V8 ~# m
            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));- ]5 Y- r3 B; k0 c, a- i
            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));7 m: R- X/ O' O" o/ d7 K
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
* M; `0 H7 k4 u1 M7 z* U  J  ^% N            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
, ]+ o  E/ u& _3 ^        }
" Z, e; f; }, g5 s% ]9 H        catch(exception& ex)$ t; M! \+ U$ y# x3 C  v' D
        {
; V- R* J% u$ b# l* a, s4 p& k           5 y0 \- @2 Q1 H- Q
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
& s$ j9 V+ v" E7 j' U/ F        }
! m0 R4 C6 G/ o) e    }. P4 X$ P& W( z3 h% G. Q
    //------------------------------------------------------------------------------
6 V3 Z+ Q. V  h/ |    void Shrinkage::dialogShown_cb()5 x+ I( F4 W/ F
    {  A6 {( e/ I- \6 b
        try3 X5 a) Y3 P/ ]: E3 \+ G
        {
0 g! B, }2 b9 S! b( C, G6 U+ J            //---- Enter your callback code here -----6 O* t5 I" e' Z, P; o4 S- }. X$ e
        }
0 R8 h# Y( Y& V  N0 b        catch(exception& ex)
5 X( ]' p! @& g" |) @) s/ ~' C6 ]        {
: a9 I# U. b0 c* D/ y* u! Q5 J! G6 g# `7 |
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
4 h6 L/ F5 j. W        }
  w+ w+ }1 c7 a) S% w! W    }
" J( s7 N9 o( b  o( q& x   
% d3 `; K8 j- {0 Z. c4 M    int Shrinkage::apply_cb()
* ]3 B0 j" g$ v5 q    {3 ]" d3 \+ X2 m
        int errorCode = 0;
$ Y) u5 ~! I! M5 P, }        try
  T8 e2 m0 a6 B        {( K: V) }  C7 X
            //---- Enter your callback code here -----
# b8 @% w% M6 Y- o( q% T7 w/ p        }
5 F0 K$ K* k+ K2 d2 r% t        catch(exception& ex); j) ^, L% F9 o+ F
        {
0 ~/ Y" @& G/ k* F, q( K            //---- Enter your exception handling code here -----
% _/ _7 j9 `: i* C4 Y( g" P. B, m            errorCode = 1;
  |0 W3 y0 g1 v* F2 I  e: E            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());! X6 S- Y6 L- A: X! i
        }
5 f8 ]' h7 x7 f% k* V! y        return errorCode;8 C* T2 H" g6 F1 C7 \# o
    }
6 I2 \# T1 {) i( ^# X( G- p* o2 C4 p7 _2 p' D* V8 t% E2 v* Q8 i, _
    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)$ }+ S+ o& f/ k2 A
    {; y; `7 t1 K+ T& a2 e
        try
" n3 v0 a# a+ ?. p" G$ A7 s% j( i        {
5 ^# a  p% N5 h% O9 v; p, g) t            if(block == face_select0)
5 C& L* f0 O% l  }# c            {
6 m1 ~; }/ R! r. t7 X            //---------Enter your code here-----------6 ^3 ?! N& O  J% ~- J8 U
            }
6 i% S0 i6 @8 b  p2 h2 S! o8 ]0 Q            else if(block == face_select01)
/ s' a$ l" x6 ]( K            {
. ~- o$ y+ B; A6 S1 t' O            //---------Enter your code here-----------8 L- T4 z7 W" W% j% v, g5 Q
            }/ f8 P( T; C& K/ R7 M' j
            else if(block == bodySelect0)
/ D' @; k! P( G, E            {% M: w2 M- p: N  w2 g5 N7 H3 x
            //---------Enter your code here-----------
' V4 B3 @0 n. z1 @5 W5 o. E            }
" r: G; m* Y+ K7 B; c2 F            else if(block == bodySelect01)
- P7 s# f0 ^7 k* G            {
* i- ~# D0 n" F$ n) Z0 q& D' q            //---------Enter your code here-----------( _7 T7 v% N" F  |4 B
            }& @) o; G' P1 Q8 k- b2 x" f
            else if(block == string0)- z+ E7 s6 a* d. v( b1 W
            {, \  c( h1 M% {+ l% d6 r* }, q
            //---------Enter your code here-----------/ C4 n; ~" C( V4 g- e" {9 h
            }3 N$ r+ v* d" E+ [2 _: u! W* i
            else if(block == label0)9 Q5 N2 d' c' X* s+ k( p
            {, m# l# k4 j0 ^3 G& C
            //---------Enter your code here-----------
5 X4 l! W* e( Z! Z5 @/ j) G3 X            }
& D% ~8 g* C0 G5 a            else if(block == string01)
5 e$ F5 R, a, ~            {5 k$ F( p2 U$ q" }6 w
            //---------Enter your code here-----------& B" [' k' r, m
            }
- e) J5 c+ d1 H* V. H1 p            else if(block == label01)0 B  `3 V: Z. R0 {
            {0 p* F+ p% U9 @
            //---------Enter your code here-----------
4 t: t4 s' s/ M6 m            }4 r) ^8 l; C6 f3 E% a5 f2 X) _
            else if(block == label02)
/ Q" d9 k. G. S) w7 Z            {
4 f7 ]* q5 X* e4 V- g            //---------Enter your code here-----------; e# I! E# }9 H# H
            }+ ^# b  b2 f, V! M/ @' K, H
        }. s9 X: y% [5 L9 x; Y
        catch(exception& ex)
% K5 J3 u  @4 p6 a% x( p# s) }        {$ J+ I* I1 [* z# D
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
' G$ u/ K8 i; ]        }3 E9 L6 W! L0 I
        return 0;) Z$ j* O: r. n' D6 J7 v  ~) |
    }' y, b3 D# S+ z
    6 P- s" _6 W2 G
    int Shrinkage:k_cb()
4 d( b  _( T) j7 H( J    {
& F0 ^) z9 w" `3 H; Z        int errorCode = 0;
1 C3 f5 a+ r( H% z2 @- Q2 V        try
, `8 I8 I9 s& }7 D7 {        {8 F7 ]. }0 Y/ N/ S/ o. j
            errorCode = apply_cb();& P1 n  r; H% O, L) s' j$ F
        }7 Q0 |1 b8 _$ s& p. e7 S9 ~0 y
        catch(exception& ex)
# F( y! z. q/ X, H4 N4 a- }        {  s/ p% f6 s% ]  c2 I8 E
            //---- Enter your exception handling code here -----7 ?* y5 O' b9 P* B6 U1 b
            errorCode = 1;
; ~: i, C% Y" k$ _) E% r. z# _) }4 r            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
$ C' p% v; @7 e3 I* W; A" |' h5 ^        }5 K6 q% c% C2 M2 P4 |
        return errorCode;
% S8 }2 u& D# _3 B+ E6 i    }7 z. `( m: L! q) K! z+ i9 r
    8 v8 m8 Z8 t, X$ g4 j5 s& Y/ A
    //------------------------------------------------------------------------------$ n5 h( H- M" S6 ]3 z* u0 S8 B2 I
    //Callback Name: filter_cb+ c  r7 s! e  Y. s; e5 Q, c: p
    //------------------------------------------------------------------------------
8 r) i) W7 b, n    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)
2 q6 N; r/ j* z* Z    {9 b7 _- M0 m9 d$ Y. V
        return(UF_UI_SEL_ACCEPT);
* L1 D2 c: f; v" f) D    }
- T8 c# B6 j2 W& N/ Z    ' u% F) h8 v; K. T: v
    //------------------------------------------------------------------------------" b( O4 V# L! W; e2 Y8 Y* r
    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus); |; b% }$ M+ k
    {* }  l4 z# h5 b% }" J' E+ p
        try
- o4 [8 f) S7 l# n$ y) A        {
$ S% E1 `  L2 Y  V            //---- Enter your callback code here -----" s) [# S" R6 W* o5 ^
        }
# ?' ?* m$ i' |2 d) r        catch(exception& ex)- V6 P% F8 s) g+ y) [1 ^
        {: `# b3 U9 v4 e5 K, q
            //---- Enter your exception handling code here -----( d. H( R) x) e. G$ _
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
4 l6 L& B0 N; E& n        }
# W+ d$ B8 c! L4 n    }
! ]. e; l% w2 }1 T) P! w) j8 o0 B    9 t& u3 n# U7 ^" t6 _' L) x
    //------------------------------------------------------------------------------- z! ^! K2 {$ s5 `9 f$ ]/ ^$ E
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
6 _# J0 p  ]8 ?" }    {2 s, Y& O" {9 F, j9 R
        try" [- l& K2 W" o$ w+ l8 t
        {
2 b7 P- Z9 j1 h& q/ c            //---- Enter your callback code here -----4 u5 D! s8 b) H7 o+ R% D* U
        }
/ Z7 [) m! ]; ]# {# _6 I        catch(exception& ex)4 {, r+ o; p1 M# J% F( H( p
        {
6 W7 @4 G4 H* p0 L( j# z/ k: M, B& b# D2 P  A+ {' j3 U7 [
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
( w$ s9 q: _( A1 }        }* p. T& O& b0 w, {5 d
    }
- `5 E- h2 ]3 K5 g# J3 V0 T1 q' N; J
& @, s1 @4 X3 _) N  C- d/ |/ Y7 @+ b- t  u
22.jpg

application.rar

9.79 KB, 下载次数: 3

上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了