|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
5 D2 g# y; {0 s- c# h& \# XTeamcenter C++二次开发源码分享:创建item和item版本
& s9 S4 J) G# [ o1 T/ g! h. T
U# ?0 m5 |% G- D& D- q' O& T D7 H+ |" g, D, c
通过创建businessobject 指定的createinput 完成对象的创建3 ~, x" z% ~ X5 h) h+ _* s
$ m" K+ s+ }) t( G
5 [; x' ~- w& N" X3 X- #include <constants/constants.h>
3 N) v. W* ?; @* d' m - #include <TCcore/Item.hxx>! z6 p6 \8 Z9 ]. T
- #include <metaframework/CreateInput.hxx>4 ^5 z3 L/ z7 c: R) S/ P* \6 f& a
- #include <metaframework/BusinessObjectRegistry.hxx>
) _3 c q9 m1 ?& }3 b* V8 B - 7 u4 j9 l2 y, {
- using namespace std;
2 l" W! Q( n. D - & m4 y' S3 S7 Y+ r9 C" G8 d
- static void createItemAndRevisionWithDifferentNames(void)
# Q. y: `9 \6 E- E - {; h" `+ Z. i$ M0 q y. ~7 T, e
- int ifail = ITK_ok;
5 @( a. t: k) d0 ?+ ?5 l
, u- k1 g: V4 @* V# b6 P- char type_name[] = "Item";" T! j6 `- ]# x+ {% B p
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
& M8 D" ~( u) I* e @ - % F. U2 o' @9 T# L D
- //Revision type name is not always <item type name>Revision
3 Z) r3 `8 a5 m0 ?- t - char *revision_type_name = 0;
" ^8 k5 j5 F) p2 v - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
4 R/ o# k1 ?2 ?4 O1 E% ~ - , i8 |8 s4 C6 M2 c2 g" g
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
! I. V$ W; ?, U, L! p/ Y( g6 R& J3 f - 3 H$ Q2 e- m! o! n
- MEM_free(revision_type_name);; }# O/ c9 ^, ?0 N
- 3 T$ l L4 Y7 R1 I0 N0 S* R- ?
- // set Item properties# }" m- ^$ \. i9 Y! v
- itemCreateInput->setString("item_id", "1234567", false);/ c" q+ x3 q% x4 p" D; L E
- itemCreateInput->setString("object_name", "My Item Name", false);
( \+ ] m: L, z' y( V, a2 r - itemCreateInput->setString("object_desc", "My Item Description", false);
& k H" ^! v/ K+ X; L9 F' G - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
7 |" w4 _6 x- _/ [1 w$ n2 v
2 q4 s) B/ V" f$ l$ {- S ~- // set Revision properties
7 T& h" q0 P2 B+ u - revCreateInput->setString("item_revision_id", "00", false);
! h' l/ s" @ Y6 c% n - revCreateInput->setString("object_name", "My Revision Name", false);) x' R. W" c/ n& X: k+ ?" |+ W
- revCreateInput->setString("object_desc", "My Revision Description", false);
0 o8 E# P+ A: ~# d; j# l1 d, T' R - ! f9 t! f: U2 f7 }/ _2 z
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
6 `1 c" k2 g' n3 ]' I - 5 Y7 x. r5 T% k8 P6 Y( C0 Z
- ifail = AOM_save_with_extensions(pItem->getTag());
" U7 e4 b( a4 ?5 }! F `
# }& T! Z# }) h& |) Y- // If the Revision is not saved it will inherit the Item's Name and Description.
2 m7 x% @; F1 ^1 e, `+ Q+ b) A - ifail = AOM_save_with_extensions(revCreateInput->getTag());( n' p7 @8 A- y9 _( I8 n
- }
复制代码 % R) p! N# Z! ` U2 Z9 q
7 D, k @; D( R5 U9 o8 o
|
|