单步交互软件中支持用户意图预测的命令设计

时间:2022-05-26 06:21:03

单步交互软件中支持用户意图预测的命令设计

摘 要:针对单步交互的系统,基于MVC(Model View Controller)和command模式设计系统结构,对交互命令及其参数进行封装;按照最后输入参数优先的原则实现用户选择和捕捉后,根据用户输入的参数预测候选命令集的交互方式;按照任务一致性原则根据用户以前的操作模式预测其当前行为;通过命令信息的保存和恢复,实现Undo,Redo及操作回放等功能. 通过该方法实现的交互设计在虚拟施工软件中取得良好的效果.

关键词:计算机辅助设计; 用户交互; 设计模式; 用户意图; 命令

中图分类号:TP391.72

文献标志码:A

Command design in single step interactive software

for predicting user intention

WEI Gang1, LI Qiyan1, ZHAO Weidong1,WANG Yan2

(1. CAD Research Center, Tongji Univ., Shanghai 200092, China;

2. Shanghai Yangpu Real Estate Exchange Center, Shanghai 200093, China)

Abstract: A system framework is designed for single step interaction software based on MVC(Model View Controller) pattern and command pattern, in which the interactive commands and its parameters are encapsulated. After the users select or snap points on the principle that the last inputted commands are prior, the software predicts the candidate command set and the users’ current behaviours based on the previous pattern according to task consistency. And the behaviour history is saved and reloaded to implement Undo, Redo, behaviours playback, and so on. The user interactions with the method achieve good effect in virtual construction application.

Key words: CAD; human-computer interaction; design pattern; user intention; command

0 引 言

CAD软件中的用户交互较多,一个命令往往需要多个参数,如果要这些参数按指定的顺序输入,则用户尤其是新用

户的记忆量较大,就不能使用户将注意力更多地集中在模型上进行高效设计.

对最近设计的虚拟施工软件中的命令进行封装,并改变通常软件中先选择菜单再输入参数完成操作的模式,而是让用户先通过捕捉、选择等操作输入参数,软件判断可接受这些参数的命令集,并随着输入参数的增多,不断减少候选命令的数目,使用户能比较方便地在较小范围内选择自己需要的命令,较连贯地完成自己的工作.

1 基于MVC[1](Model View Controller)模式的命令设计

MVC由TRYGVE等提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础.模式为命令设计提供良好的范例.

对于界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制3种部件;将应用程序分为处理、输出和输入3个区域.

模型部件封装内核数据和功能,独立于输出或输入方式;视图部件向用户显示信息,视图从模型获得数据;控制部件接受输入,如鼠标移动、鼠标按钮的活动或键盘输入等事件.事件翻译成模型或视图的服务器请求.用户仅通过控制器与系统交互.

基于MVC模式,本系统设计如图1所示的结构:Model为模型,View为视图,用户在视图中进行选择实体和捕捉点;选择集和捕捉点链表与视图像对应,一个模型可以有多个视图;Operator为操作,即系统中的命令,各个命令在视图中进行捕捉、选择、输入其他参数等方式完成交互,通过视图改变模型中的数据状态.

用户所能进行的操作在很大程度上由用户所能输入的参数决定,在用户交互设计中,参数的输入通常有两种方式:(1)

用户在对话框中输入参数. 该方式比较适合于参数较多、参数之间互相影响或者参数的输入需借助于一些对话框控件实现的情况;(2)

通过单步交互完成参数输入.该方式比较适合于参数输入有先后次序、参数以坐标输入或实体选择为主的情况.

在较知名的AutoCAD软件中,命令交互以第2种方式为主,软件提供命令行作为用户输入参数的工具,对于坐标及实体的选择,用户也可通过鼠标完成参数输入.当用户启动命令后,软件在命令行中提示用户所需的参数,在接收用户的参数输入后进行合法性检查,如果通过,则进入到下一步交互,直到命令完成.

对于后一种交互方式的软件,用户如要熟练使用,除了记忆命令的启动方式外,往往还需记忆各个命令交互时输入参数的顺序.当软件提供的命令较多时,用户尤其是新用户的记忆工作量较大.

在所设计的软件中,用户所输入的参数以点坐标和实体选择为主,一般通过鼠标在视图中操作以完成参数输入.因此基于直接操纵思想,允许用户根据现有模型,先捕捉点或选择实体,系统再根据输入的参数判断可能进行的命令,更有利于用户操作的连续进行.

对此,基于command模式对命令进行封装,在Operator中设计如图2所示的结构,Step为Operator在运行时执行到的步数,Execute()函数在Operator中为纯虚函数,须在各个ConcreteOperator中分别实现,形式如下:

void ConcreteOperator:: Execute ()

{

switch (Step)

{

case 0:

Step++;

break;

case 1:

Step++;

break;

case n:

Go();

}

}

函数Go()在完成命令交互、获取所需的参数后,对模型进行计算,并在视图中显示计算结果.

如果用户选择菜单启动一个命令,即生成一个ConcreteOperator实例,Step为0,如果用户输入相应参数,Step递增,等待用户输入下一个参数,直到用户完成所有参数的输入,结束一个命令的运行.

如果用户在没有命令执行的情况下进行选择和捕捉的结果存储在SelectionSet中,系统根据此选择集中元素的类型,判断当前选择集中元素支持的命令集,动态生成菜单或工具条,供用户选择.

上一篇:CAE在中国及“力学机械化” 下一篇:基于MSC Adams虚拟样机技术的桥梁主拱安装工艺...