|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 p6 a. p, z; S# a/ y
Teamcenter C++二次开发源码分享:创建item和item版本6 I( ^" z% ]9 j$ X1 F
, ^& D) w7 V# ^* A" I
7 P4 E* [9 M0 k通过创建businessobject 指定的createinput 完成对象的创建
; }" e# ], @( }$ {1 h
/ }' S) W) _; {7 O$ P, m9 d& h
6 ?3 {: l* m$ ?- #include <constants/constants.h>* N5 }) p; S/ J" R3 N0 i" e- M
- #include <TCcore/Item.hxx>
$ V8 j* b( C3 |5 x3 s5 _ - #include <metaframework/CreateInput.hxx>
]8 w4 A/ j! T8 z - #include <metaframework/BusinessObjectRegistry.hxx># E' n |( N2 \2 E8 M% t
/ u" t- D5 C, N" Q5 ~- using namespace std;! J* [0 f* n' q( b' a3 P8 P+ y
- $ d, |# C* t B/ f) ?
- static void createItemAndRevisionWithDifferentNames(void)
+ W1 [2 ?$ [+ R* r& r - {
7 L9 X! M7 t! r4 T8 s" E - int ifail = ITK_ok;' d/ X( ^5 b ?+ W
- 3 p6 }+ f5 ^9 B" W' W! F
- char type_name[] = "Item";/ S- j* W l2 ]! P
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
4 S5 H2 x# G; q, e$ _* S5 K
# L% }. [) m+ a i! X( v3 Y- //Revision type name is not always <item type name>Revision
7 @& X" j: e& ?2 ?$ V N: y - char *revision_type_name = 0;
4 C; q; _. A/ U" }+ ` Q - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
: A/ Y1 k- E" ? - 7 ^$ H, T: K! H O3 }+ H$ K
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
3 r3 E- m# u* j9 c, X& \5 ` - 6 y; O6 t; _' @- N7 _5 k
- MEM_free(revision_type_name); {0 F/ y Q4 X
- ( E& `9 ~- M6 [$ a! V5 W4 |/ y7 H' d
- // set Item properties
, s3 {5 ~: X- `9 U! M( \0 U8 T - itemCreateInput->setString("item_id", "1234567", false);
: h$ r5 p7 L! V- z+ x9 M - itemCreateInput->setString("object_name", "My Item Name", false);
5 {5 y" \. g2 h6 Q! g - itemCreateInput->setString("object_desc", "My Item Description", false);: G8 a0 C$ j& H! u9 j1 Z
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);4 t% n. g- B# z/ _) S/ d! I
2 K1 W8 a1 N) M5 r; r; c. p" k8 l6 W- // set Revision properties7 T8 J4 I/ r8 z1 }* G: ~
- revCreateInput->setString("item_revision_id", "00", false);, f0 z. B3 T" t5 P" v ]
- revCreateInput->setString("object_name", "My Revision Name", false);1 V3 `0 e& m' [$ ]* \
- revCreateInput->setString("object_desc", "My Revision Description", false);6 }: N7 y9 M2 A0 I0 o% ^. _
- $ ]* H# z! Q; B' j: A/ S6 ?6 B
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));3 A( i7 p, Y# y5 E( A' z
- 4 S7 K5 L/ n" P( V7 i
- ifail = AOM_save_with_extensions(pItem->getTag());! p. i8 o3 S' ^- f! _5 |9 ^, P
- & D4 j& E) B2 G" L2 _# P6 f6 A
- // If the Revision is not saved it will inherit the Item's Name and Description.
( P- K7 D3 e, t. B0 Y - ifail = AOM_save_with_extensions(revCreateInput->getTag());/ |% S; _8 V) s! i2 O9 S* n1 ?+ D
- }
复制代码 & y5 ^0 C4 t! U7 M, B
- X9 L( P9 m \7 ]
|
|