Objective
This is a few months ago when learning ITK development, the leadership asked to organize the study notes. Recently colleagues to do ITK development, sent to him. Feel that this article is helpful to others and decide to share it.
The development of ITK is divided into two kinds: Batch program and handler, in fact, EXE and DLL. Because the Teamcenter bottom is implemented in C, ITK also opens up the relevant interfaces, and ITK development is essentially pure C development. It should be quick to get started with C + + development basics.
- System environment: Windows 7 X64
- Development environment: VS2008 + VS2010 Ultimate
- Teamcenter version:9.1.2.2
Create a batch program to create a new project
Select File->new->project to bring up the New Project dialog box.
Select Visual C + + engineering, select Win32, and select Win32 Console Application.
Type project name, select Save Path, and click OK.
Pop Win32 Application Wizard, click Finish.
Project has pre-generated some files that need to be deleted and added to our own source code files.
Copy the test project files template.c and common_macros.h to the project folder.
Select project in the Solution Explorer window and right click on add,existing Item.
In the pop-up window, select Template.c and Common_macros.h, and click Add.
Project Setup is complete.
Compilation settings
Now, we need to do some setup to make sure that our project works.
In the Solution Explorer window, select Project Name, right-click Properties, and the Properties dialog box pops up.
To select C + +, click the General tab and set the following on the General tab:
- C and C + + header file Locations Additional Include Directory = "; C:\Siemens\Teamcenter9\include; C:\Siemens\Teamcenter9\include_cpp "(Specific path reference to the Teamcenter installation path of the development machine)
- Debug Information format= "program Database (/zi)"
Select the Preprocessor tab and add Iplib in the preprocessor definitions.
Select the Precompiled Headers tab to change Create/use precompiled Headers to not Using precompiled Headers (No precompiled Header file).
Select the Code Generation tab and the Runtime Library is set to the Multi threaded DLL (/MD).
Link settings
Select Linker, click the General tab and set the relevant parameters:
- In the output file option, the EXE program outputs name and output path are: \siemens\teamcenter9\bin\$ (TargetName) $ (targetext) (this setting can directly run the debug program, facilitate debugging, Modified only in debug mode)
- Additional The Include directory option is set to C:\Siemens\Teamcenter9\lib
Select the Command Line tab and add the relevant lib and Itk_main.obj,lib files as follows (slightly different depending on TC version):
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 bit settings (Optional settings)
Select the Advanced tab, if the TC is installed in the X64 version, the name needs to be set to 64 bits of the target project.
Set Target machine=machinex64 (/machine:x64)
Configuration Manager
Set platform to X64
Set debug path (optional setting)
For ease of debugging, you can change the EXE's output path to the installation path of Teamcenter, as follows: Command=c:\siemens\teamcenter9\bin\testitk90d.exe (Specific path reference TC installation path)
Command arguments= "-u=infodba-p=infodba-g=dba" (Specific parameters refer to the sample program requirements)
Working directory=c:\siemens\teamcenter9\bin\ (specific path refer to TC installation path)
Referencing third-party libraries
If your project refers to a third-party project, you need to introduce the third-party project's header and Lib files into the project.
- Include Directories
- Library Directories
Building a DLL project
Creating a dynamic link library program is similar to building a batch program.
New Project
Select Visual C + + engineering, select Win32, and select Win32 Console Application.
In the Solution Explorer window, select Project Name, right-click Properties, and the Properties dialog box pops up. Change the configuration type to DLL
Other settings See "Setting Up Batch program".
Developing Teamcenter ITK in the VS2010 environment