|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! s9 a) A' I1 R9 o$ d% s
Teamcenter C++二次开发源码分享:创建item和item版本
! s. [ n% Y/ P& a1 ?; k
0 G, D5 E4 x3 q' [8 E9 s! M! P8 h, D/ }- O
通过创建businessobject 指定的createinput 完成对象的创建
) M1 H3 g' P" |
- M1 w$ Z* q; n( l+ j/ L. M% K8 k& ], y z# v! Z/ S" J: r
- #include <constants/constants.h>! S: k6 T: v4 h- O0 d2 m
- #include <TCcore/Item.hxx>
5 H: O0 Y8 e' a: p' d8 H& k - #include <metaframework/CreateInput.hxx>9 x: d! x. G8 u/ ~; M6 n( r
- #include <metaframework/BusinessObjectRegistry.hxx>+ w( h, U: b" `. w9 R0 {; C
$ A/ d C: ~+ \9 c- using namespace std;
/ ~0 L: u c( s) K# f! E
. }( K' \( G$ }$ U: d. w7 ~- static void createItemAndRevisionWithDifferentNames(void)# L1 S! q- D/ D7 g6 ]& @$ ?
- {: C* S$ I+ ~1 k& g6 p
- int ifail = ITK_ok;
) N) o! x8 j2 d+ ]4 ~ - 6 {' }! G J$ L& a/ O% C
- char type_name[] = "Item";9 I; l# ~$ Z( M1 T X" u
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));: e9 R+ h1 n5 z6 |& b; ~. h6 C
0 N" @& |, M# b, h6 u! @: }8 d" l9 B( J- //Revision type name is not always <item type name>Revision
- d3 F# C* f) m- r3 A# [ - char *revision_type_name = 0;. \. X& i$ s- y* |' X2 W/ W/ V, H( O7 m
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);% o+ V" ~" z7 c" U
; K' {8 m% f% n. M- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
3 e. {/ x9 ~9 } J - 7 I6 s4 \/ P# _6 i% M
- MEM_free(revision_type_name);+ N2 y" E+ J6 C. z6 n9 e+ J! m% L
- 9 J# }* Q3 C2 [* b; b/ q" {
- // set Item properties) ~3 W$ n8 m) ^- n2 \) d2 M
- itemCreateInput->setString("item_id", "1234567", false);
; _2 f6 D: @' O! D+ j8 X- ? - itemCreateInput->setString("object_name", "My Item Name", false);
9 S' t+ H7 X b1 V+ M/ u! m6 i: C - itemCreateInput->setString("object_desc", "My Item Description", false);
+ |: \- \/ f) L4 q) a - itemCreateInput->setTag("revision", revCreateInput->getTag(), false); {, {# _& B' d, j. D, ?1 e
9 ^0 ^7 O- i( k3 f# k1 W- // set Revision properties
+ T' n( ?- M/ q/ \; Z - revCreateInput->setString("item_revision_id", "00", false);
& d8 O) Q3 A1 I3 v' l$ ? - revCreateInput->setString("object_name", "My Revision Name", false);6 x ?6 u' E( Z. C
- revCreateInput->setString("object_desc", "My Revision Description", false);
. X% R# f; Q0 l
3 L) S3 e# d. k6 _6 `- f) r" ]6 h- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
8 t3 Q$ ^8 O: N, i% C# N7 L- _
( ^% q0 o6 ^& M, W; Z* x+ \# q- ifail = AOM_save_with_extensions(pItem->getTag());
V: h$ F% N% g. | - * N) }( r0 O' L$ q9 J
- // If the Revision is not saved it will inherit the Item's Name and Description.* ?: l: g% V0 b$ ?: {+ h5 Z
- ifail = AOM_save_with_extensions(revCreateInput->getTag());! Q! `% S$ X% g) s! I1 e9 n3 v
- }
复制代码 # S7 W0 X$ Z* i
9 ]/ W% Q6 D; s/ O
|
|