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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x
1 s: h9 W" P! {
Teamcenter二次开发源码分享: Revise 版本 升级版本方法# X7 v5 D9 K) w' l) V  _$ q5 T
+ B$ E* ]: ^3 Q5 \( g
5 n' E7 {4 Q7 r. K6 T
[mw_shl_code=cpp,true]#include <TC/emh.h>7 y' F: M- _' }5 u9 r8 F, d2 t
#include <tc/tc.h>
5 g3 N9 C" ?* O7 S#include <tc/tc_startup.h>
: M4 N+ v5 _1 ~#include <tccore/aom.h>
3 U0 w+ U: ]4 ]8 F# Y#include <tccore/item.h>9 [! ?/ G( ^# V! U# K$ u& `+ e

( @1 I& x3 @7 r8 C! R" L#include <iostream>. Q9 M8 M9 ?3 |( V6 y
#include <vector>
, Y3 [. g: M4 H#include <base_utils/IFail.hxx>6 Z; {/ n. z* \+ [/ e
#include <base_utils/ScopedSmPtr.hxx>
- U% d/ o( i3 A6 |: q1 K#include <base_utils/TcResultStatus.hxx>
9 R: V% m% b# [" s+ k2 v3 R#include <metaframework/BusinessObjectRegistry.hxx>4 a- Y+ [4 i' r6 F
#include <metaframework/ReviseInput.hxx>" R! S& _* c4 L2 E! ~4 H# d
#include <mld/logging/TcMainLogger.hxx>  y9 a/ r% w/ A) ]$ L* M2 z
#include <tccore/ItemRevision.hxx>
- D# J7 j9 C1 Q1 {7 i; n#include <metaframework/BusinessObjectRef.hxx>( f/ [9 @" l7 u6 L8 r$ o# s4 E# c
#include <metaframework/BusinessObjectRegistry.hxx>- f/ M+ {! _- ^9 }% a
#include <metaframework/ReviseInput.hxx>
, b8 P6 e- E  n- f: r8 v- S. `+ u; O* o* }  M; C) ^8 I6 t
using namespace std;) G+ P8 N+ g' ~- j
using namespace Teamcenter;' S! s6 m) `3 T, n7 n* t* @
using Teamcenter::Main::logger;
: d9 |2 ~+ q! Q' a4 w
; `0 S9 Q/ Y1 Wint ITK_user_main(int argc, char* argv[]); D4 b' |- L0 b
{
; K% y0 \' b$ N5 r, M6 y+ W    int ifail = ITK_ok;
2 y) x' h6 ~9 p0 S" j4 `    ResultStatus stat;
( W( m% p6 U4 X/ {+ v$ m3 D    try0 M1 v5 n. l( V7 s& y
    {
: L2 r$ N- j) F& q+ L7 z        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
' F( l+ [  }+ n. X, G        stat = ITK_auto_login();                                          
- n' C- B' E# G& }5 u        stat = ITK_set_journalling(TRUE);
; w. L% z( P7 c( L1 R' h6 ^, o( ]        ( P! t: n9 n* n/ V
        char item_id[ITEM_id_size_c +1] = "0000000";( ?; b9 s: q9 Z
        char *i = ITK_ask_cli_argument("-i=");
) ~9 b: k) a) B6 z        
. l# B$ M0 f( D) S% I6 A) J        if (i != NULL) strcpy(item_id, i);
% W* V. o, L& c/ K4 t        cout << endl << "    ID: " << item_id << endl << endl;
1 [9 P* G/ Y( Y- N8 T* b) l        ' [8 @4 C1 p2 K8 g
        tag_t tItem = NULLTAG;
$ w3 C$ i; z: l3 o2 o. Z        stat = ITEM_find_item(item_id, &tItem);
2 q& U5 [" R1 R* p4 m
4 R& j$ N; {! o6 f        tag_t tLatestRev = NULLTAG;
. ^0 A( V: l( P1 j9 Q3 T        stat = ITEM_ask_latest_rev(tItem, &tLatestRev);
/ W0 P8 s! Q, v& A3 D3 R
5 ?  J% i# \1 ]        char *pszType = NULL;
, v; J8 o" l( {$ ^2 v+ v6 i        stat = WSOM_ask_object_type2(tLatestRev, &pszType);! b- i& {; O4 U: P

: [- U# S1 }" l1 L/ N. c/ s2 Z        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
% m0 V  L; ~4 X4 _! Y! u. C        
$ x) \, R" ~) Y$ ~3 h# q        string revOp = "Revise";
* f5 r2 j* L0 V8 @* E3 H        ReviseInput* pReviseInput =
# {) }6 L7 o% G6 |            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));( {+ e5 {$ ~7 w5 `
0 i1 g. v/ \1 E% s
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
, u2 s- e: j) Q  E7 S) U        % k' y2 l- t* a
        vector<Teamcenter:eepCopyData* > deepCopyData;
* x6 E1 E" y7 Y: @8 i7 K: c9 _- {) l        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
% \# E; r9 i0 ?; E  `        : O$ k6 W, x% Z( B& _
        pReviseInput->setLogical("performDeepCopy", true, false );
8 G9 f: L. ]+ {: ~" c. m$ s" ?        4 `$ o, ^$ V8 G9 u, [( C- }9 }
        tag_t tRev = NULLTAG;; d4 ?( e9 b2 t8 W8 U
        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);" h3 O! s1 ~9 J# i& g8 l

: w1 p# E) S/ N6 C9 i        stat = AOM_save_with_extensions(tRev);" U, [) W  u. n/ Z3 [! p/ T# q0 V
        
/ K' t2 Q+ @  l) p( F9 `% }6 _        char *pszId = NULL;9 D( c  X  U" m8 w% D
        stat = WSOM_ask_object_id_string(tRev, &pszId);
' l* z2 G& ~( Y" o1 F) b        cout << endl << "    Object String: " << pszId << endl << endl;4 w; C% g* _* O7 M
        
; ]- R! G, c0 D        if (pszType) MEM_free(pszType);2 @( d. o9 ]- g5 f
        if (pszId) MEM_free(pszId);
0 \8 B: |+ d4 z0 p6 M7 R  B    }' X& a$ C2 M0 U+ N
    catch( const IFail &ex )
; ]7 A6 O* O3 P, u  B    {
3 ^0 l) c- q. ]; t+ Y0 H) l/ y        logger()->error( ex.ifail(), ex.getMessage());
5 V4 ]7 F- t4 e2 q        cout << ex.getMessage()  << endl;
3 u5 s4 ]9 C) T1 v, S        cout << "error " << ex.ifail() << endl;        . U! c  w; H$ G: `& H
    }
  U3 ]% c6 d; K" Q9 y7 `3 T    const char* syslog_path;
2 n4 Y/ N9 a: a. p" Q* ^( f9 s    syslog_path = EMH_ask_system_log();! z7 v; s6 P" |0 c4 e% }
    cout << endl << endl;1 {& e6 u- ^) G  S3 \
    cout << syslog_path << endl;
: R! S+ q# |% P- c0 L; m7 c8 h5 R
! I1 x' a) c" G9 k$ H) r    stat = ITK_exit_module(FALSE);                                       
7 T6 u# z+ Q, s" V. @2 f/ _    return ITK_ok;
$ X7 N# c! O$ g}[/mw_shl_code]+ C. q( g& G$ X3 E4 }4 [8 [5 \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了