CAA 二次开发 —— 创建批处理应用

本文使用批处理方式连接 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

1.2  新建 Class

在 Module 下新建一个 Class (如:MyBatch), 例如(图 2):

图 2

点击添加后会弹出为 Class 设置父类的界面(图 3),直接点击 Finish

图 3

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;
    else
        cout << "连接失败" << endl;

    CAAAdpCloseSession();

    return 0;
}

服务器域名在平台配置的连接属性中查看,例如(图 4):

图 4

登录票查看方法:使用 Web 端(浏览器)登录 3DSpace 后,点击左侧的体验配置 - 管理登录权证,再点击创建后可以看到生成的票据(图 5)。

图 5

然后在源文件中包含必要的头文件,具体如下:

#include "CATUnicodeString.h"
#include "CATPLMSessionServices.h"

#include <iostream>
using namespace std;

1.4  添加模块和框架依赖

模块依赖如下(图 6):

WIZARD_LINK_MODULES = JS0FM \
JS0GROUP CATPLMComponentInterfaces
图 6

框架依赖如下(图 7):

<prerequisite name="CATPLMComponentInterfaces" access="Public" expose="ExposePrereq" />
<prerequisite name="SpecialAPI" access="Public" expose="ExposePrereq" />
<prerequisite name="System" access="Public" expose="ExposePrereq" />
图 7

1.5  编译运行

编译完成后生成 BatchMdl.exe 文件(图 8):

图 8

运行 BatchMdl.exe 文件需要加载相关的依赖库,将依赖库的路径添加到环境变量中,命令示例如下:

@echo off

set path=D:\CAATest\win_b64\code\bin;D:\DSV6\B426\win_b64\code\bin;%path%

BatchMdl

pause

创建一个批处理文件,将上述命令拷贝到批处理文件中,双击批处理脚本运行效果如下(图 9):

图 9

本文通过批处理创建会话简单演示了批处理应用的创建步骤,如有错漏,欢迎留言指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值