前言

这篇文章主要是用Teamcenter ITK开发的入门配置教程。几个月前学习ITK开发时,领导要求将配置过程整理成学习笔记。最近同事要做ITK开发,就发给他了。感觉这篇文章对别人还是有帮助的,决定分享出来。

ITK的开发分两种:batch program和handler ,其实就是exe和dll。因为teamcenter底层是用c实现的,ITK也开放了相关接口,ITK开发本质上就是纯粹的C开发。有C/C++开发基础的上手应该很快。

  • 系统环境:Windows 7 X64
  • 开发环境:VS2008 + VS2010 ultimate
  • Teamcenter Version: 9.1.2.2

建立Batch Program

新建Project

选择 File->New->Project ,弹出New Project对话框。

选择Visual C++工程,选择win32 ,选择win32 console application。
键入Project name,选择保存路径 ,点击OK。

弹出win32 Application wizard,点击Finish。

Project 预生成了一些文件,需要将这些文件删除,并加入我们自己的源代码文件。

将测试工程文件template.c和common_macros.h复制到工程文件夹下。

在Solution Explorer窗口选择Project,右键点击Add,Existing Item。

在弹出的窗口中选择template.c和common_macros.h,点击Add。

Project 建立完成。

编译设置

现在,我们需要做些设置以保证我们的Project能够正常运行。

在Solution Explorer窗口选择Project Name,右键选择Properties,弹出Properties对话框。

选择C/C++ ,点击General选项卡,在General选项卡中设置如下内容:

  • C和C++头文件位置 Additional Include Directory = ";C:\Siemens\Teamcenter9\include; C:\Siemens\Teamcenter9\include_cpp"(具体路径参考开发机的Teamcenter安装路径)
  • Debug Information Format="Program Database (/Zi)"

选择Preprocessor选项卡,在Preprocessor Definitions中添加IPLIB。

选择Precompiled Headers 选项卡, 将Create/use Precompiled Headers 改为Not Using Precompiled Headers(不预编译头文件)。

选择Code Generation选项卡, Runtime Library 设置为 Multi threaded DLL(/MD)。

链接设置

选择Linker ,点击General选项卡,设定相关参数:

  • 在Output File选项设定exe程序输出名和输出路径为:\Siemens\Teamcenter9\bin\$(TargetName)$(TargetExt) (这样设置可以直接可以运行debug程序,方便调试,仅在debug模式下修改)
  • Additional Include Directory选项设置为C:\Siemens\Teamcenter9\lib

选择Command line选项卡,添加相关的lib文件和itk_main.obj,lib文件全部如下(根据TC版本不同会略有差别):

