Defining the Activated Workbench-使用CATIAfrActivateWorkbench
摘要
- 本用例将教会您的内容
- CAAAfrInitialWorkbench 用例
- CAAAfrInitialWorkbench 的功能
- 如何运行 CAAAfrInitialWorkbench
- CAAAfrInitialWorkbench 代码所在位置
- 分步实现
- 小结
- 参考资料
本用例您将学到的内容
- 首次界面激活时,默认选用上一会话中最后使用的工作台,该信息保存在配置文件中。若配置文件不存在,则选用应用程序工作台列表中的第一个工作台。
- 后续界面激活时,默认选用当前会话中最后使用的工作台。
该接口支持您修改上述规则,您可根据自身判定条件指定需要启用的工作台。
该接口可在以下界面激活对象上实现:
- 产品文档对应的
ASMProduct - 工程图对应的
DrwDrawing - 零件对应的
MechanicalPart - 分析文档对应的
AnalysisManager
但以下界面激活对象无需实现该接口,因为这类对象不存在专属工作台,仅包含一个工坊 [2]:
- 草图编辑器对应的
PRTSketch - 材料文档对象
- catalog(库 / 目录)文档对象
注意:针对指定对象,该接口仅能实现一次。
CAAAfrInitialWorkbench 用例
CAAAfrInitialWorkbench 的功能

如何运行 CAAAfrInitialWorkbench
- Windows 系统 InstallRootDirectory\CAAApplicationFrame.edu\CNext\code\dictionary\
- UNIX 系统InstallRootDirectory/CAAApplicationFrame.edu/CNext/code/dictionary/
其中,InstallRootDirectory 为 CAA 光盘资源包的安装目录。
在此文件中,删除以下行前面的 # 字符:
……
#MechanicalPart CATIAfrActivateWorkbench libCAAAfrInitialWorkbench
……
然后运行 mkCreateRuntimeView。
然后,在执行 mkrun 命令的窗口中,不要在命令行输入模块名,而是输入 CNEXT。
- 在开始 (Start) 菜单中,选择形状 (Shape),然后单击自由风格 (FreeStyle)
- 在开始 (Start) 菜单中,选择退出 (Exit)
- 重新启动
CNEXT - 在文件 (File) 菜单中,单击新建 (New)
- 在弹出的新建对话框中选择零件 (Part) 并单击确定 (OK),此时您将直接进入零件设计 (Part Design) 工作台
如果未实现 CATIAfrActivateWorkbench 接口,当前工作台本应是自由风格 (FreeStyle),即配置文件中保存的上一次使用的工作台。 - 在开始 (Start) 菜单中,选择机械设计 (Mechanical Design),然后单击线框和曲面设计 (Wireframe and Surface Design)
您已手动指定了一个工作台,该工作台成为当前新的活动工作台。 - 在新建对话框中选择零件 (Part) 并单击确定 (OK),您仍然会进入零件设计工作台
如果未实现 CATIAfrActivateWorkbench 接口,当前工作台本应是线框和曲面设计 (Wireframe and Surface Design),即当前会话中最后使用的工作台。 - 在文件 (File) 菜单中,单击打开 (Open)
- 在文件选择对话框中选择
CAAAfrProduct.CATProduct(*) 并单击打开 (Open) - 编辑 Part1,您将直接进入零件设计工作台
如果未实现 CATIAfrActivateWorkbench 接口,当前工作台本应是线框和曲面设计,即零件上次使用的工作台。 - 在开始 (Start) 菜单中,选择机械设计 (Mechanical Design),然后单击线框和曲面设计 (Wireframe and Surface Design)
您已手动指定了一个工作台,该工作台成为当前新的活动工作台。 - 编辑 Part2,您仍然会进入零件设计工作台
如果未实现 CATIAfrActivateWorkbench 接口,当前工作台本应是线框和曲面设计,也就是零件上次使用的工作台。
(*) 该文档位于 CAAApplicationFrame.edu 框架的 InputData 目录下:
- Windows 系统InstallRootDirectory\CAACATIAApplicationFrm.edu\InputData\
- Unix 系统InstallRootDirectory/CAACATIAApplicationFrm.edu\InputData\
其中,InstallRootDirectory 为 CAA 安装光盘(CD-ROM)的解压 / 安装目录。
在哪里可以找到 CAAAfrInitialWorkbench 代码
- Windows 系统 InstallRootDirectory\CAAApplicationFrame.edu\CAAAfrInitialWorkbench.m\
- Unix 系统InstallRootDirectory/CAAApplicationFrame.edu/CAAAfrInitialWorkbench.m/
其中 InstallRootDirectory 为 CAA 光盘资源包的安装目录。
分步实现
- 创建头文件
- 创建源文件
创建头文件
// System 框架
#include "CATBaseUnknown.h"
#include "CATString.h"
class CAAEAfrActivateWorkbenchOnPart: public CATBaseUnknown
{
CATDeclareClass;
public:
CAAEAfrActivateWorkbenchOnPart();
virtual ~CAAEAfrActivateWorkbenchOnPart();
CATString & GetInitialWorkbench();
private:
CAAEAfrActivateWorkbenchOnPart(const CAAEAfrActivateWorkbenchOnPart &iObjectToCopy);
CAAEAfrActivateWorkbenchOnPart & operator = (const CAAEAfrActivateWorkbenchOnPart &iObjectToCopy);
private:
CATString _WbName ;
};
CAAEAfrActivateWorkbenchOnPart 类继承自 CATBaseUnknown。GetInitialWorkbench 方法是 CATIAfrActivateWorkbench 接口的唯一方法。
注意:拷贝构造函数和赋值运算符被声明为私有,且在源文件中不实现。这可以避免编译器在您不知情的情况下将其自动生成为公有成员。_WbName 是由 GetInitialWorkbench 方法返回的数据成员。
创建源文件
#include "CAAEAfrActivateWorkbenchOnPart.h"
#include "TIE_CATIAfrActivateWorkbench.h"
TIE_CATIAfrActivateWorkbench(CAAEAfrActivateWorkbenchOnPart);
CATImplementClass (CAAEAfrActivateWorkbenchOnPart,DataExtension,
CATBaseUnknown, MechanicalPart);
TIE_CATIAfrActivateWorkbench 宏用于声明 CAAEAfrActivateWorkbenchOnPart 类实现了 CATIAfrActivateWorkbench 接口。
CATImplementClass 宏通过 DataExtension 关键字声明 CAAEAfrActivateWorkbenchOnPart 类为数据扩展类,用于扩展 MechanicalPart 对象。
对于任意类型的扩展,第三个参数必须固定设置为 CATBaseUnknown 或 CATNull。
// 构造函数
CAAEAfrActivateWorkbenchOnPart::CAAEAfrActivateWorkbenchOnPart()
{
_WbName = "PrtCfg" ;
}
// 析构函数
CAAEAfrActivateWorkbenchOnPart::~CAAEAfrActivateWorkbenchOnPart()
{
}
// 获取初始工作台
CATString & CAAEAfrActivateWorkbenchOnPart::GetInitialWorkbench()
{
return _WbName;
}
在该实现中,默认激活的工作台固定为零件设计工作台,该工作台的内部标识名称为 PrtCfg。
小结
References
| [1] | Creating a Workbench |
| [2] | Application Frame Overview |
| [3] | Building and Launching a CAA V5 Use Case |

浙公网安备 33010602011771号