admin 管理员组文章数量: 887021
2024年1月4日发(作者:bean是什么梗)
第一部分 自定义ADAMS/View的界面
简介
通过修改ADAMS/View的图形界面,使之满足您的特殊要求和喜好。本章主要描述如何修改ADAMS/View的界面,主要包括以下几个部分:
关于ADAMS/View的菜单和对话窗……
使用Menu Builder 修改菜单;
使用 Dialog-Box Builder 修改或自定义对话窗;
自定义ADAMS/View界面的例子;
关于ADAMS/View的菜单和对话窗……
您在ADAMS/View中所见到的大部分的窗口、菜单或对话窗都是ADAMS/View模型数据库的界面对象。使用ADAMS/View的命令、Menu Builder、Dialog-Box Builder,您就可以修改、删除或加到标准的窗口、菜单或对话窗。您可做如下改变:
去掉菜单中您很少使用的部分;
加上新的快捷键以显示您经常使用的标准对话窗;
加上一系列的菜单和对话窗以执行您自己的宏(MACRO)或命令文件;
生成您自己特别的ADAMS应用程序的用户化界面。
下面分几部分来详细解释ADAMS/View中有关界面的概念:
ADAMS/View中界面对象;
ADAMS/View中的界面是如何起作用的;
如何改变界面;
改变后的界面如何存储。
ADAMS/View中界面对象
同有关的模型对象一样,ADAMS/View模型中大部分的窗口、菜单或对话窗等界面对象都是存储在模型的数据文件库的子系统中。所有的标准的或用户自定义的界面对象都是存储在名为GUI的库中,GUI的含义是Graphics User Interface,既用户图形界面,很方便查找。图 1 所示为GUI库中的各界面对象的总图,表1 则是对各界面对象的描述及他们之间的关系。
窗口和对话窗为最顶层的两个界面对象,例如,模型的主窗口命名为main,其数据库的全称为.。
窗口和对话窗,虽然他们相当不同,但看起来很相似。窗口通常直接显示在屏幕上,您可在其上工作,而对话窗只是在您需要时才显示。二者都可以包含其它的界面对象,如按钮、标签等等,而窗口中还可以包含工具栏和菜单栏。
通常情况下,您不需要修改整个标准的窗口,除非是您想生成自己的全部用户化界面。因此大部分的自定义工作是生成新的对话窗或修改已有的标准对话窗,您也可以修改菜单栏、菜单、或者工具栏。
对话窗和工具栏中可以包含诸如标签、数据区、按钮、切换按钮、可选菜单、划条或可选按钮,而工具包和容器(container)则可对其它界面对象进行成组操作。
模型中大部分的菜单和对话窗都可在数据库中查到,您可修改,但某些对话窗则完全由ADAMS/View控制,它们并不出现在数据库中,您也不能修改它们。这些对话窗为:
Database Navigator(数据库导航器)
Dialog-Box Builder(对话窗发生器)
Command Navigator(命令导航器)
Data Browser in the Plotting Window(后处理窗口中数据浏览器)
File Selection Dialog Box(文件选择对话窗)
Coordinate Window(坐标窗口)
对象(object)
Window
(窗口)
相关信息(Information regarding object)
可选菜单栏和工具栏
多个菜单栏,但每次只能显示一个
包含所有低层界面对象
Toolbar
(工具栏)
Menu bar
(菜单栏)
可放在窗口顶部或底部的子区域
能够保留其它界面对象
在窗口的顶部显示
每个菜单项中只能包含菜单子项
表1 界面对象
表1 界面对象(续)
对象(object)
Menu
(菜单)
Dialog box
(对话窗)
Container
(容器)
Button Stack
(工具包)
相关信息(Information regarding object)
三种类型:下拉式菜单、弹出式菜单、子菜单
包含按钮、切换按钮、分割线和子菜单
除了菜单栏和工具栏之外,可以包含其它界面对象
对话窗、窗口或工具栏中的字区域
能保留其它界面对象
系列按钮,但只能显示其中的一个
只包含按钮
允许显示多个按钮,用鼠标右键打开,左键选取
Label
(标签)
Field
(数据区)
Button
(按钮)
Toggle button
(切换按钮)
Separator
(分割线)
Slider
(划条)
Option Menu
(可选菜单)
在对话窗中显示文字或图标
您可以在其中输入信息的空白区域
激活某个操作
加上文字或图片以指示该操作
指示某个激活状态
横向分割线
设置某个对象的值,而不用手工输入
目前还仅限于整型数值
允许多个菜单中的一个起作用
使用一个图形按钮以显示所有的输入,像菜单一样
只显示可选项中的一个
Radio Box
(可选按钮)
设置状态或模式
ADAMS/View中的界面是如何起作用的
当您使用ADAMS/View界面建立或修改您的模型时,该界面执行一系列ADAMS/View的命令。例如:当您使用对话窗改变某个弹簧的刚度时,您一选定OK,界面就提交修改该弹簧的命令,包括您在对话窗中指定的弹簧的刚度。您可以在命令的窗口或ADAMS/View的log文件中读到这一过程。
您通过控制您自己建立或修改的对话窗所提交的命令来管理该对话窗的功能。例如:您可以直接指定当用户选取时该按钮所执行的ADAMS/View的命令,Fields、Option menus、radio
boxes、 toggle buttons和sliders都可以执行命令。
界面对象可以执行哪些命令并没有严格的限制。一个按钮能够改变您的模型,显示一个对话窗,或改变对话窗中其它对象或设置,也可以执行您所编写的宏(macro),ADAMS/View的宏(macro)允许生成您自己的命令以便自动执行复杂的或重复性的过程,有关宏方面的信息可参阅本册第二部分内容(见页)。
如何改变界面
菜单修改器(Menu Builder)和对话窗发生器(Dialog-Box Builder)是交互式的工具,您可以用来自定义界面,它们允许您快速打开并修改大部分的界面对象及其功能。利用它们,您可以做很多自定义方面的工作,而不用了解界面的命令,具体内容将在后面的部分中详细介绍。
在命令导航器(Command Navigator)中的命令interface包含了所有的界面对象的生成、删除及修改的过程。该命令可对应于所有的功能,而这些功能在菜单修改器和对话窗发生器中并非都可用。您会发现这些命令在界面本身中非常有用,包括显示对象、修改设置亦或是改变依赖于用户的输入的外观显示。
改变后的界面如何存储
改变后界面的存储有几种方式。一种方式是存储为标准的模型数据文件,,或是存储为您自己的任何的模型数据文件,使用哪种文件,取决于您将来如何使用。
存储为标准的模型数据文件,,可以与其它人共享,既任何人启动ADAMS/View都可使用;
存储为您自己的任何的模型数据文件,则只有当您打开该数据文件时才能使用。
另外一种方式是将新的或修改的对话窗或菜单存储为CMD文件或是菜单文本文件(menu text
file),这样的话,您就可以在需要的时候直接调用了。对话窗发生器(Dialog-Box Builder)中可以export一个对话窗到一个ADAMS/View的CMD文件,有了此文件,就可以直接import进来,或用命令file command read 读进来了。而菜单修改器(Menu Builder)中可以用export Text 写菜单到一个文本文件中,用import Text 或interface menubar read就可以再读进来了。
使用Menu Builder 修改菜单
您可以使用菜单修改器(Menu Builder)修改并生成菜单以更好的适合您的需要及喜好。使用菜单修改器,您可以改变已有菜单的结构使之与您的专业术语匹配或生成新的菜单。例如:您可以使用菜单修改器修改主窗口中的菜单栏使之包含Tire的菜单,这样可以很方便地在模型中加上轮胎单元。您可以在下图所示界面中添加对象。
当您生成菜单时,您可以指定键盘快捷键并可以方便记忆。下面部分解释:
菜单输入的语法
生成或修改一个菜单
菜单输入的语法
菜单修改器(Menu Builder)采用行编格式显示菜单,您通过直接修改文本文件中的每一行修改菜单。文本中每一行定义一个对象及其名字或指定其父对象的有关信息。为明显起见,ADAMS/View采用交错显示的方式。在您编辑文本文件时也可交错显示。
在菜单文本中有四种对象,菜单(Menu)、按钮(Push button)、切换按钮(Toggle button)和分割线(separator),其格式如下:
文本行
MENUn
BUTTONn
TOGGLEn
SEPARATORn
文本行的参数
Label
Label
Label
(none)
表2 定义对象的菜单文本行的格式
其文本行有如下相关参数:
n:为1到10之间的整形数,通常为1、2或3。它定义对象显示的菜单的层数。Level 1为第一层。例如:MENU1显示在菜单栏,而BUTTON2则显示在MENU1下拉的菜单中。对于MENU而言,n 是必选的,对于其它的对象,n 为可选参数。如果忽略此参数,ADAMS/View则假定该对象从属与上一个MENU。您可以最多生成10层菜单,在每个菜单下您任意多的BUTTON,但这有可能超出您屏幕显示的区域。
标签(label)为显示在菜单中的文字。在ADAMS/View中您还可定义另一类按钮,ICON BUTTON,您可以指定icon的名字,代替文字。在UNIX系统Motif下,icon的名字为XBM(X bitmap)或XPM(X PixMap)格式的文件;在Windows系统下,icon的名字为一个bitmap(.bmp)格式的图形文件。
下面的图为ADAMS/View中用菜单修改器(Menu Builder)定义Help菜单的部分,右侧部分为相应在ADAMS/View中Help菜单所显示的内容,您可从中看出其对应关系。
下面具体介绍各对象。
MENU
MENU产生一个下拉式或右拉式菜单,MENU1显示在工具栏中并可以向下拉开,低层的菜单,比如:MENU2或MENU3则可以向右边拉开。
语法结构:
MENUn TITLE
NAME=name
HELP=help
相关参数:
n:整形数,表示菜单所在层数,或是在菜单栏或是在拉出式菜单中。
N = 1:菜单显示在菜单栏;
N ≧ 2:菜单显示在拉出式菜单。
TITLE:为显示在菜单中的字符串。您可以放字符&在某个字母前面以方便记忆,例如:输入
&File则会出现File的结果。
NAME:模型数据库中该对象的名字。
HELP:当您鼠标移过时显示在状态栏或提示区域中的字符串,以描述该菜单项
举例如下:
MENU1 Help
NAME=help
HELP=Get Help on ADAMS
BUTTON(Menu Command)
BUTTON定义菜单的命令,您可以将button放在下拉式菜单或子菜单中。
语法结构:
BUTTONn LABEL::ACCELERATOR
NAME=name
HELP=help
CMD=command
相关参数:
n:整形数,表示按钮所在位置。
N = 2:按钮显示在下拉式菜单中;
N ≧ 3:按钮显示在子菜单中。
LABEL:为显示在下拉式菜单或子菜单中的button的名字。习惯上讲,您可以在打开一个对话窗的按钮的名字后面加上省略号……,您也可以放字符&在某个字母前面以方便记忆,例如:输入&Save则会出现Save的结果。
ACCELERATOR:执行菜单的单个或系列快捷键。欲生成系列快捷键,您可使用Shift、Ctrl或Alt键,其后接着“+”号和任何的字母(a~z)或功能键(F1、F2等等),每个键中间不允许有空格。
注意:Shift、Ctrl和Alt键为大小写敏感的,其第一个字母必须大写,而其后面的字母
则不必,您也可以将Shift键与Ctrl键或Alt键成组操作,如Shift+Ctrl或Shift+Alt,如果您使用组合键,则使用时须先敲击Shift键。
NAME:模型数据库中该菜单对象的名字。
HELP:当您鼠标移过时显示在状态栏或提示区域中的字符串,以描述该按钮项。
CMD:该BUTTON所执行的命令或命令序列。多行命令需要在每一行前加上CMD。
举例如下:
BUTTON2 &Tips On/Off
NAME=tips
HELP=Toggle popup descriptions on/off
CMD=help tips=toggle
SEPARATORn
有关参数:
n:整形数,表示分割线所在位置。
N = 2:显示在下拉式菜单中的分割线;
N ≧ 3:显示在子菜单中分割线。
举例如下:
SEPARATOR2
TOGGLE
切换按钮(toggle)生成菜单的输入项,使其可在两种状态间切换。切换按钮可出现在下拉式菜单或子菜单中。
语法结构:
TOGGLEn TITLE
NAME=name
HELP=help
STATE=state
CMD=command
相关参数:
n:整形数,表示切换按钮所在位置。
N = 2:按钮显示在下拉式菜单中;
N ≧ 3:按钮显示在子菜单中。
TITLE:为显示在下拉式菜单或子菜单中的toggle的名字。
NAME:标识该切换按钮对象的文字。
HELP:当您鼠标移过时显示在状态栏或提示区域中的字符串,以描述该按钮项。
STATE:切换按钮当前状态(on/off);
CMD:该切换按钮所执行的命令或命令序列。
生成或修改菜单
菜单修改器(Menu Builder)使您可以生成或修改ADAMS/View窗口中已存在的菜单。如果您不想用菜单修改器(Menu Builder),您可以先建立一定义菜单的文本文件,然后再输入到ADAMS/View中即可。
欲在菜单修改器(Menu Builder)中生成或修改菜单,您可:
在ADAMS/View菜单栏中选择Tools,然后选择Menu,然后选择Modify;则菜单修改器(Menu
Builder)出现,显示主菜单。
移动到您要修改的部分;
修改菜单
从菜单修改器(Menu Builder)的Menu Bar中,选择Apply。
关于如何存储您的修改,请查阅改变后的界面如何存储(p4)。
使用 Dialog-Box Builder 修改或自定义对话窗
ADAMS/View使用的对话窗中包含很多类型的界面对象,诸如: Labels、Fields、buttons等等,您可以对话窗中对话窗发生器(Dialog-Box Builder)生成或修改对话窗,符合您的需
求和喜好。下面将分几部分介绍:
生成对话窗
修改对话窗
在对话窗中加上界面对象
修改对话窗中的对象
删除对话窗中的对象
在对话窗中对话窗中命令
对话窗的测试
存储和加载用户化的对话窗
退出对话窗发生器(Dialog-Box Builder)
显示对话窗
生成对话窗
对话窗发生器(Dialog-Box Builder)包含您生成对话窗所用的工具。
欲生成对话窗
在ADAMS/View菜单栏中选择Tools,然后选择Dialog box,然后选择Create;则对话窗发生器(Menu Builder)出现如下图所示。
在Dialog Box菜单中选择New,则名为New Dialog Box的对话窗出现;
在Name栏输入您对话窗的标题,并任何您想加再对话窗中的预定义按钮;
选择OK即可。
修改对话窗
一旦ADAMS/View生成了对话窗,对话窗发生器(Menu Builder)就进入修改状态,您可以加上各种界面对象,也可以修改某对象的外观、大小、所执行的命令等等。
欲修改对话窗
在ADAMS/View菜单栏中选择Tools,然后选择Dialog box,然后选择Modify;则数据库导航器器(Database Navigator)出现
选择要修改的对话窗即可进入该对话窗修改状态。
在对话窗中加上界面对象
在表3中列出您可以加在对话窗中的界面对象。
对象(Object)
标 签(Label)
数据区(Field)
按 钮(Button)
功能
在对话窗中显示文字或图片,起标识作用
提供一块区域,您可以在其中输入文字或数字
激活某项操作;可以有图标、标签或文字以表明该按钮的功能
切换按钮(Toggle 表明某个激活状态
Button)
分割线(Separator)
划 条(Slider)
划一水平线
设置某对象的数值,而不用输进其值
可选菜单(Option menu) 允许多项中选择一项;
可选按钮(Radio box)
工具包(Button stack)
容 器(Container)
设置状态或模式
允许多个按钮放在同一
表3 对话窗中界面对象
加上对象
如何在对话窗中加上所有对象的步骤如下:(在对话窗发生器中)
1、 在Create菜单下,选择您要加的对象;
2、 移动鼠标到您要编辑的对话窗中;
3、 按住鼠标左键并拉动即可产生您要加的对象了。您也可以双击鼠标左键,ADAMS/View即按缺省方式添加该对象。
4、 在对话窗发生器中,ADAMS/View还提供一些预定义的按钮,如:Apply 、Ok、 Close等,您可直接选用并添加上去。
5、 您可以像加上标签一样,在您的对话窗中加上图片,用于标签的图片必须按下面的格式:
Motif - .xbm (X BitMap) or .xpm (X PixMap)
Windows - .bmp (16色位图)
由于在对话窗中无法修改图片的大小,因此您必须预先定义好。
修改对话窗对象
您可对对话窗中的对象进行修改,包括移动、缩放及对齐等,您也可以修改某个对象所执行的命令,这些命令完成对话窗的具体功能,改变模型或界面的外观等。
观察或生成对象的命令
您使用ADAMS/View的命令语言生成对象所执行的命令。您可使用命令导航器查看所用命令的格式,也可借助Log文件,复制或粘贴到对话窗中。在命令中您可使用变量进行参数替换,其结果是将对话窗中界面对象的值代替到命令中。符号$表示替代字符串的地方,对话窗中共有四种类型的替换,分别为:
$object_name
object_name为界面对象的名字,在命令中包含$object_name的结果是用object_name的值替代$object_name,表4 为界面中有关对象的值。
对象
Field (数据区)
Option-menu(可选菜单)
Radio-box(可选按钮)
Toggle button(切换按钮)
Slider(划条)
值
数据区的内容
当前选项的值
当前选项的值
On/Off或指定的On/Off的值
划条的整形数值
表4 界面中有关对象的值
$_value
$_value替换为正在执行命令的对象的值;如果可能,应尽量用$_value,而不是$object_name,因为这样更方便进行编辑等。
$_self、$_parent、$_topgui
这三个分别替换执行该命令的对象的名称、该对象相邻一层的对象的名称或该对象对话窗、窗口或工具栏的名称。使用这三个替换使您的对话窗更易读、修改。
注意$_self与$_value的区别。
$_1、$_2、$_3
这些分别代表传到该窗口或对话窗的参数值,命令执行时用当前值进行替换
有条件的命令扩展
反引号“``”内为有条件替代,即如果包含在反引号中的替代为空的话,则ADAMS/View即忽略反引号内的部分。有条件的命令扩展使得命令中的可选的或互斥的参数容易控制些。
窗口、对话窗和容器内包含一些特别的命令集,如start、execution和finish三个命令。当对显示时自动执行start命令,关闭时则自动执行finish命令,executed命令则由interface dialog_box/window/container execute命令执行。使用缺省的OK或Apply按
钮也可执行executed命令。
编辑命令
在对话窗的命令区域按下鼠标的右键则会出现一弹出式菜单,可用来编辑命令。有关的编辑命令如表5 所示。
表5 编命令
References
Pick
功能
Displays and inserts the available
$xxx
references.
Lets you select an object and insert selected name into
commands.
辑命令选项
对话窗的测试
Browse
Displays the Database Navigator and inserts selected name
在存储into commands.
以前,您Cut
Copy
Paste
Removes selected text and places it in the system clipboard.
Copies selected text to system text buffer.
Pastes from system clipboard to cursor location or over
selected text.
可以测试您的对话窗。要测试对话窗,您可以:
1、 在Edit
Displays the text editor
vi
(by default) with text loaded
(UNIX only).
Options菜单中,选择Test Box,ADAMS/View显示该对话窗而对话窗中的任何对象都不亮显;
2、 执行您的对话窗。
存储或加载用户对话窗
要存储用户对话窗,可以在Dialog Box的菜单下,选择Export,然后选择Command File。
注:您也可以二进制方式存储。
要加载用户对话窗,您可在ADAMS/View的界面下,选择File菜单,然后选择Import,读进相应的命令文件即可。
退出对话窗发生器
在Dialog Box菜单下,选择Exit即可。对话窗发生器退出,但ADAMS/View依旧显示您的对话窗。
显示对话窗
在数据库导航器中,您可以找到对话窗的目录树,先是标准的对话窗,然后是您定义的对话窗。其过程如下:
1、 在Tool菜单下,选择Dialog Box,然后选择Display;
2、 选择所要的对话窗,然后OK即可。
您也可以修改菜单,使之显示对话窗。
生成用户化ADAMS/View界面的练习
下面为您使用ADAMS/View用户化功能的例子。其过程如下:
1、 生成一个用户化的对话窗,使用该对话窗可以修改选定Part的材料;
2、 生成用户化的菜单,可直接显示该对话窗。
生成用户化的对话窗
1、 在Tools菜单下选择Dialog Box,然后选择Create;
2、 在Dialog Box 菜单下选择New;
3、 给您的对话窗赋名,本练习中为Materials;
4、 选择OK、 Apply和Close三个预定义按钮;
5、 最后选择OK以显示您的对话窗,如图6 所示。
修改您的对话窗
现在您可以修改您的对话窗,加入一个数据区用来输入或选择Part,同时加上若干个材料的按钮,具体过程如下:
1、 双击您新的对话窗,进入修改状态;
2、 使用对话窗发生器生成Label并命名为Part;
3、 接着Part的标签,生成数据区Field,该区为待修改的Part的名称;
4、 使用对话窗发生器所提供校正对齐的工具将两个对象进行编辑;
5、 生成另一个标签Material;
6、 生成一个按钮,命名为Aluminum,如图7 所示。
7、 双击Aluminum按钮,按照图8 所示输入相应的命令;
8、 复制Aluminum按钮;
9、 粘贴,并命名为Brass;重复这一过程直到完成图9 所示的对话窗;
10、
11、
将Aluminum按钮的命令复制,并修改其他的按钮相关的命令;
退出对话窗发生器的界面。
现在您可以使用该对话窗了。在Part的数据区内选择要修改的可动部件;然后点击某个材料的按钮,即完成了该Part的修改了。
生成用户化的菜单
使用菜单修改器修改当前的ADAMS/View的主菜单,加上一个BOTTON,使之可打开该对话窗。具体过程略。
版权声明:本文标题:自定义ADAMSView的界面 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1704337108h455329.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论