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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x

  d. }& T. N7 w6 H0 Z7 j: `Teamcenter二次开发源码分享: Revise 版本 升级版本方法, k, F8 r  C; R$ ^( O) ^' C

" v, x% O5 [+ b3 V* Q+ |5 y+ Q0 ^3 L* l+ k# F
[mw_shl_code=cpp,true]#include <TC/emh.h>
: c' F5 c5 e0 O; y. W, G#include <tc/tc.h>
5 I3 e; _. B( L7 A9 {( e#include <tc/tc_startup.h>
& ?3 K( E% _$ \+ g& @1 v2 a2 P# t#include <tccore/aom.h>2 n/ q3 @; \  G* l0 L7 Z( j
#include <tccore/item.h>
7 g7 V9 K/ |7 W# I2 F7 w* v9 U, [( z
2 G# x, |: R" Z1 d8 h#include <iostream>
5 G4 c* k7 O2 q7 n#include <vector>; ]  A. ^9 r1 u% }$ Z- K
#include <base_utils/IFail.hxx>2 [4 m6 i% g. ^$ \7 p- e
#include <base_utils/ScopedSmPtr.hxx>
" o3 B* k$ Z% [#include <base_utils/TcResultStatus.hxx>
# m, d' ^5 k7 Q0 w#include <metaframework/BusinessObjectRegistry.hxx># k( T+ G: a: W4 W
#include <metaframework/ReviseInput.hxx>7 [: P1 k( l4 B5 H, s& E( j. G
#include <mld/logging/TcMainLogger.hxx>
1 b: l5 e5 W: \1 H0 o4 R8 h4 r#include <tccore/ItemRevision.hxx># e" ?( {. D/ P& W9 w2 w
#include <metaframework/BusinessObjectRef.hxx>7 [8 R1 m( h* A) _7 f3 O! h
#include <metaframework/BusinessObjectRegistry.hxx>6 X) p. c% u+ \$ \
#include <metaframework/ReviseInput.hxx>3 W: z6 I# Y  v) P1 y( w( e. q
0 v" I* a( s* t& h4 [( i2 Y
using namespace std;
" Z7 C9 R# v- g8 ?- A. [8 Rusing namespace Teamcenter;
. C2 l, u( Y9 Rusing Teamcenter::Main::logger;
# W0 E9 `8 C/ a3 J7 {  z7 w! x' w+ h
int ITK_user_main(int argc, char* argv[])7 }  z5 N2 Q  ~. e
{2 v8 T- ]; V0 O4 X' f6 P( r
    int ifail = ITK_ok;  @. K5 I5 }5 f) R
    ResultStatus stat;
" R' x# O+ y2 _7 ~$ V- r8 q* M5 c    try
' A+ |+ o/ f% l: f    {- u8 C% M& ?( F2 p
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
" s: I3 y! c% B+ N4 J# l        stat = ITK_auto_login();                                          
" Y* p; W8 n1 E1 s5 O        stat = ITK_set_journalling(TRUE);
3 ^  x5 }7 E& y        1 ~4 K1 v2 f; d$ a/ `' B( M) K6 W
        char item_id[ITEM_id_size_c +1] = "0000000";$ S5 Z/ s: L0 m& w8 |+ h
        char *i = ITK_ask_cli_argument("-i=");( a; G$ [8 ]( U7 B
          {: O9 s4 g4 z
        if (i != NULL) strcpy(item_id, i);
$ ?$ X; N& ~( ?: Y2 A        cout << endl << "    ID: " << item_id << endl << endl;
7 ^) q4 W% N% _# G        
7 L3 G1 P: \7 {8 |0 P        tag_t tItem = NULLTAG;
2 `1 i* ~% {1 D        stat = ITEM_find_item(item_id, &tItem);
1 R/ B* I0 h- h$ o, M9 d& o$ ]2 l+ }- Y' L1 j( J
        tag_t tLatestRev = NULLTAG;2 A1 @5 C& B7 e
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); - a; l0 S7 b9 ~  o+ S. y# `
1 ~0 o$ h% U' |5 C5 k) Y
        char *pszType = NULL;1 R7 l3 \- {2 ?6 V+ L2 s
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);7 U4 u: _5 m+ C4 B, a
/ e. H7 @4 U; u+ p" @2 Q
        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
$ K7 Z6 a2 }6 t        . v. a' B' e6 Y9 N' s
        string revOp = "Revise";; T1 L$ `$ \4 X; y
        ReviseInput* pReviseInput =
6 ]( U6 m- i# a0 S$ v7 O            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));
! v% G: d1 [2 Y5 G; E, T& W3 o9 x  o8 m  a6 E7 G6 Y4 f9 d
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);9 S0 X" |9 |1 [4 o/ x; [
        ( o! Q7 J5 g6 n
        vector<Teamcenter:eepCopyData* > deepCopyData;" k( f( S% k1 q2 B5 f$ _" i" k
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
5 m5 i$ A( c/ X' t2 J        6 U/ Y) F4 g9 h' F" t' o
        pReviseInput->setLogical("performDeepCopy", true, false );
! {( s2 K1 Q; b; {0 `) ^$ [4 m: h        
: [# g; m0 @/ B% j" j        tag_t tRev = NULLTAG;) o4 w6 ]/ o* U& g% C+ b& |! F* I
        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
/ a* P+ B3 T- D) F) V( y$ K& Y
: I; q; W+ U" B' g        stat = AOM_save_with_extensions(tRev);
! h% u( V$ H" X        
  D$ }) D; M- u2 h- P; o        char *pszId = NULL;4 f. d$ o% f$ W3 A1 D! y. ?9 p
        stat = WSOM_ask_object_id_string(tRev, &pszId);# S! e/ V2 g, n$ ]
        cout << endl << "    Object String: " << pszId << endl << endl;
0 }3 z: N/ e& o        
' N% n, o# Q9 Q' l        if (pszType) MEM_free(pszType);0 B/ d) @7 ?% x' K" U2 f
        if (pszId) MEM_free(pszId);
! @, b4 Y6 B5 Q( h) R1 l    }) b+ L( z$ D0 ^3 v# C
    catch( const IFail &ex )
3 z& G. N9 e) x' E* J  N    {- x: L& X: o# N/ g, u
        logger()->error( ex.ifail(), ex.getMessage());
* ^9 d' X/ g6 v  o! D        cout << ex.getMessage()  << endl;
  Z) K% r6 L! H; }' c) i% }( b        cout << "error " << ex.ifail() << endl;        5 C7 C5 R- H7 `9 `$ h3 |
    }: p( s! a* k8 [$ O$ T
    const char* syslog_path;6 c, Z1 O0 `3 h: [
    syslog_path = EMH_ask_system_log();
. |( Z+ T! p1 u3 ?- g6 i    cout << endl << endl;
; J* w: H5 K1 J4 r    cout << syslog_path << endl;+ T5 T  A) J3 j1 C* }% c

/ _* G# D) m2 ?    stat = ITK_exit_module(FALSE);                                        # [) r5 K: L# i5 L
    return ITK_ok;( A+ g! C* ^0 O
}[/mw_shl_code]: j' s. D1 v) f8 f) L3 D8 H, t" a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了