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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x

6 T5 A6 F) W5 RTeamcenter二次开发源码分享: Revise 版本 升级版本方法/ m+ \! Z2 j% f  W: @8 K, A

8 k" ^& N. K* z0 [0 k+ q
) Y9 r$ j5 b& P) ?  R# h[mw_shl_code=cpp,true]#include <TC/emh.h>* W( K. y' O2 b! h& O
#include <tc/tc.h>+ C, C) o# [% u" J% H. o/ h: ~
#include <tc/tc_startup.h>
: t- m" ?# F0 u# S% K1 q, j#include <tccore/aom.h>
5 f: ?& \4 v' V- R6 B1 i# l7 `#include <tccore/item.h>- o) @, B: J) ^

! W5 m' E; Z! |0 K0 }2 B#include <iostream>
+ u' x; @  p0 m% C$ L1 e* }#include <vector>
) }: H/ w1 t5 |: Y. k#include <base_utils/IFail.hxx>) J& \- Z6 a5 d- k+ I/ H, x; u
#include <base_utils/ScopedSmPtr.hxx>
$ f" Q* R5 R3 a; B! [) b! P#include <base_utils/TcResultStatus.hxx>
0 b. Q  u9 W: _$ ]#include <metaframework/BusinessObjectRegistry.hxx>, b. G7 W8 m% A! b  g& c0 i2 L
#include <metaframework/ReviseInput.hxx>3 E8 M7 t% H; P1 P% n
#include <mld/logging/TcMainLogger.hxx>- Q- J4 T3 i  Y5 [* u+ d+ }
#include <tccore/ItemRevision.hxx>+ w+ F5 J) k( k! a  @# ]
#include <metaframework/BusinessObjectRef.hxx>
- w. S0 P. @1 D' C, \* |- u#include <metaframework/BusinessObjectRegistry.hxx>: @) @  u, @% c4 K
#include <metaframework/ReviseInput.hxx>( o: T( H- \: b+ h5 Q+ S  P
9 Q" r5 b  h2 w( J7 P- B, i
using namespace std;4 P% H- H4 w9 E' ?- W
using namespace Teamcenter;
1 [& G6 p( e- z: i: a6 s+ F, h: Husing Teamcenter::Main::logger;  [. u2 @' c+ C
  C' A3 k7 G4 w
int ITK_user_main(int argc, char* argv[])% N# }8 f7 Z8 f$ o, v* N
{
$ N( q7 [5 u& e  g( h3 `2 i3 ]    int ifail = ITK_ok;
$ |* ?6 z; A4 _/ g5 W; {% o9 H3 I    ResultStatus stat;
0 d$ A( Z& @  n. Y; `. Y    try# a: U0 b& ?3 s* @/ Q% ?, ]6 j
    {! V7 v; I- m( a) v. @& ?( v
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
" H5 z4 v  n' |: k        stat = ITK_auto_login();                                          
6 \2 o( _1 B. v        stat = ITK_set_journalling(TRUE);& y" v+ ^# h5 \3 R: B& o4 s
        ! l3 z$ ], _6 g- p( X. @
        char item_id[ITEM_id_size_c +1] = "0000000";/ R' j0 m- u, g1 L. ~: Y
        char *i = ITK_ask_cli_argument("-i=");
4 A" g5 V, z+ S2 M0 q* [+ T        / }! Z8 }0 m7 U
        if (i != NULL) strcpy(item_id, i);* U" L7 `7 J, c8 J
        cout << endl << "    ID: " << item_id << endl << endl;
, D2 ^/ j* L: ~% T9 M; r        : Q! @) b" x. c+ p7 y! k+ J' M
        tag_t tItem = NULLTAG;# F: d% F% \; k) j
        stat = ITEM_find_item(item_id, &tItem);; T- A9 z  g# l
( c6 e( p/ A9 Z( G9 Y% L
        tag_t tLatestRev = NULLTAG;
1 u& B& Z. t9 _! `5 m2 P( _        stat = ITEM_ask_latest_rev(tItem, &tLatestRev);
. x, C+ S+ C8 x+ B+ b; Q
# T. a4 `3 H3 {        char *pszType = NULL;, C( E/ p. A5 B' B; c
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
( K. G" Q) z( B2 ?4 I( q
& {8 l7 t4 H3 I+ j2 t        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
* Y* Y1 m$ `, S8 Y# I        0 d8 m8 g# ?$ Y7 m, j( ?6 e1 i
        string revOp = "Revise";6 @. J/ j' }6 g  G+ e6 x2 |
        ReviseInput* pReviseInput =
# O! ]" z- E. D0 w2 H            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));
% O: Q2 [: F  v. _2 @( p# S# ^& V. Q( I
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
* F0 Z2 i; l2 G. @4 J( u7 V        
3 @( P6 `, f' l- q        vector<Teamcenter:eepCopyData* > deepCopyData;" N" m: N5 ^3 f. s4 k
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
/ h3 h' Y( q: I: [        " f9 H% [* F+ S3 z
        pReviseInput->setLogical("performDeepCopy", true, false );
6 x3 }+ g' a* T" w) Y6 k        " K( ]4 Y' a: l
        tag_t tRev = NULLTAG;
$ A% O  c: u6 s! m$ U: z        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);) x" ~3 G* w* P! D" l# [

8 _6 M( ^+ X  Q( _' H        stat = AOM_save_with_extensions(tRev);. S" `; z$ F, s: Z+ |- M
        
. P. I8 c. c& O; V        char *pszId = NULL;& {; u. P$ i# l5 j5 O% r
        stat = WSOM_ask_object_id_string(tRev, &pszId);6 X* x! p( d6 w( [. l( @
        cout << endl << "    Object String: " << pszId << endl << endl;; _/ A% R% B/ F  _  K  _7 Y! a
        + f) l) i+ |4 |; ?6 ]; W
        if (pszType) MEM_free(pszType);2 E2 G( ?2 q& e9 L3 |" c: c$ k
        if (pszId) MEM_free(pszId); - p9 C0 M0 g3 n- L
    }7 o' m" E; P; C  t# `% M
    catch( const IFail &ex )
3 D  i( \7 L6 J9 _5 Q: T    {
  H8 m' B4 k1 e8 f: b% Z        logger()->error( ex.ifail(), ex.getMessage());+ {8 `9 }0 y$ O
        cout << ex.getMessage()  << endl;
; M# \- z1 S" F# b: {1 \5 \& k; d        cout << "error " << ex.ifail() << endl;        * x9 @1 m$ K( p' [- p! I1 x
    }8 a" a6 Y9 {5 I. q0 c; x
    const char* syslog_path;7 R  ^2 E; w; P/ `' N
    syslog_path = EMH_ask_system_log();: f  \- w; S4 F- G% I
    cout << endl << endl;
; I( o3 l0 L  x, H/ Y    cout << syslog_path << endl;4 G, r! X0 P' a

, p% |  ^# z3 O* y    stat = ITK_exit_module(FALSE);                                        5 C) v" d; `) w& C- p
    return ITK_ok;9 `; ~8 V. y& v' c$ c$ ?
}[/mw_shl_code]) S; R  P. g* c9 O& X7 y; I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了