customize_am.lib libadschangemanagement.lib libadschangemanagementdispatch.lib libadsfoundation.lib libadsfoundationdispatch.lib libae.lib libai.lib libaie.lib libaie_nx.lib libaiwebservice.lib libappr.lib libarchive.lib libarm32.lib libasbasmalignment.lib libasbuilt.lib libasbuiltdispatch.lib libasmaintained.lib libasmaintaineddispatch.lib libassy_jt.lib libbackup.lib libbase_utils.lib libbehaviormodelingdispatch.lib libBhm0bhm.lib libbmf.lib libbmidebase.lib libbob.lib libbom.lib libbooleanmath.lib libbriefcase.lib libbrndmgmt.lib libbrndmgmtdispatch.lib libcae.lib libcba.lib libcbadispatch.lib libcbaext.lib libccdm.lib libccdmdispatch.lib libce.lib libcfilter.lib libcfm.lib libclientcache.lib libclips.lib libclipsutil.lib libcm.lib libcmdispatch.lib libcmtmesdispatch.lib libcollabctx.lib libcondvalidation.lib libconfig.lib libconfigurator.lib libconstants.lib libcontmgmt.lib libcp.lib libcxpom.lib libdispatcher.lib libdmi.lib libdocmgt.lib libdocmgtapp.lib libecm.lib libeint.lib libeintstub.lib libepm.lib libextensionframework.lib libfclasses.lib libfnd0booleansolve.lib libFnd0formulamgmt.lib libFnd0profiler.lib libfnd0soacodecoverage.lib libfnd0soadebugmonitor.lib libfnd0soadebugmonitortypes.lib libform.lib libfoundationdispatch.lib libfpmgmt.lib libfpmgmtdispatch.lib libfunctionality.lib libgdis.lib libgfxbuilder.lib libgm.lib libgms.lib libgrm.lib libics.lib libicsie.lib libict.lib libinternal_exits.lib libinternal_server_exits.lib libissuemgmt.lib libissuemgmtdispatch.lib libitk.lib libjn9soapdminterfacenotificationservice.lib libjn9soapdminterfaceservice.lib libldap_exits.lib liblov.lib libmat1materialmgmt.lib libmaterialmgmtdispatch.lib libme.lib libmechatronics.lib libMem0memmgt.lib libmes.lib libmesbvr.lib libmeta.lib libmetaframework.lib libmfg.lib libmfgbvr.lib libmgc.lib libmld.lib libmrocore.lib libmrocoredispatch.lib libnxclone.lib libnxmgr_im.lib libobjio.lib libove.lib libpenetrationmgmtdispatch.lib libpie.lib libpkgart.lib libpkgartdispatch.lib libPnM0penetration.lib libpom.lib libproductvariant.lib libproductvariantdispatch.lib libproperty.lib libps.lib libpublication.lib libqry.lib libqsearch.lib librbf.lib librdv.lib libreq.lib libres.lib libsa.lib libschmgt.lib libschmgt_bridge.lib libscmccdispatch.lib libscp0subscmpl.lib libsecore.lib libserver_exits.lib libserviceeventmanagement.lib libserviceeventmanagementdispatch.lib libserviceprocessing.lib libserviceprocessingdispatch.lib libservicerequest.lib libservicerequestdispatch.lib libsharedcache.lib libsharedcachetypes.lib libsmartuibldr.lib libsml.lib libss.lib libssrsccuaclient.lib libstep.lib libsubscmpldispatch.lib libsub_mgr.lib libsyss.lib libtc.lib libtccbaextsvc.lib libtccbasvc.lib libtccore.lib libtccoreext.lib libtccurl.lib libtcgateway.lib libtcgsoap.lib libtcinit.lib libtcserverutil.lib libtcsoaprojectmanagement.lib libtcsoaserver.lib libtcsoaworkflownative.lib libtcsso.lib libtctrushape.lib libtcxhandler.lib libtc_utils.lib libtextsrv.lib libtie.lib libtransactionprocessing.lib libtransactionprocessingdispatch.lib libugmath.lib libusage.lib libusagewc.lib libuser_exits.ar.lib libuser_exits.lib libvalidation.lib libvendormanagementdispatch.lib libvis.lib libvispublish.lib libvisualization.lib libvm.lib libWdM0weldmgmt.lib libweb.lib oci.lib ociw32.lib plmContainerSDK.lib plmxmlExtensions.lib plmxmlSDK.lib xalan110.lib xerces270.lib

x64位设置(可选设置)

选择 Advanced选项卡,如果TC安装的是X64版本的,name需设定目标工程为64位的。
设定Target Machine=MachineX64 (/MACHINE:X64)

Configuration Manager

设定Platform为X64

设定Debug路径(可选设置)

为了便于调试,可将exe的输出路径改为Teamcenter的安装路径,如下所示:Command=C:\Siemens\Teamcenter9\bin\testITK90d.exe(具体路径参照TC安装路径)
Command Arguments="-u=infodba -p=infodba -g=dba"(具体参数参照示例程序需求)
Working Directory=C:\Siemens\Teamcenter9\bin\(具体路径参照TC安装路径)

引用第三方库

如果你的工程引用了第三方工程,需要将第三方工程的头文件和lib文件引入工程。

  • Include Directories
  • Library Directories

建立DLL工程

建立动态链接库程序,与建立Batch程序类似。

新建工程

选择Visual C++工程,选择win32 ,选择win32 console application。

在Solution Explorer窗口选择Project Name,右键选择Properties,弹出Properties对话框。更改Configuration Type为dll

其他设置参见“建立Batch Program”。

