|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 v4 E% N# |: A& `1 sTeamcenter C++二次开发源码分享:创建item和item版本# x% d/ c2 K1 k3 D
, J( F5 @3 R4 ^
9 w+ h* r2 N* u% Z/ F通过创建businessobject 指定的createinput 完成对象的创建
M+ J5 H/ P: L; R: L5 X
4 A. L& ]* M& G9 L/ \2 W2 H
2 C9 F4 b" ^* I) d- #include <constants/constants.h>
7 `) Z9 v5 W4 V - #include <TCcore/Item.hxx>6 q8 |) U- x) J3 s
- #include <metaframework/CreateInput.hxx>
: ^% ^0 ~( `% o. ~! _ - #include <metaframework/BusinessObjectRegistry.hxx>2 B9 R9 n7 ~# Y- G2 Z4 c: X' `; ~
- # \% o- [" L; j/ t, V, O- C: E
- using namespace std;
* {" U; S) ]5 i3 ~ u( v: c7 M- C3 B
2 K; U9 r3 R" z- A; c+ k: M) s- static void createItemAndRevisionWithDifferentNames(void)! x3 K7 H3 z( b. n( i/ C ]
- {* `& @) K' _3 w7 B
- int ifail = ITK_ok;- B/ t% G9 W8 |3 j' j& x$ g5 R
4 z& C7 F% r; j- char type_name[] = "Item";9 j+ @* G% t6 f2 L' f# a( X0 o4 E
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));0 P' Z# k M1 W
& B, g8 j$ F U: \% L1 i- b- //Revision type name is not always <item type name>Revision4 c- u5 n$ [8 J% k6 V7 U9 V1 \6 N
- char *revision_type_name = 0;
& D a3 O2 K8 r2 r6 S' Z0 K, F4 D* } - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
' D7 [3 Z. s: Z6 r4 _ - 6 O% {8 y" F: }& W' K* s
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
' h# O3 {$ _9 v2 R( w p5 }* I -
( u4 }% n+ I: \$ g - MEM_free(revision_type_name);2 B# N# v/ x! ]/ a T- D3 T
- & x( f: u r: I
- // set Item properties
2 k+ ]. |: d8 T2 R: `5 _ H4 ] - itemCreateInput->setString("item_id", "1234567", false);
" T0 d3 |. E& g4 |8 \. P" d8 k - itemCreateInput->setString("object_name", "My Item Name", false);9 E |* C8 V* D2 d( B& _) @, D2 F
- itemCreateInput->setString("object_desc", "My Item Description", false);! W, K1 x* n0 C1 }: f! s
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
' h7 E0 X& a* M6 I) T
$ U5 r1 A, d+ y% ^$ p% h- // set Revision properties
) c( ?8 n+ O1 O$ p. W2 { - revCreateInput->setString("item_revision_id", "00", false);
B4 |7 g4 X, ?3 z, m# Z; S - revCreateInput->setString("object_name", "My Revision Name", false);6 I; @; n/ d3 K9 H+ Z2 M" ]5 k
- revCreateInput->setString("object_desc", "My Revision Description", false);
7 @- E% ^( g( u - ( B6 T' g, u0 W6 S, q
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput)); ^1 {2 T5 D' B7 u
# p; W+ K9 U* p; u- ifail = AOM_save_with_extensions(pItem->getTag()); c4 e% n2 k( n' Q* p
- * y, q3 \* ?2 W e( R
- // If the Revision is not saved it will inherit the Item's Name and Description., ]4 s$ m# T& O$ n0 w
- ifail = AOM_save_with_extensions(revCreateInput->getTag());0 d6 t$ m, j: [% d: Q3 V [6 n
- }
复制代码
) D( m7 Y/ w% |( Y: B+ w: c" R: v6 p. c' J
|
|