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

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

admin 楼主

2020-2-8 09:27:38

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

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

x

" ?9 g7 m& ?: F4 o# D; DTeamcenter二次开发源码分享: Revise 版本 升级版本方法# w8 F8 i$ c- D0 t& [
, e2 |9 m. t6 h; E4 b
6 y0 S( _7 u; L7 ?$ a
[mw_shl_code=cpp,true]#include <TC/emh.h>3 i' }" F! Q5 U$ l# H9 v
#include <tc/tc.h>
* _: r- Q# l* V& g8 e1 f- d#include <tc/tc_startup.h>6 |! [; I2 Q& }3 I
#include <tccore/aom.h>4 B4 _+ ~1 j) i! j( D
#include <tccore/item.h>/ t1 S( H$ f6 L" s$ Q

! Q$ A# E3 `; T) X0 y  D" k#include <iostream>3 {: N: {, `0 j, p4 a* A6 U) h
#include <vector>
+ Q1 G. a# T& A! w# k$ X4 O, ^#include <base_utils/IFail.hxx>
' S; f8 |: Q6 U& K#include <base_utils/ScopedSmPtr.hxx>
8 j$ A4 L1 W: p' W9 }#include <base_utils/TcResultStatus.hxx>& ~/ i1 q6 M5 @3 `2 |4 q
#include <metaframework/BusinessObjectRegistry.hxx>( g' T+ Y5 C; \& ^( P+ a
#include <metaframework/ReviseInput.hxx>( `6 t1 k) p+ b2 S% i+ l- j
#include <mld/logging/TcMainLogger.hxx>9 l! Z# Q) K! g. Y6 I4 S  z
#include <tccore/ItemRevision.hxx>
* d; P2 `, S7 O# Z2 v#include <metaframework/BusinessObjectRef.hxx>
$ ~7 R. v: k6 k' r- o: _* s#include <metaframework/BusinessObjectRegistry.hxx>
' ~. ]$ z* }8 b& G( F#include <metaframework/ReviseInput.hxx>! s7 d0 x) A% G5 f+ i

( J3 g7 ?+ f; i* A0 @$ |. Yusing namespace std;
0 o+ h* b/ t+ r. J& n) v$ W8 Uusing namespace Teamcenter;8 C, n3 c) U) w, E7 f2 I( P5 i
using Teamcenter::Main::logger;
- I% G# D: F1 ^0 |* }& Q2 _
$ e& Q( m* H+ W  [6 r  sint ITK_user_main(int argc, char* argv[])
# c" \$ U" H2 Q  D{
3 m- L( I, {# h8 y) e, S) ?& c    int ifail = ITK_ok;
7 R, F7 s# J  G. G. Q/ I    ResultStatus stat;
3 u1 X% c" \4 ^    try
( H. H# p# [# K2 y, |    {
8 ]5 |7 R6 c* P9 ~        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         6 h5 g) ?+ r" Y; M9 G
        stat = ITK_auto_login();                                          5 B1 P, W& @/ q5 U) w/ m8 O
        stat = ITK_set_journalling(TRUE);
2 B( l+ q( ~& i$ i. X        
8 e9 q, K* A( Q: o" v% W        char item_id[ITEM_id_size_c +1] = "0000000";
) J" @* f1 v) V3 e" D        char *i = ITK_ask_cli_argument("-i=");& Y6 {, w- O" U
        
5 e/ B* j, v5 u" A% b$ ^        if (i != NULL) strcpy(item_id, i);9 m0 B8 p8 b- a; B. u
        cout << endl << "    ID: " << item_id << endl << endl;
! v9 J. L2 B7 _% F! l        " h4 i. x. d6 c0 R( y2 G6 B! L0 G2 k
        tag_t tItem = NULLTAG;! A8 K- e$ x. [9 ^. q
        stat = ITEM_find_item(item_id, &tItem);
' g7 [( z) {: ~2 A4 g' b& M! V1 M2 P4 |
        tag_t tLatestRev = NULLTAG;* o6 x6 c# c- R0 x% f
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); - J6 C* ~2 U7 r5 s, m5 `
. L, F7 h7 S- Y# q5 E$ p# n
        char *pszType = NULL;4 J/ x1 P' F8 B: p, q; Z
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);' V$ C2 A2 c  [: J, h/ i7 h

) ?; m" @& T- l: O3 H* [        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();/ _7 y4 q& R' u0 G, Z5 _
        0 b- @# M, I$ N2 g, G* P# n5 L
        string revOp = "Revise";
" ~4 }" g! R9 x% L% n. e        ReviseInput* pReviseInput =
" k7 }: n* M! `/ d0 v9 w5 ]6 W            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));
2 B% [2 Z% H; r" _& l: z1 }6 }8 W/ p2 {5 F: |
        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);
* b! i, ]/ T8 k7 P        
$ z6 `: x' F! i# v        vector<Teamcenter:eepCopyData* > deepCopyData;, w* q8 y, \; N" g
        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
* Y( [! U" X& a9 n8 B        ; ?+ k- V: N6 G/ Y: T$ x
        pReviseInput->setLogical("performDeepCopy", true, false );7 E+ g+ y' B. E+ o6 G0 y- d4 U
        6 V9 h" P1 s/ f. R0 J1 g' w, C- @
        tag_t tRev = NULLTAG;
' e4 J8 h8 P6 w$ o1 ?: B        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
3 D+ Y" b6 {. w3 l: C. ~
4 t+ Y8 n( \8 D4 }        stat = AOM_save_with_extensions(tRev);) g/ s* L& F0 M4 M! G
        
0 ]/ B8 O# f; G1 h$ G; A        char *pszId = NULL;
( n* ^: y' E! e, q8 j        stat = WSOM_ask_object_id_string(tRev, &pszId);
# }& o% n+ z# H$ s" ^. n        cout << endl << "    Object String: " << pszId << endl << endl;
) H+ w* H/ d" j) b9 {# O9 p        
. s6 \! p) ]) F# K# q# K/ c7 |        if (pszType) MEM_free(pszType);4 u2 O: N' K: u/ e7 J9 a; ^
        if (pszId) MEM_free(pszId);
) @1 g& H  G9 x3 t0 x    }' ~" ~$ e! Z( b2 D* G
    catch( const IFail &ex )
. w) L, }+ k' u* U    {
& ^8 N- Z! l) }3 d7 Z2 h' E+ w+ w        logger()->error( ex.ifail(), ex.getMessage());" m0 q5 L0 x% [  m7 |' g
        cout << ex.getMessage()  << endl;
3 _. U* y; x8 U& D        cout << "error " << ex.ifail() << endl;        
6 B; G5 ]2 {( L" e! V  r    }( j: f. ^# x, [: p& X4 j8 K
    const char* syslog_path;
9 Q  r! e$ _- G: B    syslog_path = EMH_ask_system_log();7 K" w3 N  t! {" n2 c4 c1 A1 s
    cout << endl << endl;
( m. L2 X' p5 K6 G    cout << syslog_path << endl;
3 f; _! X9 o6 \7 R+ E! i1 ^3 S8 l" n4 X  {/ f3 W( u% t
    stat = ITK_exit_module(FALSE);                                       
9 c: q5 f+ {3 X7 ?    return ITK_ok;
; u! ?% h" r& _: r" @}[/mw_shl_code]
. F7 ]9 H% u! S  w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了