CAA 二次开发 —— 创建项目

本文基于 3DE(CATIA V6)平台介绍使用 Visual Studio 创建 CAA 项目基本步骤。

目录

1、准备工作

2、创建项目

2.1  设置 Visual Studio

2.2  新建 Workspace

2.3  新建 Framework

2.4  新建 Module

2.5  将 Framework 添加到解决方案

2.6  添加工作空间依赖

2.7  新建 Component

2.8  编写 Component 头文件

2.9  编写 Component 源文件

2.10  新建 CATStateCommand

2.11  编写 CATStateCommand 头文件

2.12  编写 CATStateCommand 源文件

2.13  新建资源文件

2.14  修改资源文件

2.15  添加框架依赖

2.16  添加模块依赖

2.17  编译项目

2.18  添加用户环境变量

2.19  运行项目


1、准备工作

  • 安装 3DE 客户端(Native Apps)
  • 安装 CAA 开发包(API For Native Apps Development)
  • 安装 CAA 开发工具(Native Apps Development Toolset)
  • 安装客户端补丁包(Fix Pack),非必须安装
  • 安装开发包补丁包(Fix Pack),与客户端一致
  • 安装开发工具补丁包Fix Pack),与客户端一致
  • 安装对应版本 Visual Studio
  • 安装对应版本 Visual Studio 扩展(3DSOpenNativeAppsExt2019.vsix)
  • 配置开发许可(SDV - Applications Developer)

2、创建项目

2.1  设置 Visual Studio

打开 Visual Studio ,选择“继续但无需代码”:


点击 工具  - 选项 - 3DEXPERIENCE,设置 TCK 路径启动程序编译选项等:

2.2  新建 Workspace

 点击 文件 - 打开 - 3DS Workspace...

设置 Location Tool level ,然后点击 Open

2.3  新建 Framework

右键单击 CAATest(Workspace),然后点击 New Framework...

输入 Framework 名称(如:TestFrame),选择 Type ,然后点击 Finish

2.4  新建 Module

右键单击 TestFrame(Framework),然后点击 New Module...

输入 Module 名称(如:TestMdl),选择 Type 和 exposition ,然后点击 Finish

2.5  将 Framework 添加到解决方案

右键单击 TestFrame(Framework),然后点击 Add All to Solution

2.6  添加工作空间依赖

右键单击 CAATest(Workspace),然后点击 Prerequisites...

选择 CAA 开发包安装路径:

2.7  新建 Component

右键单击解决方案的 TestMdl.m(Module),然后点击 添加 - 新建项

在 3DS Templates 中选择 C++ ,再选中 Component ,输入 Component 名称(如 TestAddin),然后点击添加

设置 exposition 和组件类型,然后点击 Next

为 Component 添加 TIE 接口(CATIAfrGeneralWksAddin):

完成后解决方案中可以看到 Component 的头文件和源文件:

2.8  编写 Component 头文件

编辑 TestAddin.h 文件,添加以下前向声明:

class CATCmdContainer;

并在 public 域添加以下函数声明:

void CreateCommands();
CATCmdContainer* CreateToolbars();

完成后如下图(不用管波浪线错误警告,编译成功并刷新后会自动消失):

2.9  编写 Component 源文件

编辑 TestAddin.cpp 文件,包含以下文件:

#include "CATAfrCommandHeader.h"
#include "CATCreateWorkshop.h"

添加以下函数定义:

void TestAddin::CreateCommands()
{
    CATAfrCommandHeader::CATCreateCommandHeader(
        "TestCommand",
        "TestMdl",
        "TestCommandCmd",
        (void*)NULL,
        "TestAddinHeader",
        CATFrmAvailable);
}

CATCmdContainer* TestAddin::CreateToolbars()
{
    NewAccess(CATCmdContainer, pTestSection, TestSection);

    NewAccess(CATCmdContainer, pTestToolBar, TestToolBar);
    SetAccessChild(pTestSection, pTestToolBar);

    NewAccess(CATCmdStarter, pTestCommandCmd, TestCommandCmd);
    SetAccessCommand(pTestCommandCmd, "TestCommand");
    SetAccessChild(pTestToolBar, pTestCommandCmd);

    return pTestSection;
}

完成后如下图:

2.10  新建 CATStateCommand

 右键单击解决方案的 TestMdl.m(Module),然后点击 添加 - 新建项

在 3DS Templates 中选择 C++ ,再选中 CATStateCommand,输入名称(如 TestCommandCmd),然后点击添加

提示修改 command 名称,直接点击 Finish

右键单击 TestFrame(Framework),然后点击 Refresh Solution

完成后解决方案中可以看到 CATStateCommand 的头文件和源文件:

