PLM之家PLMHome-工业软件践行者

teamcenter C++二次开发源码分享:创建item和item版本

[复制链接]

2015-1-21 13:16:44 5351 0

admin 发表于 2015-1-21 13:16:44 |阅读模式

admin 楼主

2015-1-21 13:16:44

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
# e+ K* y! E3 \7 @
Teamcenter C++二次开发源码分享:创建item和item版本
1 R3 X! m1 k" @: V( h$ Z
' P/ I2 Z. a1 ^- s. _( f
5 `1 D  m3 D3 y+ b  _9 c  H
通过创建businessobject 指定的createinput 完成对象的创建& ]1 e4 g) n2 @; m4 k/ }. E

1 M8 L6 @) T/ P5 {0 |; Y1 X) v
# V2 s4 ?& \$ g! o
  1. #include <constants/constants.h>
    . [+ E% F4 a; d/ L
  2. #include <TCcore/Item.hxx>
    + M' c' _2 a" v- \% z0 d; Y
  3. #include <metaframework/CreateInput.hxx>
    1 I) H6 O" ^& ^! d
  4. #include <metaframework/BusinessObjectRegistry.hxx>) ], F( @* ]  B% p6 Q/ V
  5. " {2 R" p/ ]  |* {7 n1 v/ l
  6. using namespace std;
    ; J1 B  p6 l2 T: l
  7. / d- O& j' v( @1 |( \, b) ?
  8. static void createItemAndRevisionWithDifferentNames(void)
    ) N% I% j( t" j  U
  9. {
    . W* A/ M4 s4 p/ Y. g6 m7 Z
  10.     int ifail = ITK_ok;
    6 w+ f! x1 U! |' R, `1 K# l" A

  11. & j- x3 P; v3 a; T
  12.     char type_name[] = "Item";
    : T. y  d3 n8 v3 r% l) b
  13.     Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
    , a6 D. z+ e. E# v! {3 A# u1 d
  14.   Y. |0 H0 V8 o* r7 j1 E
  15.     //Revision type name is not always <item type name>Revision
    * ]8 O/ p$ j1 _: t) ?2 _
  16.     char *revision_type_name = 0;
    5 r" q; M9 S# Z4 q; ?. B
  17.     CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
    8 v0 B! Q8 I1 R

  18. ! x* `1 g" f( E* f
  19.     Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
    ' G& @. w8 s1 Q% O
  20.       ]/ u0 S8 q$ c; i1 n# s" ]
  21.     MEM_free(revision_type_name);
    1 L' j+ m  ~, e7 |+ e4 Z$ `
  22. 9 X% Z1 N& J$ d6 E6 Q' w
  23.     // set Item properties; R/ v7 N6 j9 e* }' A1 ^, t/ m! w
  24.     itemCreateInput->setString("item_id", "1234567", false);; S' s! E( L; w
  25.     itemCreateInput->setString("object_name", "My Item Name", false);
    ) s9 l8 W4 z3 Y: c- B: p
  26.     itemCreateInput->setString("object_desc", "My Item Description", false);) j" Y- s9 f% Z2 c( R
  27.     itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
    : b( A1 _6 o. \. x. y- x

  28. 2 c2 z+ e/ u# U# L2 [- n5 Z2 v
  29.     // set Revision properties% r( g/ _. O0 B+ |0 |! V! V# E
  30.     revCreateInput->setString("item_revision_id", "00", false);
    % G; Q; K: H% J, q- T8 o) `1 g- H
  31.     revCreateInput->setString("object_name", "My Revision Name", false);! a! i- S4 `: v/ R, c# m$ [5 k# P
  32.     revCreateInput->setString("object_desc", "My Revision Description", false);
    5 e8 A0 o/ x! Z% j$ s1 p3 K* e* l
  33. # i7 K8 L+ E8 D
  34.     Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));; R; J: z- h3 `' X4 Y( T( [. }6 e5 y; b+ M. H
  35. 2 A. p' o- n) r5 \; S
  36.     ifail = AOM_save_with_extensions(pItem->getTag());
    9 r9 R9 [0 y6 I  q8 a7 r' M5 H
  37. % V+ o3 k; o- b9 l' ]: C
  38.     // If the Revision is not saved it will inherit the Item's Name and Description.
    2 q+ g( j! D+ `5 a
  39.     ifail = AOM_save_with_extensions(revCreateInput->getTag());; T# l4 b2 h3 v2 _0 |: o( ]+ G% Z
  40. }
复制代码
! \. g1 k$ u1 W
5 m' l; S1 |; T$ G7 |5 u
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了