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

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

admin 楼主

2020-2-8 09:27:38

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

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

x
$ g' `2 d3 @- E
Teamcenter二次开发源码分享: Revise 版本 升级版本方法& i2 i( t) a6 z% M8 }) {2 G9 c) X

/ L. m% U; |+ a2 X2 c" ~# p; u2 w# t2 Y0 y, B
[mw_shl_code=cpp,true]#include <TC/emh.h>9 U2 O8 l. d9 G% L
#include <tc/tc.h>1 G$ t* Y# G) l1 {
#include <tc/tc_startup.h>
$ a& z+ S9 b/ V+ X5 O4 F5 K4 E#include <tccore/aom.h>
# Q+ B6 Y5 W4 R  d' P#include <tccore/item.h>9 T6 S6 \5 O! S  \8 t$ ?6 r
- ~$ F+ i; `" d- {) q
#include <iostream>: r/ }, u' I) R1 D# |( s, U
#include <vector>
5 l% H) k' A( k% B( t0 i8 I#include <base_utils/IFail.hxx>
: I; g; d1 k! O' U6 H$ u' ]#include <base_utils/ScopedSmPtr.hxx>
& B. R, t/ `2 H/ F0 l% R#include <base_utils/TcResultStatus.hxx>7 y! o3 }. f4 R; Y  \, A
#include <metaframework/BusinessObjectRegistry.hxx>% E3 L$ H4 n, w1 g3 S
#include <metaframework/ReviseInput.hxx>6 r& Q2 X. Z6 I( I% r0 L  E
#include <mld/logging/TcMainLogger.hxx>
( g8 r! E9 J# l#include <tccore/ItemRevision.hxx>+ b9 y7 e' Y2 q5 D+ T1 |! b% O
#include <metaframework/BusinessObjectRef.hxx>( A2 ?* `2 c# |
#include <metaframework/BusinessObjectRegistry.hxx>
! D, o- Z$ M' W#include <metaframework/ReviseInput.hxx>0 e: n( u3 |: m3 k8 n
3 R0 L$ ?5 H! u
using namespace std;
& i  ^/ g8 \0 r# K! d9 g3 ausing namespace Teamcenter;
+ ]2 f" N/ ]! n* {using Teamcenter::Main::logger;) D; t2 o  G9 d6 Q3 h$ V9 k9 u) {
( _0 U' _. ?0 F
int ITK_user_main(int argc, char* argv[])& Q/ z- p# d: x3 S- @4 N  i
{
2 e; M2 n+ Y# z, x6 N6 I$ O, M    int ifail = ITK_ok;
5 E! V& b% l& f) b+ n5 W    ResultStatus stat;
/ o) ^, K# e* v6 c5 c8 o7 T" L    try* H4 D" X! L! Y' t  u7 s
    {
0 C  C% u) x$ N" z. l, S* m8 O        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         - `: t4 r& @2 q' C6 `# m
        stat = ITK_auto_login();                                          
% K7 k) e/ x0 b. g4 s, w* d2 B* d        stat = ITK_set_journalling(TRUE);
/ K) _# `: I( j3 C: i( Z: N        
$ c( ^- Q/ i% ?2 J6 [5 g        char item_id[ITEM_id_size_c +1] = "0000000";
0 U6 E/ _" J- d3 v        char *i = ITK_ask_cli_argument("-i=");
6 U0 ?" V$ i3 u8 r' x        
5 X- d; P# U6 X* i        if (i != NULL) strcpy(item_id, i);
5 y% }" Q3 [. r$ I$ i        cout << endl << "    ID: " << item_id << endl << endl;( }: v& |; |( k
        / H; ~0 U0 u( {" ]3 D! K
        tag_t tItem = NULLTAG;
& _; a& ~! _" H% F0 E/ o5 \        stat = ITEM_find_item(item_id, &tItem);
: V. _0 z) q6 b  ?+ F' S8 i7 K( R8 F: }
        tag_t tLatestRev = NULLTAG;
9 i2 S, ?2 y9 Z+ P, E0 ?        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); ! n$ Y8 C/ K6 v3 W- I

! N, x/ P4 `" q- X6 z2 J- M        char *pszType = NULL;
4 X, J7 O1 V' P* g4 G2 @# `        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
( I0 v! l  M5 x( X' S
% I. n4 d& E$ B$ g        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();
9 H4 r, r' W4 A. w* H        
+ }6 _8 A6 P3 t1 C% [  e1 H* s" H- q        string revOp = "Revise";# |7 D( o6 e4 H, {& D- S
        ReviseInput* pReviseInput = ( c3 V7 ?: D! R0 O% T+ V
            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));( W  z3 p: b( ]. W1 d9 ?' P7 {

& r. _& B  l* t. @        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
3 F7 Y9 w7 ~# p& Y        
! _% s) r$ q: H4 T( D: C        vector<Teamcenter:eepCopyData* > deepCopyData;
7 p6 {3 i1 z. g' E5 B# S, f        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);- ~7 }7 _# r, c( d
        
/ q" {" T' L" F5 S        pReviseInput->setLogical("performDeepCopy", true, false );
4 Y! _" t' k7 L% \$ N        
# L- L; G1 a: r# S* K        tag_t tRev = NULLTAG;
8 b% }, _3 ^$ W2 w* I  s: i        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
: A( I" a$ z/ H2 k. u  v0 N; _2 D+ G" L. Z& e4 v
        stat = AOM_save_with_extensions(tRev);' C; z/ b8 y$ L
        8 W2 u+ l9 A' c2 Z% Q  k' e( ~
        char *pszId = NULL;
2 h7 w: l3 \( a) v        stat = WSOM_ask_object_id_string(tRev, &pszId);
' ^7 h5 a2 y) B9 J, t! Q        cout << endl << "    Object String: " << pszId << endl << endl;- i  |4 [3 F9 }7 }( b4 }6 A5 c
        " V& x2 g# z! U, N. ~! h
        if (pszType) MEM_free(pszType);
  B; p) y" i  v$ t3 K$ |! h9 f        if (pszId) MEM_free(pszId); : q2 x8 T6 d# {: O" p
    }
& W$ t2 {, t4 Y" N    catch( const IFail &ex )
' H9 d! M, X/ L/ n' J: x8 |. x( w' L    {
+ [9 }. M' n6 T) S8 ?& P8 S8 z        logger()->error( ex.ifail(), ex.getMessage());
' o0 `( ?4 K( K1 ~$ B  Q  H8 ]        cout << ex.getMessage()  << endl;
8 s2 g* S4 }$ k! U! X# `1 n        cout << "error " << ex.ifail() << endl;        
4 c/ B: J+ S, H5 I' O6 W" y( B    }
& k8 l0 g3 T! x# Z9 n* n    const char* syslog_path;
: O) A/ l8 b, V* q& Q7 J    syslog_path = EMH_ask_system_log();
3 f6 r; n( l3 s, i3 e    cout << endl << endl;
) @/ @$ t, Z* n9 s7 }$ @; f  A. d6 }    cout << syslog_path << endl;
: s3 Q+ @: a- u* d/ ^0 U. ]. c+ D% y5 L: D2 _. n
    stat = ITK_exit_module(FALSE);                                        4 Z0 r6 Z' s5 ^3 a
    return ITK_ok;
8 Q0 L* ?! @, D+ ~" W* F$ W  W: E" \}[/mw_shl_code]
" q! I+ \9 }3 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二次开发专题模块培训报名开始啦

    我知道了