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

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

admin 楼主

2020-2-8 09:27:38

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

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

x
6 f$ P3 D7 d. B4 Q) [3 Q
Teamcenter二次开发源码分享: Revise 版本 升级版本方法3 o* c" E2 q- c* |6 K; {/ R
- I2 x1 Y, V5 {( q/ q* _

3 M4 J: g4 p4 R0 m9 M0 Q[mw_shl_code=cpp,true]#include <TC/emh.h>
, D3 V0 n2 v+ N0 o8 l#include <tc/tc.h>$ M, g2 `- T+ {3 R
#include <tc/tc_startup.h>
9 E; y1 c" `* f4 v+ Z2 N#include <tccore/aom.h>% ^% i8 A+ i" }3 d9 w: {# x
#include <tccore/item.h>
. z4 h" Q. T4 ]$ \6 f$ I) r; U/ X5 s
#include <iostream>3 X6 o5 d/ c! f4 U/ G% D" D
#include <vector>
% h2 C; w, T# ]( Z+ p0 o* W#include <base_utils/IFail.hxx>+ q  E6 V5 P7 e1 q; \
#include <base_utils/ScopedSmPtr.hxx>6 m- Z% y. J3 `1 Y9 v
#include <base_utils/TcResultStatus.hxx>. l1 o; \6 b" k8 \
#include <metaframework/BusinessObjectRegistry.hxx>
9 b4 {: t" V. ^* Z) H/ J' \#include <metaframework/ReviseInput.hxx>7 {% o# ]6 ?% ^/ T7 j
#include <mld/logging/TcMainLogger.hxx>
1 Y! B( s4 j& U; u5 }#include <tccore/ItemRevision.hxx>0 n  b& _" g, E3 R/ x9 ^
#include <metaframework/BusinessObjectRef.hxx>0 t3 q5 c# F* l* z" W
#include <metaframework/BusinessObjectRegistry.hxx>1 T8 h, g6 J9 y5 s/ ^$ f: T+ b
#include <metaframework/ReviseInput.hxx>
6 ]' W" t$ y  w; B( y7 G4 `
2 i3 C! ^; M. j5 J+ u7 G' f% Q2 D0 rusing namespace std;" L4 j- ^' ?0 Z( H; E6 d9 @
using namespace Teamcenter;) i- q# w0 L6 f$ p8 K
using Teamcenter::Main::logger;
4 V/ @3 j' u: E+ T8 r, }4 g* S8 g/ N( h
int ITK_user_main(int argc, char* argv[])0 K2 c. x; G7 ~
{
  W9 {% d0 d( G5 |5 u    int ifail = ITK_ok;: t( e/ g3 S4 r5 y* t
    ResultStatus stat;
9 W( ]$ X( r+ x2 ~: y' Z: z4 Q    try; P: S. {7 O- [. M$ r6 Q
    {. Z' ^% n8 p( x4 ?& [# U
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         4 j+ v/ w9 S3 L) N2 h* c* `
        stat = ITK_auto_login();                                          : x& q# W; X' B2 Q  [  t" U# @3 f4 U
        stat = ITK_set_journalling(TRUE);
) j$ J! K# Y3 L5 F( b9 Y7 @" @        
9 o% Q4 T7 n: h2 i" j2 D  D0 C! Q        char item_id[ITEM_id_size_c +1] = "0000000";
9 {0 x6 l1 O( x4 e1 b6 T* J8 K        char *i = ITK_ask_cli_argument("-i=");
& ^* _+ F' I8 w, l) u2 j1 x        7 r7 j1 o4 ~. R
        if (i != NULL) strcpy(item_id, i);
& L' b" S1 o7 s0 }3 `5 x        cout << endl << "    ID: " << item_id << endl << endl;4 N9 k* I& v2 [) R( _9 T
        
2 T% a' O( q$ V* a) s& F: T2 k- G! h        tag_t tItem = NULLTAG;: e" ]8 z2 }# N9 Y5 K# e
        stat = ITEM_find_item(item_id, &tItem);
+ A2 Z4 r- |) W5 r7 H- w. U2 J5 R( w5 x4 w+ |& b1 D
        tag_t tLatestRev = NULLTAG;, a( c* S) [% {9 T% F" b# }
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev);
) C4 y+ @; q6 i# F9 t$ k
7 O$ ^( u* w' U! A7 Y        char *pszType = NULL;
' y7 O: ]3 q7 Q9 j: i2 T/ Z# R        stat = WSOM_ask_object_type2(tLatestRev, &pszType);8 E% Q/ w* L% V3 \& H5 o8 J

1 O8 K& k  f0 A, W6 x8 n        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
8 v8 |. F1 ~" ?, J( t3 N; T        % c5 i0 `2 N% f6 E" G
        string revOp = "Revise";
. Y3 Z3 v4 o9 I6 B. B9 H        ReviseInput* pReviseInput = 1 j' D: c9 r% m; x9 L- F
            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));0 H6 v- W  v; l5 M: @& P. g: [7 C# y

% q# N/ j- M0 E8 O8 R; y) M        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
: N. x7 x$ b1 Z& l6 {5 A- C        
. S, H  h! x' U: `* K: G        vector<Teamcenter:eepCopyData* > deepCopyData;1 Z7 [6 Z! g: m" G6 Y4 C3 k9 m, }
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);% q4 t0 R! l# a; E: _
        # c: O: E! U: Y
        pReviseInput->setLogical("performDeepCopy", true, false );
2 V4 c4 [# X: v( p        
+ L& @! H1 C; R/ \, K; v0 P        tag_t tRev = NULLTAG;+ F0 L3 Z( u! _
        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);$ S8 t. P+ g8 R+ |  K, |

0 r- ?' h# H+ ]$ ~5 i        stat = AOM_save_with_extensions(tRev);8 H- S4 K6 V  _
        
" a- m' _* R( Z7 K& E; v3 ?1 X        char *pszId = NULL;6 O; O* t5 I. u3 n# K8 p3 ]
        stat = WSOM_ask_object_id_string(tRev, &pszId);
; L/ @8 x  {7 c8 ^" s/ R        cout << endl << "    Object String: " << pszId << endl << endl;
$ O* X8 y/ [! v1 b4 C/ r        % ]! o) W& w. M$ ?9 K- q
        if (pszType) MEM_free(pszType);
3 Q) C2 H0 s) N- l        if (pszId) MEM_free(pszId);
; _; g% E* X0 ]* G    }& Z' `, G1 }; u. y. x
    catch( const IFail &ex ): y  j, Z5 O: |
    {
4 {" ^( @) e) H7 Y- l7 @        logger()->error( ex.ifail(), ex.getMessage());
- g& }  l7 k9 {1 Z" L- S4 z( j8 O: d        cout << ex.getMessage()  << endl;5 q3 j: y% m  ~7 Z3 `; j1 a! S
        cout << "error " << ex.ifail() << endl;        : u5 |2 A5 [# w: c+ G
    }
0 _1 g2 ^, L5 x  ?7 i* Q5 @) o6 L    const char* syslog_path;
# ]. m3 W8 H, r# k    syslog_path = EMH_ask_system_log();
1 V" K) b% V8 Y  C/ E% b    cout << endl << endl;
! X& o( }% g$ W! A" H) T% A  Z7 b0 ^+ y    cout << syslog_path << endl;
+ F( x. m/ a3 u2 P8 `* o
1 @% L. |2 N5 z" e) z2 x    stat = ITK_exit_module(FALSE);                                        ! {4 n9 G3 t" w  o9 |9 |8 |
    return ITK_ok;
6 m# U% ~/ m4 c, u, ~}[/mw_shl_code]
! g: q  |$ s+ G& b: G% L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了