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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x

( e8 Q& ^" P+ ]Teamcenter二次开发源码分享: Revise 版本 升级版本方法
$ V2 t4 u, {2 E
$ ?( l- P8 O( c9 w: I; |$ @7 @: I. E2 R) s" U* l' ~
[mw_shl_code=cpp,true]#include <TC/emh.h>6 Y+ ~: M) H+ }7 B/ f
#include <tc/tc.h>
" L$ Y! D$ P1 ~8 D1 X#include <tc/tc_startup.h>
' O/ R: Q7 _0 u7 G#include <tccore/aom.h>3 I. U, P& l5 c  e9 o
#include <tccore/item.h>
8 O5 M' z$ L4 u% ^% z* l6 v9 e4 l, }$ b/ B/ }2 D( v4 T7 x+ C
#include <iostream>
. G+ @$ `# t  g* @8 W  E#include <vector>. k  r7 b" T  w( a, I" j
#include <base_utils/IFail.hxx>
5 U5 x6 q. s" q1 v8 [- O3 n9 r+ f#include <base_utils/ScopedSmPtr.hxx>/ @1 {: O$ S4 r2 |
#include <base_utils/TcResultStatus.hxx>
7 v; N3 |: T0 ?2 p& o5 L1 }#include <metaframework/BusinessObjectRegistry.hxx>
* G* c$ O& z( |#include <metaframework/ReviseInput.hxx>; r0 U. c9 }' G: A
#include <mld/logging/TcMainLogger.hxx>" H$ h  a$ q  a  N. o5 d* J
#include <tccore/ItemRevision.hxx>
" h" d: r& d6 S3 H#include <metaframework/BusinessObjectRef.hxx>
3 I, Y" l# @% t. |+ n3 ~#include <metaframework/BusinessObjectRegistry.hxx># F$ z6 z# {6 F0 O7 a* }; u1 b
#include <metaframework/ReviseInput.hxx>" E5 k& }: I3 A0 b* U9 D8 E2 T. d8 G+ n# U

5 }6 G. ?- q4 U1 ], G/ kusing namespace std;
- C$ l) o' o4 w0 Ausing namespace Teamcenter;% q9 f3 D4 O6 u9 e1 U4 P* c
using Teamcenter::Main::logger;0 n' P& c# j$ w0 u5 q, ]& e5 Q
5 H; t, V6 |* l4 {, P
int ITK_user_main(int argc, char* argv[])
& |) \+ Y- Z" I/ l0 o{2 T" }1 U( [( k5 R- Z
    int ifail = ITK_ok;$ H7 ?0 m! D) P
    ResultStatus stat;2 C' L) Z( `/ _9 q5 L& x; k! N
    try$ t; t5 D; C9 a* o7 _6 b
    {" \" R9 z* g, @- M
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         2 f8 l9 \& u+ W+ d( f
        stat = ITK_auto_login();                                          
: w- h; ^$ V) h  E1 A. ]        stat = ITK_set_journalling(TRUE);7 P* T+ K; l4 s/ u/ \, z
        
" G; D" x# N% j% m7 @        char item_id[ITEM_id_size_c +1] = "0000000";: }: v. V% _; M, l; w: s- k
        char *i = ITK_ask_cli_argument("-i=");+ _, _5 J( p% G
        
% u: ?7 s" R% C% L        if (i != NULL) strcpy(item_id, i);
& B) ?' ]8 d  Y! V( U8 F+ g0 h8 U        cout << endl << "    ID: " << item_id << endl << endl;
5 J/ ^; Z6 ]1 N2 m1 M        
# u1 @3 m( ~( m; G) W) W9 C        tag_t tItem = NULLTAG;
, }' d( V* o' ^3 p* }        stat = ITEM_find_item(item_id, &tItem);& u/ C% T* s6 n6 _8 k1 }

: O: |# P! E+ [$ D0 R        tag_t tLatestRev = NULLTAG;5 u; [# R% H' p/ W& Y4 n4 z
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev);
6 d0 h* ~; ?! v/ a; d
; I# k3 W0 l- B5 \# u        char *pszType = NULL;$ t! o( d; r5 k# L. [( P# s
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
- d+ h7 G5 Z0 O7 A' B. p$ Q  g' J) x, p/ E# o* {5 i# y
        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
; \$ N! w  t/ ?6 X% j        4 t: l  k; p: O6 m: \, p1 @) J' D) L
        string revOp = "Revise";
, \: P; O0 `# t9 N: Y1 A* x( X        ReviseInput* pReviseInput = $ F( f4 U' K% Z  s
            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));8 J% `, J7 M! D5 p
" K! T3 n, q4 i: }1 l! e, t
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);3 P+ Y* p/ q* j( Z  @
        . W& ^3 G# w0 Z) G
        vector<Teamcenter:eepCopyData* > deepCopyData;0 H6 I+ v9 p& X/ k( v& F  A
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
& `$ Y4 X; F- `7 c8 D& {: Y2 t        
6 n  W# }0 g" `        pReviseInput->setLogical("performDeepCopy", true, false );
. i! E3 x# t" t* D% H        
+ u4 Y# K7 V& f" R6 j! E$ e        tag_t tRev = NULLTAG;5 M! N8 `0 l* _- p
        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
; c; |  |5 s0 J( ]
- n! N6 t; V9 x( G) ?6 A& ]" ]9 g        stat = AOM_save_with_extensions(tRev);0 x' n' e4 ~7 n6 U/ F% O1 \
        ! L+ |/ k2 f  ^" x8 p6 L+ p. m
        char *pszId = NULL;2 L9 X' w; W: ^
        stat = WSOM_ask_object_id_string(tRev, &pszId);4 W( E4 h; i7 y9 q& u8 K# j
        cout << endl << "    Object String: " << pszId << endl << endl;
8 U: P! b5 N8 E  @: g, w        
7 c1 }# M5 B5 x7 p9 \' G        if (pszType) MEM_free(pszType);6 R& j* c0 {% ^2 i
        if (pszId) MEM_free(pszId);
* E# y- q; J! q5 s; ?    }( {+ A2 l( r+ M7 w
    catch( const IFail &ex )
; F+ G* Y4 i( |# N    {3 y% g& G3 |3 K( X1 N. T: l' V
        logger()->error( ex.ifail(), ex.getMessage());
3 B, f, d6 e' I) W        cout << ex.getMessage()  << endl;
- u1 j' }; N. d0 M6 G        cout << "error " << ex.ifail() << endl;        6 J4 `5 c; @& A2 s5 U
    }
! @4 X' k& P( p) _& P    const char* syslog_path;
5 ]+ D6 v9 [7 ]8 d% k8 W    syslog_path = EMH_ask_system_log();
: i) o* K3 f0 J  m! W    cout << endl << endl;
* m3 @- \0 E. X    cout << syslog_path << endl;
$ P" J0 K" \" F, B: a7 n7 E! g9 Z+ C
    stat = ITK_exit_module(FALSE);                                        ; g5 L! h6 L: H2 y9 \+ g
    return ITK_ok;7 Y6 e* |& a* |1 k
}[/mw_shl_code]  P8 E! h% h7 E- v" H, A/ P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了