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

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

admin 楼主

2020-2-8 09:27:38

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

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

x

* d( V6 u2 C6 c6 NTeamcenter二次开发源码分享: Revise 版本 升级版本方法
6 P  s6 m7 R) H0 q3 V6 i4 Z) p0 V" B3 }
* [3 ?+ P/ n9 U; G  u0 h6 l, D0 _; r- Y& ]6 o) f' Z; ?5 O
[mw_shl_code=cpp,true]#include <TC/emh.h>4 V: i& A& P' H5 i% Q4 a
#include <tc/tc.h>! z, X- H1 F% g4 B- \! C( ^  y* w
#include <tc/tc_startup.h>$ i2 ^' R( R* V3 h- _: X
#include <tccore/aom.h>, k2 x! x0 p# m5 Z: u' b' d5 f/ F
#include <tccore/item.h>/ Y# N; k( _5 F1 T% }- c$ \4 k
; l+ @9 u0 m* e3 g  J, P, X9 F
#include <iostream>+ b: Z- c' f- g8 c& D6 T/ ]5 j0 D
#include <vector>) l5 A6 n, ^, q1 c$ k% W0 Z8 ~% `* w
#include <base_utils/IFail.hxx>
9 a, e4 Z9 r7 g( k# J+ O* u/ l#include <base_utils/ScopedSmPtr.hxx>
0 O8 P3 Z. z' Z#include <base_utils/TcResultStatus.hxx># |7 u* Z( G! m% i+ }
#include <metaframework/BusinessObjectRegistry.hxx>, L$ c3 ]+ e1 y
#include <metaframework/ReviseInput.hxx>
% c5 @* a- p3 k+ H! M1 R3 r1 x; r9 D#include <mld/logging/TcMainLogger.hxx>! I+ ]) K% k4 [, P/ w
#include <tccore/ItemRevision.hxx>
- o4 D2 t' ~; ]; ?! ?3 V. f+ t#include <metaframework/BusinessObjectRef.hxx>
* a6 Z' |! u6 \1 g. {#include <metaframework/BusinessObjectRegistry.hxx>1 B, g  @; d/ }+ W# B! e+ _
#include <metaframework/ReviseInput.hxx>
& o. p5 T/ A2 v7 c  r, l# y) }2 \- u" z( U
using namespace std;
% e8 Y+ D8 B0 o- B' |5 Pusing namespace Teamcenter;
& C$ c# y; P7 j$ o) I  D1 K" |using Teamcenter::Main::logger;1 o$ U6 P# ~4 R

( |/ n' M$ O5 h# |3 \* _1 R; Pint ITK_user_main(int argc, char* argv[])
1 K. c3 z6 P0 T0 b{5 k- H( x" W) p0 a' {) x
    int ifail = ITK_ok;
/ g* C% m, J+ K$ b. S9 h" W    ResultStatus stat;$ V8 O. W6 B) Q
    try, v7 s$ j5 t4 b9 J% V
    {0 f1 d0 ^, }. b, @
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         
* F4 u7 c8 [, y3 _7 u3 i- b* F$ U        stat = ITK_auto_login();                                          
% {+ F; t* C% \4 v2 H        stat = ITK_set_journalling(TRUE);
$ E. R3 b  c- q! F5 U$ _/ |        
, O, z9 p7 }: t, n) [( O; M# `! C& u        char item_id[ITEM_id_size_c +1] = "0000000";* x. N2 u6 J9 [2 E0 p
        char *i = ITK_ask_cli_argument("-i=");+ e0 ^% _" }8 f
        5 \1 Y2 t8 a/ ~* D  W
        if (i != NULL) strcpy(item_id, i);
. G7 M; u" ]$ j% v, |        cout << endl << "    ID: " << item_id << endl << endl;
+ U3 h9 B: U; d# @        9 m1 Q  p# X8 q+ e" W
        tag_t tItem = NULLTAG;" P9 g  }" }# U
        stat = ITEM_find_item(item_id, &tItem);
5 b: O0 ]: c; V5 T; u6 W5 ^) W2 @
  Y# x4 l& w& o1 [- _        tag_t tLatestRev = NULLTAG;
! [( ~$ \+ l5 F$ ]. X4 D$ Q8 H0 s        stat = ITEM_ask_latest_rev(tItem, &tLatestRev);
& @! b8 ]) q' ?4 O* a
3 @( u7 e2 g! X- d1 D( ]- w" G. C        char *pszType = NULL;
& D7 C. S4 j4 ^+ k7 E        stat = WSOM_ask_object_type2(tLatestRev, &pszType);4 D; [# i7 M% x3 k% R

2 ~: ]4 @3 k* D& g        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();. d: F* B! {4 d, w
        3 j8 c$ C- n$ y- v  H8 E
        string revOp = "Revise";, Z9 G5 {/ N7 H7 \
        ReviseInput* pReviseInput =
" y; F' s) s: d1 u% }" z            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));
) o$ u6 o: i  {* U' @
1 A5 K2 C: i3 r7 ?4 L. B( Z        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);! w  \, ^1 K' p$ m# H7 q
        ' ~0 C6 R9 r& H. F5 B3 v
        vector<Teamcenter:eepCopyData* > deepCopyData;
" s) ~; }- R: t! ~4 w2 J        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
! T) U3 L+ b& l, U6 c1 E- {        7 x- x6 k! f! Q" n3 a8 Y# ~! Y
        pReviseInput->setLogical("performDeepCopy", true, false );  _% e( X! T+ U; M6 i4 z0 m
        
( y) Z8 J" ]; ^+ {; M6 p$ k9 w        tag_t tRev = NULLTAG;" U2 S7 r- z5 R3 h2 M/ _4 t! @
        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);
6 w2 p$ I% t+ b  R! b; c5 A+ H3 ^, e# J
        stat = AOM_save_with_extensions(tRev);
+ m/ I. d3 }- t        
$ h+ W: A* b7 ]; j$ y5 T        char *pszId = NULL;2 Q) A7 ]# E5 a8 h# ?. O. H4 [
        stat = WSOM_ask_object_id_string(tRev, &pszId);' T  E" K0 I2 g2 P6 x: l1 e
        cout << endl << "    Object String: " << pszId << endl << endl;5 I1 _" x) ?& \# F. o. T1 M1 p4 ?- [
        5 @) Q) Y. [. [! {7 W6 k8 o
        if (pszType) MEM_free(pszType);
/ V  _" ?" K/ t& ]& O        if (pszId) MEM_free(pszId);
+ t' q$ u& R  ?' j/ N) h* `    }$ A& G; v( i: b5 s
    catch( const IFail &ex )
1 c& f0 r& g/ D% Q    {4 o- L3 ?6 y; \! p- w
        logger()->error( ex.ifail(), ex.getMessage());' n) [& `7 q6 d! ]2 z$ ]$ Q
        cout << ex.getMessage()  << endl;
$ i/ ?9 o0 E* U' \& C$ a        cout << "error " << ex.ifail() << endl;        
% S9 |( e( d+ i2 K! P+ J    }, ]0 m7 q% q5 Y4 L
    const char* syslog_path;" d7 K8 Q1 t% r3 B) K9 m4 E
    syslog_path = EMH_ask_system_log();
& J* ], X4 M" b    cout << endl << endl;1 |$ [! O' X, Q% Z6 b$ J
    cout << syslog_path << endl;9 p0 q; Y, H0 j- z% l
/ @6 O, a: c) ]+ I
    stat = ITK_exit_module(FALSE);                                        . _* |& J+ I2 C9 E$ _1 x  b
    return ITK_ok;
* B* O0 s, F) @$ k" g}[/mw_shl_code]
& x8 _! e% R9 c& Y( L7 h+ f- @2 a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了