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

Teamcenter二次开发源码分享: Revise 版本 升级版本方法

[复制链接]

2020-2-8 09:27:38 3014 0

admin 发表于 2020-2-8 09:27:38 |阅读模式

admin 楼主

2020-2-8 09:27:38

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

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

x
' \2 m2 t' I) ]6 Y) }
Teamcenter二次开发源码分享: Revise 版本 升级版本方法3 e: M0 h2 ]: t

9 k3 `8 o  Q$ v/ D( d5 f6 V7 B& d# g, r! V+ I* Y/ h
[mw_shl_code=cpp,true]#include <TC/emh.h>+ U9 N' e: b' M2 s
#include <tc/tc.h>  n0 S( O+ W; j0 q4 T
#include <tc/tc_startup.h>$ E6 v2 n/ l4 _: g$ |
#include <tccore/aom.h>
0 F+ s* {' Q. t  c+ ]#include <tccore/item.h>
1 x: s0 b& F' r( W1 K; h1 W
9 R: ]+ c" n/ ^#include <iostream>& b0 @5 u" r1 h6 R! }1 ]
#include <vector>
  p" f, d- o" G" z9 F* P8 \#include <base_utils/IFail.hxx>& f& |0 `( y# x' M6 a( T& O& a$ l
#include <base_utils/ScopedSmPtr.hxx>, I% y/ h/ @% Q+ |% I% K% e
#include <base_utils/TcResultStatus.hxx>" H+ v7 E5 o' `2 q0 ^- q
#include <metaframework/BusinessObjectRegistry.hxx>0 M/ ?2 r& Q: |$ o1 C" O. X; c
#include <metaframework/ReviseInput.hxx>, B) D% _. w$ \9 c9 i9 Q
#include <mld/logging/TcMainLogger.hxx>" F% D! ^% E) t; g8 n' z
#include <tccore/ItemRevision.hxx>8 Y! P' R. Y6 s' l% z. E) ^
#include <metaframework/BusinessObjectRef.hxx>
0 ^( v: K' m4 e* S#include <metaframework/BusinessObjectRegistry.hxx>, o: _* k, Y7 U  o; D3 W/ k; I
#include <metaframework/ReviseInput.hxx>1 ?1 X8 g% w! \" l" Z
/ M. ?. O- j1 V; t+ Q0 [
using namespace std;1 q7 O! K, u" E# E6 o
using namespace Teamcenter;8 C; J, p& e( P3 K' U/ h9 T. x- s' h
using Teamcenter::Main::logger;
) h8 O: N& a' I7 F5 S6 C8 h7 D1 G
7 a% x+ w. _) Qint ITK_user_main(int argc, char* argv[])
* |' e" f9 T7 G0 O2 M{
* e; [3 z2 G! z    int ifail = ITK_ok;
; M4 c! I( N8 o9 q9 i    ResultStatus stat;
4 D: X8 }( Z) N! T' L; u" |  M    try9 y' `1 L; G$ r: {5 g
    {
3 V( n* l. S9 `  u% E& `: J        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
9 L2 e& A' l( h4 ?        stat = ITK_auto_login();                                          
# J' D2 e! p  k& T9 I5 k        stat = ITK_set_journalling(TRUE);! ^2 h" A* s6 e0 x  }, L
        % m) _- N3 J) R' P9 o. p4 e
        char item_id[ITEM_id_size_c +1] = "0000000";: b5 {. A1 T; t" K$ i
        char *i = ITK_ask_cli_argument("-i=");
9 \* I+ ], i+ y6 F        
9 z( r' P. U" ?0 W+ t2 X        if (i != NULL) strcpy(item_id, i);& X0 Z) f; T7 c
        cout << endl << "    ID: " << item_id << endl << endl;
  W0 j6 ~% g/ H: c- W2 q        1 T3 e0 z/ S! x! H6 s4 j2 T/ ]- P9 _) Z
        tag_t tItem = NULLTAG;
: ]" g! ^6 r# c        stat = ITEM_find_item(item_id, &tItem);
1 m# o+ B3 z5 a+ F$ @& B6 `# A1 q# v# H1 A
        tag_t tLatestRev = NULLTAG;
9 J* m- D1 b8 I: W4 L' n7 V        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); : c# f% W5 R$ V2 u8 |* p8 C' P2 @0 U

0 x- t, _  D  K9 l) g        char *pszType = NULL;
& {" ^! M5 l6 x1 n2 S        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
/ @2 {. y' D" p; a2 t! p8 X7 G
        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();$ I! I; g' }0 ?
        * N7 \3 c$ H2 r! Z
        string revOp = "Revise";
. Y+ m- E1 K4 L9 }! \% j        ReviseInput* pReviseInput =
; X: \) y6 S# m            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));5 L/ j) U/ L% C% W7 L) _
, _5 g! A" D6 o& Y7 O/ ^
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
/ U; `" t/ ^& L0 {" W, @6 E* R" L        - d7 i$ K' l3 d
        vector<Teamcenter:eepCopyData* > deepCopyData;! ^. y9 h5 i1 Y" U' }9 M( {3 @5 T
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);5 R  g# d5 K' C1 J
        - E1 m" R5 `1 i8 \; }$ ?! R
        pReviseInput->setLogical("performDeepCopy", true, false );
0 p' J7 g6 M- S        " J& z! F: K3 l8 G- q
        tag_t tRev = NULLTAG;
7 s2 T" }8 m2 K7 r" I        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
, w7 k) C  [0 t3 c1 x- J5 `# W
9 X0 a+ O. }7 Q8 K        stat = AOM_save_with_extensions(tRev);) z& l" }  u/ }8 W
        ) I- L' f( ~- q6 Y# [9 }) z0 z; M
        char *pszId = NULL;
( M1 U1 p; v3 f3 ]6 b        stat = WSOM_ask_object_id_string(tRev, &pszId);
2 R( S/ E2 k. `+ u( J        cout << endl << "    Object String: " << pszId << endl << endl;
" M$ w  |' Z2 ]5 j) b        * g/ N1 A5 P- D7 x2 O0 g' R8 w# |6 B2 y- v
        if (pszType) MEM_free(pszType);4 C0 x  M8 M/ `$ ?' W3 R" R1 ^
        if (pszId) MEM_free(pszId); - W' e, O3 S- }" U" t( }' }
    }
3 z$ s/ B4 c' }& Q; _    catch( const IFail &ex )
- h6 S4 g3 a# P3 s5 B4 ?    {
( ]) `: j9 N9 c+ y1 h        logger()->error( ex.ifail(), ex.getMessage());# V4 R1 i7 e1 t0 k
        cout << ex.getMessage()  << endl;
1 B6 o$ D! O$ ^5 D4 l0 s: [- ~        cout << "error " << ex.ifail() << endl;        
- r& J, H+ I$ X* _    }
) Q7 G% k" c3 ^% o/ n    const char* syslog_path;( ?: }% D5 u, h& ^, ]' p5 V
    syslog_path = EMH_ask_system_log();
$ r4 c0 M( I; H    cout << endl << endl;8 {& V7 r" G( z) i
    cout << syslog_path << endl;
% B- F3 N1 `7 L0 e- M9 x2 l1 C, K% |6 w7 Z& u5 c
    stat = ITK_exit_module(FALSE);                                       
2 D, w+ _- C; e3 C    return ITK_ok;0 j! c( R& t; F
}[/mw_shl_code]+ ]' f/ n; f% Y$ h9 ~+ M+ _4 L6 V; ^
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了