本文使用批处理方式连接 3DE 服务器创建会话来简单介绍批处理应用的创建方法。
目录
1、创建步骤(Step-by-Step)
1.1 新建 Module
1.2 新建 Class
1.3 编写 Class 源文件
1.4 添加模块和框架依赖
1.5 编译运行
1、创建步骤(Step-by-Step)
开始之前,首先创建一个 Workspace 和 Framework ,具体步骤详见 CAA 二次开发 —— 创建项目 ,也可以直接打开已有项目的 Workspace 和 Framework 。
1.1 新建 Module
在 Framework 下新建一个 Module (如:BatchMdl), Module 的类型选择 Executable (.exe) ,例如(图 1):
1.2 新建 Class
在 Module 下新建一个 Class (如:MyBatch), 例如(图 2):
点击添加后会弹出为 Class 设置父类的界面(图 3),直接点击 Finish 。
1.3 编写 Class 源文件
在本示例中我们不用类的特性,删除 MyBatch 中模板自动添加的构造函数和析构函数的实现。
首先在源文件中添加以下 3 个函数:
函数 CAAAdpCreateSession() 和 CAAAdpCloseSession() 是 CAA 用例中的函数(位于 CAADoc\CAAPLMClientAdapter.edu\CAAAdpUtilities.m\src 目录的 CAAAdpCreateCloseSession.cpp 文件中),本文直接拷贝使用,未作修改。
- CAAAdpCreateSession():创建会话,用于测试是否成功连接到服务器,函数实现如下:
HRESULT CAAAdpCreateSession(const char* iRepository,const char* iServer,const char* iLoginTicket,CATBoolean iTrace){cout << " CAAAdpCreateSession" << endl;if (TRUE == iTrace){cout << " Repository=" << iRepository << endl;cout << " Server =" << iServer << endl;cout << " Login Ticket =" << iLoginTicket << endl;}HRESULT rc = CATPLMSessionServices::SetPLMSessionParameter("Repository", iRepository);if (FAILED(rc)) { return 1; }rc = CATPLMSessionServices::SetPLMSessionParameter("Server", iServer);if (FAILED(rc)) { return 1; }rc = CATPLMSessionServices::SetPLMSessionParameter("LoginTicket", iLoginTicket);if (FAILED(rc)) { return 1; }rc = CATPLMSessionServices::InitPLMSession();return rc;
}
- CAAAdpCloseSession():关闭会话,函数实现如下:
HRESULT CAAAdpCloseSession()
{HRESULT rc = CATPLMSessionServices::ClosePLMSession();return rc;
}
- main():主函数,实现如下:
int main()
{HRESULT hr = CAAAdpCreateSession("PLM1","https://3ds.mydomain.com:443/3dspace", // 替换为自己的服务器域名"NkFFMENEMzUwODU0NDdBNjgyQkJGQUU5MkY0MjMxQjl8YWRtaW5fcGxhdGZvcm18fHx8MHw=", // 替换为自己的登陆票TRUE);if (SUCCEEDED(hr))cout << "连接成功" << endl;elsecout << "连接失败" << endl;CAAAdpCloseSession();return 0;
}
服务器域名在平台配置的连接属性中查看,例如(图 4):
登录票查看方法:使用 Web 端(浏览器)登录 3DSpace 后,点击左侧的体验配置 - 管理登录权证,再点击创建后可以看到生成的票据(图 5)。
然后在源文件中包含必要的头文件,具体如下:
#include "CATUnicodeString.h"
#include "CATPLMSessionServices.h"#include <iostream>
using namespace std;
1.4 添加模块和框架依赖
模块依赖如下(图 6):
WIZARD_LINK_MODULES = JS0FM \
JS0GROUP CATPLMComponentInterfaces
框架依赖如下(图 7):
<prerequisite name="CATPLMComponentInterfaces" access="Public" expose="ExposePrereq" />
<prerequisite name="SpecialAPI" access="Public" expose="ExposePrereq" />
<prerequisite name="System" access="Public" expose="ExposePrereq" />
1.5 编译运行
编译完成后生成 BatchMdl.exe 文件(图 8):
运行 BatchMdl.exe 文件需要加载相关的依赖库,将依赖库的路径添加到环境变量中,命令示例如下:
@echo offset path=D:\CAATest\win_b64\code\bin;D:\DSV6\B426\win_b64\code\bin;%path%BatchMdlpause
创建一个批处理文件,将上述命令拷贝到批处理文件中,双击批处理脚本运行效果如下(图 9):
本文通过批处理创建会话简单演示了批处理应用的创建步骤,如有错漏,欢迎留言指正。