|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 }4 p# k ]% N( Q4 R; [Teamcenter C++二次开发源码分享:创建item和item版本
! m/ K3 Q/ S4 Y+ n8 }* _5 `
: r! j+ U$ p7 Z1 d/ |3 f! O1 x/ N( D$ j( M! i- Y
通过创建businessobject 指定的createinput 完成对象的创建
; `" B# R3 ~+ {' R8 J9 P7 K a
- }! e1 \* h3 Z& ]7 n9 L9 \6 ?
- t8 {* z, e, y; s- #include <constants/constants.h>
7 J7 e: B- y( r8 F& R9 x - #include <TCcore/Item.hxx>
1 B M2 o0 t" ]8 N; c. @ k* @ - #include <metaframework/CreateInput.hxx>
! P) X: H4 m# q' h, G9 r - #include <metaframework/BusinessObjectRegistry.hxx>. c J% o, Q( F1 w$ W' R" |
4 H1 d* a' o; c/ o! p- using namespace std;
2 v6 p& o) m7 F# d' C% g - # C) E! M4 X+ ]
- static void createItemAndRevisionWithDifferentNames(void)4 c1 C% x) i' j+ V! l
- { C T. p6 N- e5 `- Q
- int ifail = ITK_ok;/ `" N- X8 m( v
5 Q7 s7 z9 g1 k, q2 M5 x- char type_name[] = "Item";- u( i! K" F, X. l$ ]* m" p% ~3 O/ H
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
' v4 I4 ?/ v6 j, R - . t$ L1 W3 u+ _' M
- //Revision type name is not always <item type name>Revision; e) f0 d1 V3 F' D4 h1 u3 G! ]& @
- char *revision_type_name = 0;3 w$ x0 G& `0 x9 f4 }6 O- Z& t' S
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
+ D. Z A% [! q6 J5 y
0 }, H6 J1 e* Q! I9 i' O' ~- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
2 [0 g g: |! p. k0 ~: { - ' H3 h7 `7 S6 f; j U4 F
- MEM_free(revision_type_name);
$ r: s. x+ }5 z8 W' _. q% w$ F - / ?) }9 d' z, f; f& ?
- // set Item properties8 J) ]+ K4 G. b- m9 {
- itemCreateInput->setString("item_id", "1234567", false);
?6 B/ o4 R/ z! G - itemCreateInput->setString("object_name", "My Item Name", false);# T2 T7 ^- F- ^
- itemCreateInput->setString("object_desc", "My Item Description", false);
$ I: R4 H4 i9 o" v! w7 X - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
( D6 d% B! o% o6 D% b9 j0 _ - & X: J, [4 i( p: n6 c+ v+ T/ e
- // set Revision properties7 \* t- l8 p& K9 S
- revCreateInput->setString("item_revision_id", "00", false);
* C4 K3 m3 T4 h( B! B) L/ y - revCreateInput->setString("object_name", "My Revision Name", false);* ]! X g0 Y" ?: j) H
- revCreateInput->setString("object_desc", "My Revision Description", false);
- u% p+ C9 R1 j3 B* z2 a/ }8 K! W - # }+ U* v9 D7 U1 |) B# A5 \% z0 W
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));! J1 } S( ]& X; [5 e
- $ s1 f: [9 W m4 k4 @6 v
- ifail = AOM_save_with_extensions(pItem->getTag());
" B5 d3 w0 p# G. F C6 O- E! v9 H( ]6 A) `
' L3 J* |9 U9 o6 L9 Z4 }. t2 E- ?8 t9 C- // If the Revision is not saved it will inherit the Item's Name and Description.1 i, j' A5 o- }* L
- ifail = AOM_save_with_extensions(revCreateInput->getTag());5 j4 M3 \6 r2 X3 r
- }
复制代码 8 u4 T- i9 k, y' O
3 o) ^" W5 T7 \( M
|
|