Managing Transitions between Workbenches-使用 CATIWorkbenchTransition(接口 / 类)

摘要

本文演示如何创建过渡界面,以切换至 ** 几何特征工作台(Geometry workshop)** 中的两个工作台。

  • 通过本实例您将学到

  • CAAAfrGeometryWksTransition 实例

    • CAAAfrGeometryWksTransition 实现功能  
    • CAAAfrGeometryWksTransition 启动方法  
    • CAAAfrGeometryWksTransition 代码位置  
  • 分步实现

  • 小结

  • 参考文献

通过本应用实例您将学到的内容
CAAAfrGeometryWksTransition 是 CAAApplicationFrame.edu 框架的一个应用实例,用于演示 ApplicationFrame 框架所具备的功能。
CAAAfrGeometryWksTransition 应用实例
CAAAfrGeometryWksTransition 该实例用于管理任意工作台与几何设计工作台中的各类子工作台之间的切换。

CAAAfrGeometryWksTransition 用例实现功能

CAAAfrGeometryWksTransition 用例用于管理任意工作台与几何设计工作台下各子工作台之间的切换。
为此,该用例通过一个类实现 CATIWorkbenchTransition 接口,并将其作为 CAAAfrGeometryWks_trans 延迟类型的扩展对象;其中 CAAAfrGeometryWks 为几何设计工作台的描述类名称。

如何运行 CAAAfrGeometryWksTransition

有关该用例的详细运行说明,请参阅《CAAGeometry 示例》用例中 “如何运行 CAAGeometry 用例” 章节。具体操作流程如下:
  • 不在命令行输入模块名称,而是输入 CNEXT 启动程序。
  • 待程序启动完成后,执行以下操作:
    • 创建任意类型的文档,例如零件(Part)文档。 
    • 通过开始(Start)菜单选择 CAAGeometry 文档下的某个工作台,例如依次点击:Start -> xxxx -> CAA Geometrical Creation

执行后将新建一个 CAAGeometry 文档,并激活 CAA 几何创建工作台。

代码位置说明

CAAAfrGeometryWksTransition 代码所在位置

CAAAfrGeometryWksTransition 用例仅包含一个名为 CAAEAfrGeometryWksTransition 的类,该类位于 CAAApplicationFrame.edu 框架下的 CAAAfrGeometryWksTransition.m 模块中。
  • Windows 路径InstallRootDirectory\CAAApplicationFrame.edu\CAAAfrGeometryWksTransition.m\
  • Unix 路径InstallRootDirectory/CAAApplicationFrame.edu/CAAAfrGeometryWksTransition.m/

其中 InstallRootDirectory 为 CAA 光盘安装包的根安装目录

分步实现

要管理任意工作台与 CAAGeometry 文档中各工作台之间的切换,需分为两个步骤:
序号步骤实现位置
1 创建实现 CATIWorkbenchTransition 接口的扩展类 CAAEAfrGeometryWksTransition
2 更新接口字典 接口字典
 
创建实现 CATIWorkbenchTransition 接口的扩展类
该类是一个数据扩展,其扩展目标为工作台标识符后加 _trans 后缀所构成的对象;在本实例中,几何设计工作台对应的扩展目标即为 CAAAfrGeometryWks_trans
  1. 创建 CAAEAfrGeometryWksTransition.h 文件

#include "CATExtIWorkbenchTransition.h" 

class CAAEAfrGeometryWksTransition : public CATExtIWorkbenchTransition
{
  CATDeclareClass;
  public:
     CAAEAfrGeometryWksTransition();
     virtual ~CAAEAfrGeometryWksTransition();
};

CATDeclareClass 宏用于声明该类属于一个组件。此类仅包含构造函数析构函数

 

    1. 创建 CAAEAfrGeometryWksTransition.cpp 文件

// 本地框架
#include "CAAEAfrGeometryWksTransition.h"

CATImplementClass(CAAEAfrGeometryWksTransition, 
                  DataExtension, 
                  CATBaseUnknown,
                  CAAAfrGeometryWks_trans);

#include <TIE_CATIWorkbenchTransition.h> 
TIE_CATIWorkbenchTransition(CAAEAfrGeometryWksTransition);

CAAEAfrGeometryWksTransition::CAAEAfrGeometryWksTransition()
{
  _newDoc = "CAAGeometry" ;
}

CAAEAfrGeometryWksTransition::~CAAEAfrGeometryWksTransition() {}

CATImplementClass 宏的含义为:CAAEAfrGeometryWksTransition 类是延迟类型 CAAAfrGeometryWks_trans 的数据扩展。与所有扩展类一样,它的第三个参数为 CATBaseUnknown。在构造函数中,通过基类 CATExtIWorkbenchTransition 的数据成员 _newDoc,将文档类型指定为 CAAGeometry。该类型即为当前工作台所专属的文档类型。

 
由于未实现 DoTransition 方法,因此会转而执行基类 CATExtIWorkbenchTransition 中的该方法。它会创建一个新的 CAAGeometry 文档,以下情况除外:
  • 当前 ** 几何设计工作台(Geometry workshop)** 为活动工作台,且最终用户切换至该工作台下的另一个子工作台。此时当前活动文档原本就是 CAAGeometry 文档,切换后仍保持为 CAAGeometry 文档。
  • 当前几何设计工作台为活动工作台,而用户选择了另一个工作台,或选择了属于其他工作台的子工作台。

更新字典

更新接口字典,该字典通常是名为 CAAApplicationFrame.dico 的文件,其所在目录路径会在运行时添加到 CATDictionaryPath 环境变量中。

文件中需包含如下声明,用于指明:CAAAfrGeometryWks_trans 延迟类型实现了 CATIWorkbenchTransition 接口,且其代码位于 libCAAAfrGeometryWksTransition 共享库或动态链接库(DLL)中。

CAAAfrGeometryWks_trans CATIWorkbenchTransition libCAAAfrGeometryWksTransition

小结

CAA 面向流程的用户界面要求:当最终用户在开始(Start)菜单中选择某个工作台时,应用程序需明确执行逻辑。
这一机制由工作台(Workshop)或子工作台(Workbench)的提供方通过实现 CATIWorkbenchTransition 接口来完成。
对于独立文档(即不包含、不链接其他文档,也不被其他文档包含或链接的文档),CATIWorkbenchTransition 接口由该文档所属工作台的提供方仅实现一次,即可作用于该文档下的所有子工作台。
而对于嵌入或链接型文档,其每个子工作台都应单独实现 CATIWorkbenchTransition 接口,以定义各自的进入与切出逻辑:

即选中该工作台时应执行的操作,以及该工作台处于激活状态、切换到其他工作台时应执行的操作。

posted @ 2026-04-13 13:33  Breadss  阅读(3)  评论(0)    收藏  举报