ITK 服务端开发:External 与 Internal 实战

基于 IMA Teamcenter 知识库整理的 PLM 实战指南。

ITK(Integration Toolkit)是 Teamcenter 最核心、最强大的二次开发接口。分为 External ITK 和 Internal ITK 两种方式。

External ITK(独立程序)

External ITK 是独立运行的程序,通过 ITK API 登录 Teamcenter 并执行操作。常用于数据导入导出工具、批量处理工具等。

最简单的 External ITK 程序(C)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// Train.c
#include <stdlib.h>
#include <tc/tc.h>

int ITK_user_main(int argc, char* argv[])
{
    int result;
    if ((result = ITK_auto_login()) == ITK_ok) {
        printf("Hello PDM!");
        result = ITK_exit_module(TRUE);
    }
    return result;
}

编译和执行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 设置环境变量
set MSDEV_HOME=C:\PROGRA~1\MICROS~4\VC

# 编译
compile -DIPLIB=none Train.c

# 链接
linkitk -o Train Train.obj

# 执行
template -u=<user> -p=<password> -g=<group>

Internal ITK(嵌入 TC 服务)

Internal ITK 运行在 Teamcenter Server 进程内,推荐使用 Custom Hooks 方式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// 1. 定义 Site Preference(允许多值)
IMAN_customization_libraries = site-name

// 2. 设置环境变量
set IMAN_USER_LIB=%IMAN_DATA%\local\lib

// 3. 实现回调注册函数
extern "C" int __declspec(dllexport)
cust1_register_callbacks()
{
    CUSTOM_register_exit("cust1",
        "User Exit Function",
        (CUSTOM_EXIT_ftn_t)your_function_name);
    return ITK_ok;
}

User Exits(用户出口)

修改 %TC_ROOT%\sample 内以 USER_ 开头的函数。示例:自定义 Item ID 编码规则:

1
2
CUSTOM_register_exit("cust1", "USER_new_item_id",
    (CUSTOM_EXIT_ftn_t)CUST_new_item_id);

AOM 数据对象操作标准流程

操作 步骤
修改对象 AOM_load() → AOM_lock() → AOM_set_xxx() → AOM_save() → AOM_unlock()
创建对象 创建对象 → AOM_save() → AOM_unlock()
删除对象 AOM_load() → AOM_lock_for_delete() → AOM_delete()

⚠️ Internal ITK 修改会影响整个 TC 服务,务必在测试环境充分验证后再部署到生产环境。

本博客文章采用 CC BY-NC-SA 4.0 许可协议
服务器推荐

腾讯云 · 新用户专属优惠

本博客部署在腾讯云服务器,稳定运行一年多。如果你是新用户或想搭建个人项目,推荐试试腾讯云的优惠活动。

查看优惠详情 →
阅读
上一篇
Java API 与 SOA 服务开发实战指南
下一篇
Gemma 4 12B 本地部署与全方位实测:谷歌开源多模态甜点级模型
广告

📚 关注公众号,免费获取技术材料

扫码关注公众号,回复「资料」领取:

  • 📘 企业架构设计模板
  • 📗 数据治理实施指南
  • 📙 工业软件技术白皮书
公众号二维码

长按或扫描二维码