PLM之家PLMHome-国产软件践行者

Teamcenter二次开发源码分享: Revise 版本 升级版本方法

[复制链接]

2020-2-8 09:27:38 3001 0

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

admin 楼主

2020-2-8 09:27:38

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

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

x
6 [$ K1 `% G  b
Teamcenter二次开发源码分享: Revise 版本 升级版本方法5 l6 f+ r4 ?2 }/ Y
$ I' t7 ^2 h& k1 o5 l6 s

/ N/ r) P6 k1 Q) z. o. k6 x$ M[mw_shl_code=cpp,true]#include <TC/emh.h>
/ g  Y0 d1 c  a7 Z+ j. J#include <tc/tc.h>5 `( s0 q- ^# s5 ^( i; v
#include <tc/tc_startup.h>
6 U8 D5 r! R3 |% E: n* U" _# b#include <tccore/aom.h>
0 q3 _/ a9 F. a& Q( }, ]#include <tccore/item.h>
( Q) M, A1 r/ {0 `* a. \. H: L0 Z' `! I/ [
#include <iostream>- s0 ]5 V; @: |  [% D" l
#include <vector>
, F7 R# ]) j/ I3 E#include <base_utils/IFail.hxx>
: o  R3 B: D$ Z/ h, R/ p# n  {4 s#include <base_utils/ScopedSmPtr.hxx>6 U3 E  T5 q' L# ~0 I+ ~+ i
#include <base_utils/TcResultStatus.hxx>& _8 \; n+ w0 i# ~' g5 Z: ~
#include <metaframework/BusinessObjectRegistry.hxx>
6 v6 r1 j4 B8 G* \! m) Y2 v#include <metaframework/ReviseInput.hxx>
) p% Y- ~$ Z) k7 O) ]#include <mld/logging/TcMainLogger.hxx>
( \2 r! Y- B6 ?& D#include <tccore/ItemRevision.hxx>0 K1 ~5 g( }# @* _4 S" i+ S. m
#include <metaframework/BusinessObjectRef.hxx>8 u9 {! E9 R  a9 S
#include <metaframework/BusinessObjectRegistry.hxx>
- |" Y+ J. I% Y' j. R#include <metaframework/ReviseInput.hxx>% G9 p* u6 U8 H4 P9 v! x) c! I% r

- w8 j2 d7 N. f5 @( ]$ Fusing namespace std;4 Z' ^5 K* u0 K8 }2 K  B- `. U' M
using namespace Teamcenter;
! q* w/ X7 K( a( h1 \using Teamcenter::Main::logger;  P% n* F$ e' S, H
1 s5 e0 d6 L" e0 U
int ITK_user_main(int argc, char* argv[])
, \' d. I0 I# {{
/ T5 e% d, }8 {' V* D- i  j# o' b    int ifail = ITK_ok;0 J( t4 t, A* U- A
    ResultStatus stat;
  H' \: a7 I4 K    try
) Z, ^, V6 d/ c3 z/ s* S6 K    {$ {% ?2 r, B" f; n8 o; K
        stat = ITK_initialize_text_services(ITK_BATCH_TEXT_MODE);         1 T( v+ M: ^  M& O
        stat = ITK_auto_login();                                            ]. ^3 u+ @" Z0 @0 C" {3 j  O
        stat = ITK_set_journalling(TRUE);
- ?( U. a+ q7 a7 F  L- `& [        ; P5 L% C: i$ o' Z# P, b  ?
        char item_id[ITEM_id_size_c +1] = "0000000";
  k$ o* l$ a/ [( g- @        char *i = ITK_ask_cli_argument("-i=");5 F1 h- j6 x( w8 L( T
          o5 Q* O% P, _, ^' f- J4 U" ~; @$ o
        if (i != NULL) strcpy(item_id, i);
9 N+ ?! {4 z# S* _; u        cout << endl << "    ID: " << item_id << endl << endl;
, s- x' w5 X$ j9 C( O        
5 q  E+ b; x; B  a# @8 F        tag_t tItem = NULLTAG;* K4 d8 k  F. u3 f* W6 r
        stat = ITEM_find_item(item_id, &tItem);9 t# c' Y3 S' ?( V, z# D

' ^' X9 V( [% t. t        tag_t tLatestRev = NULLTAG;; t# C8 P; B. P; f
        stat = ITEM_ask_latest_rev(tItem, &tLatestRev); ( o) C1 J" X, ^: V) |+ N( u! h, D
  Q9 Z( `% f) c
        char *pszType = NULL;' ]2 D8 A: X- r" G. q3 p# Y/ k
        stat = WSOM_ask_object_type2(tLatestRev, &pszType);
, `  h8 s+ ?/ k9 x- G8 _, J( w0 _7 t$ ~1 c: O
        BusinessObjectRegistry& boReg = BusinessObjectRegistry::instance();. B( d& E! G3 A) D
        4 n# K# R) h7 ?
        string revOp = "Revise";5 `2 T9 }" |- n& G6 t3 C
        ReviseInput* pReviseInput = ) f, k: _6 c/ Y3 n6 C  k
            dynamic_cast<ReviseInput*>(boReg.createInputObject(pszType, revOp));
' y1 ]$ H" @+ f" t$ A7 L
6 {% ~1 A. m3 j3 [+ ^        BusinessObjectRef<ItemRevision > boLatestRev(tLatestRev);& u; |1 C1 N* A* ^. r- V# h
        
& t/ z: }$ y$ t  o- r, n        vector<Teamcenter:eepCopyData* > deepCopyData;
4 J; b' m4 e8 l9 E* v        boLatestRev->getDeepCopyData(&revOp, &deepCopyData);
9 X+ N- H4 o' i: W8 W9 r        / [5 q' k/ Q! {
        pReviseInput->setLogical("performDeepCopy", true, false );& C; B; G  t' c+ Z
        7 G3 e2 L4 j) L8 y$ u& r
        tag_t tRev = NULLTAG;
5 u* D) o. E( \3 M8 T! y3 H7 N        boLatestRev->revise(pReviseInput, &deepCopyData, &tRev);9 d" b$ S9 o- F% i) u% \' t

# `1 T# y/ H% J6 C" F) r        stat = AOM_save_with_extensions(tRev);/ y% K" e5 g6 I  R& ^. o+ l! L' h
        
4 Z, q& o( H* U+ [$ f        char *pszId = NULL;
9 j6 ~8 E) `. f) O        stat = WSOM_ask_object_id_string(tRev, &pszId);
2 E' v* W" s. Z        cout << endl << "    Object String: " << pszId << endl << endl;
$ F6 B6 F' ?) M4 O2 B' U# C8 c& d        , g; J' S- W8 m$ q4 i
        if (pszType) MEM_free(pszType);
0 r; q* W3 a: i; O$ [0 ~* Z        if (pszId) MEM_free(pszId);
1 W6 j# J0 }& F2 V9 [    }* [) H# b# u; x. k$ @( _
    catch( const IFail &ex )
$ X# n( R, N- A# W" Q+ i    {
: E8 y5 B4 B2 l/ l        logger()->error( ex.ifail(), ex.getMessage());. [; W- z4 q! i7 y
        cout << ex.getMessage()  << endl;
' H* G5 O4 r0 S, b% e% A& |& a# M( h        cout << "error " << ex.ifail() << endl;        4 c! b+ a6 v5 o6 L: h0 M
    }- a) w  Q+ V7 j7 B+ |
    const char* syslog_path;$ e6 y8 m; X5 E( ~: \
    syslog_path = EMH_ask_system_log();
: e6 ~0 W) F7 |0 T* W" R    cout << endl << endl;
& I0 g( z2 h" i0 V, O. g% a9 c. Q    cout << syslog_path << endl;
7 O$ G+ _, t0 y& n7 p% [+ }
+ x/ c$ G8 s$ K    stat = ITK_exit_module(FALSE);                                        6 \- _/ O' R4 N# K% e& Z
    return ITK_ok;+ k8 V) e2 ]! K2 I$ Q+ l
}[/mw_shl_code]9 O% v: M* V) `/ t9 M
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了