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 2814 0

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

admin 楼主

2020-2-8 09:27:38

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

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

x
6 O5 Q9 [- S; m7 P5 p
Teamcenter二次开发源码分享: Revise 版本 升级版本方法
4 y# R$ t2 n' g0 ]3 f; S6 v+ u4 d  M2 b% e& z
2 x- w; Q) u$ x) R$ V  L! y& t( O6 V
[mw_shl_code=cpp,true]#include <TC/emh.h>
! t* V$ h0 w0 d: W- y( E#include <tc/tc.h>
2 @. E* C6 U$ r, }' O+ D#include <tc/tc_startup.h>
3 Y  x. O, V3 W#include <tccore/aom.h>
% M: U5 v9 a$ B! D#include <tccore/item.h>
; {. s1 u" ?: Z- |/ Z5 P7 C3 g% T& h% s: l& W
#include <iostream>
* T3 ^) Y7 }" p6 {) A) H; r8 ~#include <vector>* j, N! w/ v( r, t  y4 O
#include <base_utils/IFail.hxx>7 D  @, `, [2 A4 B
#include <base_utils/ScopedSmPtr.hxx>' }8 U* m/ F1 ^: O% j
#include <base_utils/TcResultStatus.hxx>- `! R5 k+ A; d  [* \
#include <metaframework/BusinessObjectRegistry.hxx>
1 s  ~  `$ m9 d9 I+ K8 K#include <metaframework/ReviseInput.hxx># H7 }8 _  g& `, R) |
#include <mld/logging/TcMainLogger.hxx>7 K% `2 T/ j) F- J$ F& P: ^9 P
#include <tccore/ItemRevision.hxx>7 [% j9 b( s# r/ w. O' n3 @- K+ S
#include <metaframework/BusinessObjectRef.hxx>
+ z- t( l# K! b#include <metaframework/BusinessObjectRegistry.hxx>
7 X" v! f& S# Z( f, `7 k! ]#include <metaframework/ReviseInput.hxx>' U3 }$ `' v+ l- Z  U- n
9 }! [/ d4 l3 \/ l- z" f
using namespace std;
  s1 `3 g% S* z  o( ?" kusing namespace Teamcenter;  e, U+ t: r0 W4 L( n- s
using Teamcenter::Main::logger;
. I0 }3 O1 R/ F0 D0 V# l; j
7 G% y1 q; {1 i' bint ITK_user_main(int argc, char* argv[])
( ^' b6 U3 ^& p" `{. a2 t% r6 Q& d4 d7 \! G* x
    int ifail = ITK_ok;
% a1 {; h+ |# d; I) m9 f" t5 n    ResultStatus stat;6 M0 h0 ?1 ]4 P5 [7 Y% p
    try
* f1 e" ?  P  S) {7 O9 N7 ^3 k    {: S. V4 H% A  g6 d( M
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         ; o( {$ D/ R5 k
        stat = ITK_auto_login();                                          5 }, G) X% x: h( \
        stat = ITK_set_journalling(TRUE);* c) Z' n1 R5 _* a2 L
        ! ?- ]; c; w$ L6 N6 V! M
        char item_id[ITEM_id_size_c +1] = "0000000";
2 z& D$ R; A% ~2 @. e        char *i = ITK_ask_cli_argument("-i=");
! ?) p# k  S7 f- |        ( `% P  B7 E2 h; F% N. |' s. h
        if (i != NULL) strcpy(item_id, i);
# h) K" p% R% @4 A& u5 W* Q8 G; y        cout << endl << "    ID: " << item_id << endl << endl;4 C# ?/ E* M# k4 ]" k+ Y/ [* J
        
& r. @: n" A$ r8 P( A) ]6 l) W        tag_t tItem = NULLTAG;' e( d7 i) d$ k* `; B& q! K8 t
        stat = ITEM_find_item(item_id, &tItem);
6 `* m* ~# O1 S$ F, D0 g1 n6 F* \  }3 i5 u4 b  x/ j
        tag_t tLatestRev = NULLTAG;
& k) o* _/ k7 L3 U; w0 s        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); 4 s' g: U/ x( K5 C. H

) H* ~- H) K; U        char *pszType = NULL;- @) l# j) W4 E: o
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
- C: j2 D/ u$ Q* w' a$ @% [
* O$ d* x( C/ }3 K3 L) o; o" {        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();: y6 e, n6 V* \- B2 z; Y/ a
        # _- f" Y" v" n3 E' _
        string revOp = "Revise";+ t- e9 C6 y6 m) q/ w
        ReviseInput* pReviseInput =
7 w3 D8 Z& O, s/ h* N2 j: C            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));0 f" p3 X3 z8 H, W, J
& |* `9 v. q7 v, |6 t" G* R
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);) H/ t% Y( ^% Y$ m
        ' I2 x; B5 _4 [# I' h
        vector<Teamcenter:eepCopyData* > deepCopyData;, M$ P) b" `7 a  u" E
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);8 A9 l* c5 ^7 p6 ~
        
: N9 L" d  T$ f& N* s* S1 u        pReviseInput->setLogical("performDeepCopy", true, false );
% O- x  Y+ A1 X, @) d0 P" h) o- |" |        ( L  D" m) o* u& m. ?
        tag_t tRev = NULLTAG;
8 K+ m& M* p# \3 @) n        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);* u+ p" J0 a7 ~! v7 B
' A& d+ r' n; ~# X. C1 m$ u0 c9 ^
        stat = AOM_save_with_extensions(tRev);* K. d/ Q( j8 I* L4 v% h
        . _' R! Q1 ~8 a. y' a7 j9 F/ J
        char *pszId = NULL;( s, g! U8 {/ r9 i
        stat = WSOM_ask_object_id_string(tRev, &pszId);/ A, m% }2 }3 D+ A+ G6 d! R. q
        cout << endl << "    Object String: " << pszId << endl << endl;+ P/ M1 {5 B6 y* M4 [
        
0 `- M5 Z; _0 n7 y# [+ J6 d/ Z        if (pszType) MEM_free(pszType);
! Q3 F2 D  H% h6 o        if (pszId) MEM_free(pszId);
* T+ U. E" {) E: c9 `" i    }/ a2 I% u  K* U1 @
    catch( const IFail &ex )+ _7 \0 z/ V' [
    {
& Q& J: q* H* w. ~1 k2 I. p+ n! \        logger()->error( ex.ifail(), ex.getMessage());
5 T8 q. m- R( V" m        cout << ex.getMessage()  << endl;4 M3 I  j8 c, e9 _- a$ H) O# q, f
        cout << "error " << ex.ifail() << endl;        
4 U  M1 h7 V2 ]! M  c! c, f    }7 p9 F7 j. @4 c# Z. D
    const char* syslog_path;
6 y. e# Q2 H& D+ G0 ~, {    syslog_path = EMH_ask_system_log();# _1 U! ^. R& c5 W, K
    cout << endl << endl;
' j/ U, r) D1 q0 [8 Y    cout << syslog_path << endl;$ s& n4 z, [. ^7 A. X+ M2 u

! z% V" ^2 c0 w( y    stat = ITK_exit_module(FALSE);                                        2 M5 B  M6 A* |- p( P0 Q
    return ITK_ok;
0 N8 {. M2 _# V  W" a6 k0 v* D6 G}[/mw_shl_code]
0 Y+ h0 ~$ ?9 y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了