VS2010环境开发Teamcenter ITK的更多相关文章

  1. Eclipse环境开发Teamcenter RAC

    外包发过来的RAC程序老是报错,导致测试走不下去.Bug修复响应太慢,用jad看了下代码也不是很复杂,决定自己调试.在Eclipse 环境下开发Teamcenter RAC一般是用Eclipse,在做 ...

  2. win7 环境安装Python + IDE(vs2010)开发

    1.下载python安装文件 python-2.7.10.msi 网址:https://www.python.org/downloads/release/python-2710/ ,根据自己环境,选择 ...

  3. Halcon11与VS2010联合开发

    刚开始学习Halcon,需要使用Halcon与C++联合开发软件,查了网上的资料都是Halcon10的,我用的是Halcon11和VS2010的开发环境,实践了一下发现有一些问题,于是把自己的配置的过 ...

  4. 在VS2010下开发C语言程序

    妈蛋,我发现VS下开发C语言,并不是把文件名改成.C的就行了.VS2010不支持C99.  也就是函数局部变量声明必须放在函数的开头.难怪,我从Linux下移植过来的.c工程怎么是编译错误呢,发现是变 ...

  5. Boost学习总结(一)VS2010环境下编译STLport和Boost

    Boost学习总结(一)VS2010环境下编译STLport和Boost Boost简介 Boost库是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库.1998年,Beman G.Da ...

  6. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  7. VS2010环境下用ANSI C创建DLL和使用方法(转)

    源:VS2010环境下用ANSI C创建DLL和使用方法 . 创建DLL工程 1.2 创建一个dll工程. 操作:a.文件->新建->项目->Win32控制台应用程序. b.输入工程 ...

  8. PCL+VS2010环境配置

    PCL+VS2010环境配置 我本是效率至上的Linux党,但是PCL在Ubuntu下配置了几次都失败,不得不选择Windows 1.下载 http://go.rritw.com/www.pointc ...

  9. IDEA搭建scala开发环境开发spark应用程序

    通过IDEA搭建scala开发环境开发spark应用程序   一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安 ...

随机推荐

  1. 主流服务器虚拟化技术简单使用——KVM(二)

    通过Linux工具管理KVM 主流服务器虚拟化技术简单使用——KVM(一)部署了一台KVM主机,提到KVM可以通过命令行工具(virt-install.virsh)和GUI工具(virt-manage ...

  2. [BZOJ 1937][Shoi2004]Mst 最小生成树

    传送门 $ \color{red} {solution:} $ 对于每条树边\(i\),其边权只可能变小,对于非树边\(j\),其边权只可能变大,所以对于任意非树边覆盖的树边有 \(wi - di & ...

  3. POJ_1990 MooFest 【树状数组】

    一.题面 POJ1990 二.分析 一个简单的树状数组运用.首先要把样例分析清楚,凑出57,理解一下.然后可以发现,如果每次取最大的v就可以肆无忌惮的直接去乘以坐标差值就可以了,写代码的时候是反着来的 ...

  4. Linux下安装渗透测试框架Metasploit

    我们先来说一种方法,直接从github来下载: git clone --depth=1 git://github.com/rapid7/metasploit-framework metasploit ...

  5. Linux I2C驱动程序设计

    1. Linux I2C子系统架构 (1)I2C核心(I2C-Core):I2C 总线和I2C 设备驱动的中间枢纽,它提供了I2C 总线驱动和设备驱动的注册.注销方法等 (2)I2C控制器驱动(ada ...

  6. appium关于当前网络情况测试,实现打开关闭网络(python3.4版)

    appium关于当前网络情况测试,实现打开关闭网络(不需要root测试机) # python from appium.webdriver.connectiontype import Connectio ...

  7. 小白详细解析C#反射特性实例

    套用MSDN上对于反射的定义:反射提供了封装程序集.模块和类型的对象(Type 类型).可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性.如果代 ...

  8. myEclipse修改字体大小

  9. Linux 系统下安装 mysql5.7.25(glibc版)

    前言:经过一天半的折腾,终于把 mysql 5.7.25 版本安装上了 Amazon Linux AMI release 2017.09 系统上,把能参考的博客几乎都看了一遍,终于发现这些细节问题,然 ...

  10. java email

    package email; import java.io.File;import java.util.Date;import java.util.Properties; import javax.a ...