2.11  编写 CATStateCommand 头文件

编辑 TestCommandCmd.h 文件,添加函数声明、添加前向声明、包含必要的头文件。

向导生成的默认文件已经包含必要的内容,这里我们不再添加。

2.12  编写 CATStateCommand 源文件

编辑 TestCommandCmd.cpp 文件,包含以下文件:

#include <iostream>

在 ActionOne 函数内添加以下内容:

std::cout << "Hello World" << std::endl;

完成后如下图:

2.13  新建资源文件

打开 CAATest(Workspace)所在目录,进入 TestFrame 目录:

创建目录 CNext\resources\graphic\icons\normal ,在 normal 文件夹中添加一个 32 x 32 像素的  png 图片文件用作命令图标,修改文件名称为 I_TestCommand.png ,如图:

创建目录 CNext\resources\msgcatalog\Simplified_Chinese(msgcatalog 用于放置英文用户界面的资源文件夹,Simplified_Chinese 用于放置中文用户界面的资源),在 msgcatalog 文件夹新建三个文件,并分别修改名称为:

  • TestAddin.CATNls
  • TestAddinHeader.CATNls
  • TestAddinHeader.CATRsc

2.14  修改资源文件

在 Visual Studio 中刷新解决方案(参考 2.10 步骤),刷新后解决方案中可以看到新建的资源文件:

编辑 TestAddin.CATNls 文件,添加以下内容:

<meta charset="UTF-8"/>

TestSection.Title="测试";

编辑 TestAddinHeader.CATNls 文件,添加以下内容:

<meta charset="UTF-8"/>

TestAddinHeader.TestCommand.Title="测试命令";
TestAddinHeader.TestCommand.ShortHelp="测试命令";
TestAddinHeader.TestCommand.Help="测试命令";
TestAddinHeader.TestCommand.LongHelp="测试命令";

编辑 TestAddinHeader.CATRsc 文件,添加以下内容:

TestAddinHeader.TestCommand.Icon.Normal="I_TestCommand";

2.15  添加框架依赖

右键单击 TestFrame(Framework),然后点击 Edit Id Card

右键单击 codeFramework ,点击 Add children - prerequisite :

展开 codeFramework ,选中 prerequisite ,填写依赖框架的 name、access 等信息并保存:

完成后打开 TestFrame 下的 IdentityCard.xml 文件如下:

继续添加其他框架依赖,最终如下所示:

<?xml version="1.0" encoding="iso-8859-1"?>
<codeFramework xmlns="http://www.3ds.ic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.3ds.ic ICModel.xsd">
    <prerequisite name="AfrFoundation" access="Public" expose="ExposePrereq" />
    <prerequisite name="AfrInterfaces" access="Public" expose="ExposePrereq" />
    <prerequisite name="DialogEngine" access="Public" expose="ExposePrereq" />
    <prerequisite name="Mathematics" access="Public" expose="ExposePrereq" />
    <prerequisite name="SpecialAPI" access="Public" expose="ExposePrereq" />
    <prerequisite name="System" access="Public" expose="ExposePrereq" />
    <prerequisite name="SystemTS" access="Public" expose="ExposePrereq" />
</codeFramework>

2.16  添加模块依赖

打开 TestMdl 下的 Imakefile.mk 文件,添加以下模块依赖:

#INSERTION ZONE NOT FOUND, MOVE AND APPEND THIS VARIABLE IN YOUR LINK STATEMENT
LINK_WITH = $(WIZARD_LINK_MODULES)
# DO NOT EDIT :: 3DS WIZARDS WILL ADD CODE HERE
WIZARD_LINK_MODULES = JS0FM  \
JS0GROUP CATAfrFoundation CATAfrItf CATDialogEngine CATMathematics
# END WIZARD EDITION ZONE

2.17  编译项目

右键单击 CAATest(Workspace),然后点击 Build - Build all with mkmk

弹出编译选项,按下图勾选,然后点击 Build

编译完成后关注 MKMK 输出,没有报错即可(无需关注 VS 的错误提示):

2.18  添加用户环境变量

为了观察程序运行效果,需要添加用户环境变量以显示控制台,点击 工具 - 3DS Environment :

勾选 User variables ,然后点击 New

输入用户变量名称(CNEXTOUTPUT)和值(CONSOLE):

完成后如下图所示:

2.19  运行项目

点击 窗口 - 3DS Windows - Runtime Prompt

在弹出的 DOS 窗口输入 cnext 启动 3DE :

打开任意 App 即可看到 测试命令

执行 测试命令 后可以在控制台看到命令输出:


到此,一个简单的 CAA 项目已经完成啦。如有错漏,欢迎留言指正。

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值