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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x
1 `2 l6 h. l9 z* i4 @! b$ u6 _
Teamcenter二次开发源码分享: Revise 版本 升级版本方法% g0 I; u2 N) Q
9 e: b/ N% D& K( I! O: F$ O
8 G6 s6 r# }1 ~0 C
[mw_shl_code=cpp,true]#include <TC/emh.h>  M/ @, f3 o1 F3 N4 o
#include <tc/tc.h>/ A  ]5 F4 Z4 N) h+ A) w
#include <tc/tc_startup.h>4 r% A4 s+ Q5 c5 |" n+ E* f& s' }2 K
#include <tccore/aom.h>! F! y; t/ [/ O  n. I
#include <tccore/item.h>( `* g- L3 v$ h5 y+ ~* X$ B# ~) t
, S6 Z3 {) [  R
#include <iostream>0 t+ X; F% B# R
#include <vector>3 l9 [" e# C/ E0 p
#include <base_utils/IFail.hxx>8 f' E1 d* b0 M# N* t6 r
#include <base_utils/ScopedSmPtr.hxx>- m5 k( ~8 l1 t
#include <base_utils/TcResultStatus.hxx>4 O% c' e; E% Z1 t* l/ }
#include <metaframework/BusinessObjectRegistry.hxx>
( \( e. v) `6 x  U0 F) [" C#include <metaframework/ReviseInput.hxx>
, ?7 ]3 W9 Q) }2 t) g% p" q#include <mld/logging/TcMainLogger.hxx>
1 S7 y. v" S6 k. l#include <tccore/ItemRevision.hxx>
/ Q$ g9 `) c: l" k  ^. q% l6 _#include <metaframework/BusinessObjectRef.hxx>+ {$ I- v0 g+ z! v: [9 N
#include <metaframework/BusinessObjectRegistry.hxx>
  I8 C9 }% z' F* n#include <metaframework/ReviseInput.hxx>
! v+ Q3 \, r8 ~/ {2 l3 o  i# u' Z) h5 ?8 z' e
using namespace std;
, y  L/ s' ?0 {: f- Husing namespace Teamcenter;
3 m7 O* D3 V6 I; k  ^& Y% v9 Gusing Teamcenter::Main::logger;
2 L8 t$ f6 f; y8 ?; ]- @6 ?) b2 D/ ]" y1 ?$ }1 A
int ITK_user_main(int argc, char* argv[])
  w) |4 F, J9 x, j' U3 v{& x! n  \* I) h0 u/ h8 h& Z3 r
    int ifail = ITK_ok;. T& u9 y0 Q9 h+ c) J% t: \
    ResultStatus stat;6 v6 _6 x9 E1 q6 n
    try8 C, M7 A- \5 S5 f7 V) L+ A1 a4 D0 S
    {
- U1 ]2 d+ H% G& B. m5 ^' r        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
! ]( Q7 _6 X4 k% f' K  n2 u        stat = ITK_auto_login();                                          5 ]6 q( ?, Z; m* V" L
        stat = ITK_set_journalling(TRUE);
  K# x+ k' R$ P; r        
$ K9 h7 b4 b8 Z+ S        char item_id[ITEM_id_size_c +1] = "0000000";4 C! A& x1 y6 F
        char *i = ITK_ask_cli_argument("-i=");% A8 d8 t# w4 o
        
8 @: {" X; |& d  d  N        if (i != NULL) strcpy(item_id, i);  H2 c' J- m6 X4 `' O4 U* H
        cout << endl << "    ID: " << item_id << endl << endl;
$ Q+ V- s6 I* d; a9 i+ S5 b" I" ~        
' B; ~( E3 o8 W; T- r9 s" [9 n! c5 p        tag_t tItem = NULLTAG;
2 v; B: J0 I4 Y* m- {& M; K        stat = ITEM_find_item(item_id, &tItem);$ u7 j9 x$ a: G) |1 ^  p$ w( m, b

) C9 @' H" y/ Y! J        tag_t tLatestRev = NULLTAG;' S6 O6 A% s# Y! P1 x+ }+ I% P
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); ! E! m9 E5 k4 t* b

: e4 w, n$ I% M2 M, p4 `1 x8 `1 Z) v        char *pszType = NULL;2 a8 m+ ~: M2 _- c2 b
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);  A- L) V+ h+ R; s7 {  J0 r

4 s) [8 h: l4 l4 J        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
3 o. n& g( e8 w8 j; ~        
. F8 Z; \7 d& m, ~' @        string revOp = "Revise";
% b0 G: e- M; ?+ C        ReviseInput* pReviseInput = ) G/ A; |  y# a* _' V+ z
            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));/ z, m2 v# T1 e1 A. L

$ B: z# y! g( M( M        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);* c, Y+ h' ]+ D, T* n
        
8 Q6 ?0 p) ~/ i" t        vector<Teamcenter:eepCopyData* > deepCopyData;* U. e  b4 X, r
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);5 v* o  n+ }3 \, h5 i
        & `5 c9 z3 ~* s
        pReviseInput->setLogical("performDeepCopy", true, false );
. a  i) |$ |" u& w        
! Y8 w2 b, s% ]3 |/ v* H        tag_t tRev = NULLTAG;
0 \6 L+ Q5 T$ o% L" f$ S, i; _        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
7 [$ D. d# F: T
; e6 D- Y- w$ P2 ?        stat = AOM_save_with_extensions(tRev);
0 e# D5 g/ H1 y: T' E$ s        
) e2 M- X% N; q2 [        char *pszId = NULL;8 \# m' ?0 e- x8 m# |7 l
        stat = WSOM_ask_object_id_string(tRev, &pszId);/ B* w1 e. \% N+ `9 v: d
        cout << endl << "    Object String: " << pszId << endl << endl;- B; g0 y. Z2 H0 z2 J3 f* l4 c
        
. q8 S" ^! t9 R2 j9 C3 i- W; Y        if (pszType) MEM_free(pszType);
) P8 z0 |; J2 q' M* M        if (pszId) MEM_free(pszId);
2 j8 D3 h$ R) G+ G2 j) @    }. h" [. N! L) V+ I) z1 b: O
    catch( const IFail &ex )
4 t9 `$ b% S( p7 m# v/ G, H) i    {% ]3 ?8 F7 u  u* a! J; d# q0 [
        logger()->error( ex.ifail(), ex.getMessage());( h, w8 @# ^7 f4 H) i- q
        cout << ex.getMessage()  << endl;5 W' ^- `% n, T' i$ K* l/ ~" e
        cout << "error " << ex.ifail() << endl;        
9 i% Y+ C7 [( T; w$ \, U5 E    }/ ?7 p( A: }: W! Z- U
    const char* syslog_path;; D/ i6 D/ F) G5 e+ I! x3 H
    syslog_path = EMH_ask_system_log();
6 X; X, i' o! Z% ]    cout << endl << endl;
) C3 @3 Z7 K1 p! H3 f    cout << syslog_path << endl;
9 k6 U8 ?2 U( U0 ]3 B6 p" [* ?
  L8 P$ _3 q5 d- K* T. a    stat = ITK_exit_module(FALSE);                                        ; c& E  E, n( @8 G: O# l
    return ITK_ok;
: q+ c% G9 P; N}[/mw_shl_code]& s1 N1 S% I$ Q# e& s9 ?$ W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了