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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x

7 @4 W$ r1 n$ S9 ?2 PTeamcenter二次开发源码分享: Revise 版本 升级版本方法
: s  \7 [5 r  f# S. ]" N$ t+ U+ t0 {! x0 k4 ^2 {+ R
, L* S: H& r: `) u
[mw_shl_code=cpp,true]#include <TC/emh.h>; P5 w6 K, g0 ]2 i! `9 O) y+ N
#include <tc/tc.h>
1 a' m- T0 X# C# Y" r' z+ F$ v2 ~#include <tc/tc_startup.h>
% Q9 W1 U+ S2 c6 {2 E' Z: J( \#include <tccore/aom.h># K/ I9 x3 G8 N' j  b( _
#include <tccore/item.h>
9 g. x! Q; [# s4 h7 ~7 U
- z8 y# v4 o& N$ v% \#include <iostream>
' E8 g$ O& Q  d8 \: H# o% c#include <vector>
' d& m7 T- T' r4 a+ H#include <base_utils/IFail.hxx>
$ j  O) Q/ K9 d' L' u, @9 [" |0 s#include <base_utils/ScopedSmPtr.hxx>1 M6 @6 T9 g) k7 K7 T, d; r0 ^8 B( ^
#include <base_utils/TcResultStatus.hxx>5 a( I6 c7 ^7 x& m2 g. r/ x) m- C
#include <metaframework/BusinessObjectRegistry.hxx>
) `0 P! u4 s# m" d#include <metaframework/ReviseInput.hxx>" T  O+ H& C* V$ V7 c2 _% I; X
#include <mld/logging/TcMainLogger.hxx>% ]  H6 V3 e% L8 m2 q) h3 Q
#include <tccore/ItemRevision.hxx>
+ {+ x% _1 L( P& I#include <metaframework/BusinessObjectRef.hxx>' ]+ R6 W  W- @. x0 i# h
#include <metaframework/BusinessObjectRegistry.hxx>7 g! X( N0 {" E  R5 i$ b
#include <metaframework/ReviseInput.hxx>
4 Q* b% P) O& G: l* H5 d/ F
& z6 |6 q# O9 d6 W4 |/ ]6 \using namespace std;
/ X# y* F3 |8 G4 w' ^* `* ~' Musing namespace Teamcenter;
* u+ v/ S/ Z. k2 D0 Husing Teamcenter::Main::logger;
# Y& w2 k, V4 z& h+ Y& O' ]& t8 V+ ^+ B# L7 n
int ITK_user_main(int argc, char* argv[])
0 f0 C+ a8 Q& R8 V* H' @8 ~$ R{3 U  Y6 n% B( o9 `' c. h
    int ifail = ITK_ok;
" D  X. l, p- n+ B* b& a' c3 {    ResultStatus stat;$ Z+ E3 \6 E/ ?, M1 q7 s3 g
    try+ i1 p" ~% T$ l) [, s
    {* d8 V3 P$ g: a  L, D1 U2 F% o. K) ~
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         & p: v3 j* R; \1 W; `+ [
        stat = ITK_auto_login();                                          ' ~* o; A9 q0 x5 t. K( G7 d( e
        stat = ITK_set_journalling(TRUE);: N7 q6 s; T: f
        
6 O% S( M; |( f) v7 E        char item_id[ITEM_id_size_c +1] = "0000000";6 m6 z. K3 o6 z& I4 c' z" ^4 m% X
        char *i = ITK_ask_cli_argument("-i=");7 p2 w2 _! c* i1 n
        
9 d8 Q: z6 n% u% M7 U        if (i != NULL) strcpy(item_id, i);
% f1 @9 u9 a( |. x1 \. l4 K        cout << endl << "    ID: " << item_id << endl << endl;1 }+ v* k! s3 @/ `
        . f6 G- F! ?  _$ P" j2 g/ _% ?' B
        tag_t tItem = NULLTAG;$ Z- e# C5 V) c: O9 A  y4 b
        stat = ITEM_find_item(item_id, &tItem);
1 a9 H0 a. {; o3 Z
- r5 J/ m" O( `# ~, [        tag_t tLatestRev = NULLTAG;9 V# p% L& K2 M& b6 x6 r% ]
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); ; r3 m2 ]6 v8 z, @& w7 _3 E

8 R1 _1 n( n/ K6 n! r, b        char *pszType = NULL;
9 C) J$ e( Q% l# g        stat = WSOM_ask_object_type2(tLatestRev, &pszType);8 N0 z/ [% Y4 x7 `3 M% u# C+ r

5 S3 j; S( I  e        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
3 Y& W6 W5 U) W6 B% x3 c        
* D* N$ N8 J7 P$ F% E  u# ^: ^        string revOp = "Revise";
! H2 x5 i  y. y& }5 ]  L        ReviseInput* pReviseInput =
* g; n8 N3 D- C5 a            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));6 d# j( [5 a+ g

. F% g8 `  |9 R: ~- z4 v7 e  Y5 C        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);; b) v* Z$ L6 y  J* ~8 u. c9 ~
        
) c/ U. @) |* _, t* k: P- d# y        vector<Teamcenter:eepCopyData* > deepCopyData;2 |) H* E6 F& Z, q9 r9 f
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);* K5 K* A/ a, U
        
! g: b" v  C, c        pReviseInput->setLogical("performDeepCopy", true, false );
4 s3 e& ?: y/ k& g        4 x, d) `" j$ Q8 \4 M" T" K5 w
        tag_t tRev = NULLTAG;
% H9 a7 A4 w' h6 F! Q- S        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
  S- e1 Y/ [8 i& i# w# h+ C/ m
' q5 l1 Z5 Q) d. ], X& R7 f3 l        stat = AOM_save_with_extensions(tRev);
9 ]' [7 k+ ^# t4 i        ) j% b& g8 U4 H( H3 G7 v- y' o
        char *pszId = NULL;
! {0 b  S+ w* _+ ~7 ?$ d7 m+ E        stat = WSOM_ask_object_id_string(tRev, &pszId);" [/ J. d- T, S8 O. p! t1 ]
        cout << endl << "    Object String: " << pszId << endl << endl;
5 `+ c" b5 o4 _        ! }8 L; R: P0 Z
        if (pszType) MEM_free(pszType);: @" U9 c, d* G: F8 Q* x
        if (pszId) MEM_free(pszId);
" O  ?* ?) s4 B; ]* r    }, \- B  V/ d1 ~( G
    catch( const IFail &ex )
6 W3 @* a8 ^: G    {
. p' x  c; u9 v        logger()->error( ex.ifail(), ex.getMessage());) k" k6 i+ X6 B- Y+ W6 e& x
        cout << ex.getMessage()  << endl;
+ C" j" r. C$ Z        cout << "error " << ex.ifail() << endl;        
* i& ~0 b9 }2 z    }+ `3 j3 B$ `( I% Q6 j# f
    const char* syslog_path;$ m8 D/ X! N9 i
    syslog_path = EMH_ask_system_log();
1 X$ n9 F# s: e, g, @    cout << endl << endl;1 c! `1 C1 T) ~/ f& ?
    cout << syslog_path << endl;
( a5 B6 h, }' Z! l" B. Y1 a: L
3 @3 [2 z5 O+ {. p( ]9 E( {    stat = ITK_exit_module(FALSE);                                        ) D0 h- y+ t6 G" t2 d
    return ITK_ok;0 q/ [$ @5 n5 b
}[/mw_shl_code]. I7 m5 |  s7 G: {$ z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了