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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x
6 ~  Y9 w2 }8 h, d$ N5 g( T0 g
Teamcenter二次开发源码分享: Revise 版本 升级版本方法
! D6 j. |  ]+ [2 U, S
! k, r. P4 _5 ]1 k1 y8 A/ f0 Y/ Y' S, y8 z2 t
[mw_shl_code=cpp,true]#include <TC/emh.h>
4 N! q; H$ i" [' b+ I9 f- |  w6 ]#include <tc/tc.h>& l1 U) d, L, H# D
#include <tc/tc_startup.h>
  K$ x/ z8 M" G& R2 ]% A  C#include <tccore/aom.h>
* w7 _% o" `4 X. V4 W3 K2 \' _#include <tccore/item.h>
9 U7 l+ P8 r* e* ]8 c7 ?
+ V, r' d* ]3 T! v& _: ^$ ]  X; b- m#include <iostream>; w9 }8 q2 Y/ q  p
#include <vector>6 t7 a9 G" X& o. [0 i
#include <base_utils/IFail.hxx>
9 W9 s8 ]& r* o, ?$ n1 i#include <base_utils/ScopedSmPtr.hxx>
# J  G# s1 M+ J3 n2 u: R, {- I6 v" P#include <base_utils/TcResultStatus.hxx>
. O! G; B+ ]" D7 X#include <metaframework/BusinessObjectRegistry.hxx>
0 i  q( Z! Z% N( H8 ]#include <metaframework/ReviseInput.hxx>
7 L; Q' j* w( W  H#include <mld/logging/TcMainLogger.hxx>
1 t) g9 Q/ {4 t/ H3 {  z#include <tccore/ItemRevision.hxx>3 v. w; _2 o4 {( a
#include <metaframework/BusinessObjectRef.hxx>  @- `' i1 `+ P0 M7 m9 V
#include <metaframework/BusinessObjectRegistry.hxx>; o+ u8 }* [) v/ D# Z6 l
#include <metaframework/ReviseInput.hxx>$ `3 d# }" J6 t( g& q$ p: ~( U

* _7 N  f/ m- X% T8 F# S; Ausing namespace std;( X6 o9 ?. t+ Q' l( E( |
using namespace Teamcenter;
7 y+ l' h* p( _8 c! l. jusing Teamcenter::Main::logger;
3 K: i4 k+ A* \2 L" k. C
" L. J9 K5 ?; Q) F' I; ?int ITK_user_main(int argc, char* argv[])
- y4 c+ S9 L6 q' b  q{
' F) j7 T5 A1 a+ b$ H" D; F: e    int ifail = ITK_ok;+ ~% W1 V' l# k
    ResultStatus stat;$ y+ ^, V/ j2 `5 \$ H: Q
    try8 x+ Q  F4 _: c0 ^
    {6 E( B# A7 x% ?3 q6 k1 {
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
% z: p7 m8 f$ u        stat = ITK_auto_login();                                          
- h% p7 i- ?* r. s1 l' y/ h, M        stat = ITK_set_journalling(TRUE);
, Z0 ~) w5 U- y" P9 Z$ H3 u* D0 f        
+ W  M/ [- b4 C# A( R3 ^        char item_id[ITEM_id_size_c +1] = "0000000";
* b4 o7 ?! S9 i0 L" b/ u  X5 k0 n        char *i = ITK_ask_cli_argument("-i=");
! o. ]4 B  q0 d- E& h        
! K# |0 ^/ J0 K1 @# t: ?& R        if (i != NULL) strcpy(item_id, i);8 K( H; m1 d' Z8 v" e
        cout << endl << "    ID: " << item_id << endl << endl;( u5 S+ E/ d- N
        
7 f: d& a0 D! p8 ]0 y( T& Q        tag_t tItem = NULLTAG;& v. ~; t; c8 n9 ^
        stat = ITEM_find_item(item_id, &tItem);
& q  j2 |! ]5 i. f: Y" B. v* G' ?) I  y+ A- z  Z
        tag_t tLatestRev = NULLTAG;" J9 P, Y- Q7 q* T& n# |, p
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); 5 r8 ]$ g" I/ I; G) K7 u

/ n3 K5 w+ y+ A) P, R9 U$ @        char *pszType = NULL;
+ ~9 T* @* q  T" N# P- S. K        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
( T4 r) I5 y5 Q; v! K
8 G% \* O- _- Z5 e4 ]0 f0 B( y. V4 O        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();8 {! N0 L6 t1 i
        1 Q" \' N( s: A" ^2 d2 m
        string revOp = "Revise";7 e0 X' s% V: Q9 |
        ReviseInput* pReviseInput =
6 _+ M! g% ~* P) G% ^- t            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));. O6 P6 l( F/ W
2 ], T7 s8 D; _0 m4 `+ r5 \
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
. w& z3 ~4 H0 q; s        $ X* O# x0 a5 W- ?' `; M/ j, A+ [
        vector<Teamcenter:eepCopyData* > deepCopyData;
7 M+ ]0 s, s2 ^7 }* Z        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
6 b3 F6 D7 n  }; Z/ A$ @        
: w' c7 ^/ I/ |5 K! p# R        pReviseInput->setLogical("performDeepCopy", true, false );
: i( `, S$ n3 b! v6 s" I  k0 |" S7 G        4 B4 u$ R. e' F: K: J
        tag_t tRev = NULLTAG;- Y; P. |2 a. E
        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
. g& m" H$ X/ a7 A1 J" M  H5 p+ W* K
        stat = AOM_save_with_extensions(tRev);9 x: H/ i2 V. \0 L
        
+ g/ Z# l7 h7 o' ^+ Y3 t0 {        char *pszId = NULL;
: q, O  R  x- Q. n        stat = WSOM_ask_object_id_string(tRev, &pszId);2 x! o1 p/ h9 V. a* [9 D0 [
        cout << endl << "    Object String: " << pszId << endl << endl;, H1 }: I% Y; ^0 k8 p
        * A) Z1 P1 X' S
        if (pszType) MEM_free(pszType);
! R& V/ j5 C1 i5 p! F1 B        if (pszId) MEM_free(pszId);
, H6 a; h8 d: i    }
$ y5 q& }8 V/ n, W: }% `    catch( const IFail &ex )# ^9 S  f9 G2 [& |" |, y
    {( y# V  G6 ~7 p. q+ c! ^
        logger()->error( ex.ifail(), ex.getMessage());' \0 g' G0 x* l  z! l
        cout << ex.getMessage()  << endl;! ~7 K5 A5 l; S$ x' A
        cout << "error " << ex.ifail() << endl;        
6 J& Q# K% }% i" m1 ^5 l    }8 `/ a* d8 h+ A4 X
    const char* syslog_path;
1 Y, R2 B$ l& x& I3 X+ n" {    syslog_path = EMH_ask_system_log();% y* S4 m: b" p
    cout << endl << endl;. t9 ?0 U. |1 h2 D1 U, |
    cout << syslog_path << endl;3 @2 ?  x, W. Q* n2 x  V  O

0 H0 _5 e# g4 z: ^0 X    stat = ITK_exit_module(FALSE);                                        . u6 T! w' L: X6 ^- L
    return ITK_ok;% ]- F( `  k: k- B- Y8 X
}[/mw_shl_code]& t$ ^8 l% i! |- z- s1 H5 Y$ ~, l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了