|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 b* M+ f) |' j n1 b) H8 [
Teamcenter C++二次开发源码分享:创建item和item版本
; Z( \; d( w& y4 Q# x
" l4 W) f: F9 _9 J8 _/ n- f, H3 O! c: ~' y6 i, v/ E0 Y+ U
通过创建businessobject 指定的createinput 完成对象的创建; _) P+ X+ s! o# F4 c$ _ c" N
+ t) g6 r$ n5 p3 y: |6 r( a% T* V$ @
- #include <constants/constants.h># [0 `; j' L' f: T+ ^
- #include <TCcore/Item.hxx> ]7 {) t, G4 |0 Q8 k2 |4 I
- #include <metaframework/CreateInput.hxx># `- _, q" q" E5 |% F8 u! t: @0 j
- #include <metaframework/BusinessObjectRegistry.hxx>
, C( J* \9 m% O% {4 E7 y
. Z R7 N* H: N" g- using namespace std;0 @' L, h1 |: _- l; E- D+ h
; A5 j. ]! ]3 U" `* y. S- static void createItemAndRevisionWithDifferentNames(void)
9 K# k" B; l- ~! q, x% w - {7 |/ J4 W, @( F/ k: _2 h: X4 _
- int ifail = ITK_ok;6 b5 S x3 g$ c) X
Y+ r5 `6 a6 {8 p( j5 f- char type_name[] = "Item";
( m7 p* s& @9 p" P - Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
9 S( J- I/ d$ ~' E3 N, h - ) u6 o. F! Q4 X( E6 o
- //Revision type name is not always <item type name>Revision! y: _$ ?* E4 c$ u" f8 l8 ]
- char *revision_type_name = 0;
. G3 \5 Z$ G5 M+ u# }) j - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
0 D9 R2 r1 |5 _. X
8 p4 R6 w6 Y: x; s3 @- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));7 p1 ], U& F- H8 k" A' ^" F
-
1 V+ W, a& Z) x* k) ~ - MEM_free(revision_type_name);; O; b6 E+ [9 k, [3 X% [
' |% W7 a1 s4 G* P% y5 O* u- // set Item properties
% ]5 ~- x; P- j' }5 D4 p) K; k" B/ R - itemCreateInput->setString("item_id", "1234567", false);
( R* u$ E L4 v: T; A - itemCreateInput->setString("object_name", "My Item Name", false);
- N d! t3 o. N3 H; Q% K' h - itemCreateInput->setString("object_desc", "My Item Description", false);* Z, g( w. c; j5 h& B
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);6 v4 l( _% p# T6 C
3 V: ~5 D3 O: B+ G7 D H! ?0 q. v- // set Revision properties# R7 D: b; F/ ?* `- x" a9 d- G, c1 y
- revCreateInput->setString("item_revision_id", "00", false);
/ C( d. K& G3 | - revCreateInput->setString("object_name", "My Revision Name", false);
0 [6 j0 V+ f' w/ b+ @' x9 J! x - revCreateInput->setString("object_desc", "My Revision Description", false);
* ~ l1 Q- Z$ P9 K9 ^, b
8 i Q5 z6 A5 F" t9 l- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));3 |) e2 C. |1 U
- u/ h$ d a; `, _. B' x8 t- ifail = AOM_save_with_extensions(pItem->getTag());7 s7 p$ R' l8 W. c% B
! I, R+ U) e! ]: w- // If the Revision is not saved it will inherit the Item's Name and Description.
! l, W2 `) R; ]& r0 e - ifail = AOM_save_with_extensions(revCreateInput->getTag());
4 S$ p& B% q- R$ c* ^( b r- Q" b# y - }
复制代码
- w8 k/ W: X$ A5 a9 ~
8 B a6 f: k7 Z# O- P/ x |
|