系列文章目录
CATIA V5百科全书系列——操作界面模块(User Interface)
目录
摘要
本文介绍了操作界面模块 (User Interface) 中 Wintop Commands 下的第一个用例:状态图的实现——编写 BuildGraph 方法。
这篇文章展示了如何在状态对话命令中通过最终用户 (End User) 鼠标单击屏幕来检索 3D 空间中的点。
1 你将从这个用例中学到什么
此用例旨在展示如何通过对命令 BuildGraph [1] 方法进行编码来实现状态对话命令的状态图。BuildGraph 是命令核心,它声明了构成对话步骤和序列的对象,以及它们之间的关系。
2 矩形命令(The Rectangle Command)用例
矩形命令是 CAADiologEngine.edu 框架的一个用例,它说明了 DialogEngine 框架的功能。
2.1 矩形命令的功能
CAACreateRectangleCmd 是一个状态对话框命令,根据以下UML (Unified Modeling Language,统一建模语言) 状态图 [2] 在三维空间中创建一个矩形。
注:关于 UML 的说明和绘制规范可参考 Wintop Commands 下技术文章中的第二篇:使用 UML 描述状态对话框命令 (Describing State Dialog Commands Using UML)。
流程如下:
- 选择 CAADegCreateRectangleCmd 命令,GetPlane(获取平面)状态激活。选择将用作矩形平面的现有平面。这里通过选择代理(Selection Agent)完成选择(功能)。
- 视点发生变化以使选定平面与屏幕平面重合。GetFirstPoint(获取第一个点)状态激活。
- 点击以指示第一个点作为(矩形)对角线的第一个端点。GetSecondPoint(获取第一个点)状态激活。这里通过指示代理(Indication Agent)实现指示(功能)。
- 移动鼠标,绘制一个临时的矩形,其大小随着鼠标的移动增大或减小。GetSecondPoint 状态保持激活,其自转换在这个状态中循环。这里通过第二个指示代理实现。
- 所需的矩形确定后,单击以创建(矩形)对角线的第二个端点,这时便创建了一个矩形。这里借助第二个指示代理检索该指示点。命令完成。
矩形命令状态图包括除了初始状态和最终状态之外的三个状态,以及包括循环到一个状态以创建临时矩形的自转换的四个转换。具有与状态相关的适当类型和行为的对话代理(Dialog Agents)可以将最终用户输入转换为触发转换的刺激 (Stimuli),并检索最终用户交互意图,即为选择代理选择一个对象 [3] 或为指示代理指示一个点 [4]。为了简化 BuildGraph 方法,撤销和重做 [5] 暂时不考虑。
2.2 如何启动矩形命令
有关如何启动此用例的详细说明,请参阅 “The CAAGeometry Sample” 用例中标题为 “如何启动 CAAGeo