PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2020-2-8 09:27:38

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

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

x
2 u  V- |/ G% R) N# t/ k3 E
Teamcenter二次开发源码分享: Revise 版本 升级版本方法
3 s: w6 Z1 W3 l+ k9 n$ @8 I4 E! P' f! c! v5 Q0 t& J3 a

2 K; Y7 ^8 v% d1 V, |[mw_shl_code=cpp,true]#include <TC/emh.h>
( M/ @  h4 ?% a' G#include <tc/tc.h>
6 v% Z: T! p! }#include <tc/tc_startup.h>
6 F2 `! g* p) z, j) z) R#include <tccore/aom.h>: ~( Z( y, `- _
#include <tccore/item.h>+ e6 A2 v# Q, B
& ]9 a: c; N; l7 _, j
#include <iostream># k+ J  x. G& F; d
#include <vector>: S9 Q# o$ U. q* ]7 O2 s5 i
#include <base_utils/IFail.hxx># G0 D( w' h+ n. H" Z+ U) C
#include <base_utils/ScopedSmPtr.hxx>
  x' R/ ?% G, K#include <base_utils/TcResultStatus.hxx>
% l  l5 F8 X8 V/ C) u8 x) P#include <metaframework/BusinessObjectRegistry.hxx>5 L: R% D0 ?/ I" Q2 G9 f8 Z3 f
#include <metaframework/ReviseInput.hxx>
3 w+ @& u% I5 S: k) g: ^#include <mld/logging/TcMainLogger.hxx>
# T7 f% F/ Z; y* R3 f. C#include <tccore/ItemRevision.hxx>
; g+ P7 ^# i. d+ d0 P#include <metaframework/BusinessObjectRef.hxx>0 i& @9 g) |# p, O; \4 H2 y
#include <metaframework/BusinessObjectRegistry.hxx>
* b! M3 }) G' q+ s  O. _#include <metaframework/ReviseInput.hxx>0 i8 s1 e# a  L8 W& @

0 C& s4 w- e' @" |' ]6 Busing namespace std;7 O/ A. T2 v+ g3 ]  o- D
using namespace Teamcenter;0 [8 P: G' M9 J! O
using Teamcenter::Main::logger;
  {4 `, |$ D  ?) \4 _6 d  f( l; `
) d# y2 ~& D, {' ^+ Kint ITK_user_main(int argc, char* argv[])
* v0 I" C9 t. F2 w: `{
' v. E6 A6 v+ p) t# I2 U    int ifail = ITK_ok;
/ N8 ~) I& ~% v% ]    ResultStatus stat;; [6 M) L. {: |- r6 E
    try" e' u! |, B1 f
    {
& B% T3 J' D# d; h        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
% Y& B5 G' d# f        stat = ITK_auto_login();                                          7 s3 h/ O+ Q' |4 r. F: V- R: q
        stat = ITK_set_journalling(TRUE);9 h* `) [0 c* l% H
        
& p/ E5 r* t+ b) d: v+ }' P        char item_id[ITEM_id_size_c +1] = "0000000";& O* `) j+ W. H% Y& [# l" k
        char *i = ITK_ask_cli_argument("-i=");
9 @5 L" |- Q7 e3 `" f& A* G  A        
: T6 t4 p8 e/ c$ {        if (i != NULL) strcpy(item_id, i);
: g: L% s8 F' z; f: l$ C9 M8 D        cout << endl << "    ID: " << item_id << endl << endl;% p/ [7 y+ Z0 Z( p7 H; ^
        
5 O) `7 _* a! g3 a) k        tag_t tItem = NULLTAG;
9 ?3 e+ {4 ^% k  ]. e        stat = ITEM_find_item(item_id, &tItem);
" @( L1 w% Q) E# I1 S: P  E8 Z, L, d9 p2 H- i5 K+ [1 ~5 |" v
        tag_t tLatestRev = NULLTAG;
/ w: ?  O( L. R4 p- X$ k        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); % \: d, Q! F6 @2 C( j$ H, p. c& z; ~
. |/ g5 p/ T  y+ Y+ A8 e# p4 k
        char *pszType = NULL;9 C* D+ [% f, B+ L
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
8 L9 [# d! |6 ^' }$ o: [6 r
; N$ D4 g* y3 z" W* [: ]( c        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
. @9 r) ]% u5 y! Q1 t* D        ! i+ [+ m7 _) K5 w7 l
        string revOp = "Revise";0 Q3 L8 s' D8 h6 N9 F
        ReviseInput* pReviseInput = $ i! r  R3 Q$ _0 e8 g' Y* p" F2 f9 p
            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));
, \+ c! R  B/ I/ D2 J1 }
4 Z4 }* y# ]; ~: X0 J% R) n' \        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);0 N; I1 q& g9 _3 ?3 ^% {' i
        - e  w, ]* C9 Y! z" l8 |
        vector<Teamcenter:eepCopyData* > deepCopyData;3 P& ^. \1 h9 E4 t
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
/ q6 W/ x) G% U/ g- h9 Q) P        
0 w/ h7 {% g# ^; A, o+ g        pReviseInput->setLogical("performDeepCopy", true, false );
' q( X2 c) J' v; N6 ?- B3 S) B% F6 D        
1 v( l$ _6 T4 T1 o( S; K' [' J. Y, W, Q        tag_t tRev = NULLTAG;
. ^$ n, }5 Q" u! |% F" q9 e        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);% d! v* G) F* z4 h; g* }

' c5 I5 t4 }' ~+ \/ |, f        stat = AOM_save_with_extensions(tRev);
0 Z& M9 o6 V; J# B, y5 i' ~        
( T' v) }) S9 O/ D- Y        char *pszId = NULL;+ H; L# E$ O1 X2 C9 r/ H
        stat = WSOM_ask_object_id_string(tRev, &pszId);+ k5 ]! V2 N# O* P- q% t
        cout << endl << "    Object String: " << pszId << endl << endl;
$ L$ X% Z$ ~5 W  P          w' D' e. Z% G8 F2 v8 T
        if (pszType) MEM_free(pszType);
! b! w8 }$ k4 r, y% n+ j        if (pszId) MEM_free(pszId);
. Z  k8 O/ K$ n: h    }( f; h' ?4 O2 t) R. o. X9 c
    catch( const IFail &ex )
* L4 A" Z# ~3 B" @    {0 |7 h: }( c4 R/ T
        logger()->error( ex.ifail(), ex.getMessage());4 O3 a' v% Z. j4 b: k2 L3 o
        cout << ex.getMessage()  << endl;
; v& v) `  j- s! N, g5 Q        cout << "error " << ex.ifail() << endl;        
2 `  |) p2 W- s4 |    }
: d0 n# k5 a+ s0 z    const char* syslog_path;7 L: [( S9 [8 i& R: C2 K
    syslog_path = EMH_ask_system_log();( o% T3 ?$ A5 q! A
    cout << endl << endl;/ e1 b: t2 q6 [9 q8 R
    cout << syslog_path << endl;
7 P6 w- |5 e9 v9 K; b
% c7 p% Y9 J4 t1 Z" u* ?! P( V2 M6 P    stat = ITK_exit_module(FALSE);                                       
" F1 S# n" Z, P2 l  S( |    return ITK_ok;3 _# w) ?+ V$ b% `0 ]+ m$ n
}[/mw_shl_code]& d; Y7 o( s: Z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了