ADAMS二次开发
更新时间:2023-10-23 20:37:01 阅读量: 综合文库 文档下载
2.5 ADAMS 软件的二次开发
ADAMS 具有很强的二次开发功能,包括ADAMS/View 界面的用户化设计,利用.cmd语言实现自动建模和仿真控制,通过编写用户子程序满足用户的某些需求,甚至可以拓展ADAMS 的功能。
2.5.1 界面的二次开发
1、定制菜单
选择 Tools/Menu/Modify 命令可以打开菜单编辑器窗口。在默认情况下,菜单编辑器窗口中显示的是描述ADAMS 标准菜单的菜单文件,用户可以修改该菜单文件得到自己所需要的菜单。菜单文件实际上是用解释性语言编制的程序段,因此,要想定制自己所需的菜单,必须了解编制残单文件的语法规则。下面介绍该解释性语言的编程语法。菜单对象有四种类型:菜单、按钮或图标按钮、开关按钮和分割线,分别用关键词MENUn、BUTTONn、TOGGLEn 和SEPARATORn 定义。
各菜单对象的参数含义如下:
*n 是从1 到10 之间的整数,通常为1、2、3,它定义了对象在菜单中出现的级别。
Level1 表示第一级。例如,MENU1 出现在菜单栏,BUTTON2 出现在MENU1 的之中。
MENU菜单后面的n 是必须要的,而对于其他的对象则为可选项。。如果你忽略级别,ADAMS/View 将默认该对象属于最后一个MENU。你的菜单项可达到10 级,在菜单中你可以按你的需要尽可能多的按钮。
*lable 是出现在菜单中的文本。对于图标按钮,你可以指定图标的名字,或者其 他图形格式文件。在Windows 中,图标名字为bitmap(.bmp)格式的文件名字。 (1)MENU 的创建
可以创建多级的菜单,第一级菜单为 MENU1,出现在菜单条上,低一级的菜单如
MENU2 和MENU3 出现在层叠的下拉菜单中。 语法:
MENUn TITLE NAME=name HELP=Help 参数:
n 为整数值,表明该菜单在菜单条中出现的层数。n=1 时菜单出现在菜单栏上, n≥2 时菜单出现在下拉菜单中。 TITLE 为文字串,出现在菜单栏上,可以在表提前加一个&字符用作记忆法。(如 “&File”在菜单上显示为File)
NAME 为模型数据库中对象的名字。 HELP 为出现在状态栏中的文字。 (2)创建BUTTON
创建按钮就是定义一个菜单命令,你可以在下拉菜单或是子菜单上放置按钮。 语法:
BUTTONn LABLE ACCELERATOR
NAME=name HELP=help
CMD=command 参数:
n 为整数值,表明按钮出现的层数。n=2 时按钮出现在下拉菜单上,n≥3 时按钮出现在子菜单上。
LABLE 为按钮名,出现在下拉菜单或子菜单上。 ACCELERATOR 为键或键组用来执行菜单命令。 NAME 为建模数据库中菜单对象的名字。 HELP 为出现在状态条上的文字。 CMD 为按钮用来命令。
注:多行命令时,每一行前面都要加 CMD。 (3)创建分隔符(SEPERATOR)
在下拉菜单和子菜单中的各项目之间添加分割线。 语法:
SEPERATORn 参数:
n 为整数值,表明分隔符出现的层数。n=2 时分隔符出现在下拉菜单中,n=3 时分隔符出现在子菜单中。 (4)创建开关按钮TOGGLE
在两种状态之间设置开关,开关按钮可以在下拉菜单或是在子菜单上。 语法:
TOGGLEn TITLE NAME=name HELP=help STATE=state CMD=command
其参数含义同上其他对象。 2、定制对话框
ADAMS/View 中使用的对话框包括各种界面对象,如,标题、数据区、按钮等等。你可以使用ADAMS 对话框编辑器来创建和修改对话框以更好地满足你的需要。例如为标准对话框添加一个按钮包含你要作的选项,或添加一个对话框以执行你经常运行的步骤,可包括一个以上的宏。
对话框编辑器包含了你需要用来创建对话框的所有工具。创建对话框的步骤如下: (1) 在“Tool”菜单中,指向“Dialog Box”,然后选择“Create”,出现对
话框编辑器,如图2-1 所示。
图 2-1 对话框编辑器图图 2-2 New Dialog Box 对话框
(2)在“Dialog Box”菜单中,选择“New”,出现新的对话框,如图2-2 所示。
(3)在“Name”栏,输入你的对话框的标题,然后选择你想在对话框上添加的按钮。
(4)选择“OK”完成设置,于是出现一个新对话框,如图2-3 所示。
图 2-3 新创建的对话框
当创建了一个新的对话框后,用户可以通过对话框编辑器上的“Create”命令来为用户定制的对话框添加界面对象(大多数对象都有ADAMS/View 可执行的命令,这些命令才是真正界面的操作命令,或改变你的模型,或改变用户输入数据和作出选择。),各界面对象的名称和功用见表2-1,其详细的创建过程本文不在此赘述。
表 2-1 对话框界面对象的名称和功用 对象 数值含义
Label(标签) 用在对话框中显示文本和图像 Field(数据区) 当前数据区内容 Button(按钮) 激活一个操作
Toggle-button(开关按钮) 当前定义的开关值
Separator(分隔线) 可画出一条水平分隔线
Slide(滑动条) 通过滑动条可取当前防卫内的整数值
Option-menu(可选菜单项) 可从多个菜单项中选定一个;包含有一个弹出菜单形式的图
框;只显示一行选定菜单项
Radio-box(状态设置框) 设置状态或模式
Button stack(按钮组) 可包含多个按钮而只显示一个按钮;只能有一个按钮起作
用;可有鼠标右键弹出显示所有按钮,并可选择其中一个
Container(界面对象区) 可添加信息的区域
Tab container(标签界面对象) 给界面和对话框设置标签
Data table(数据表) 用来显示数据的表格。你可增加栏或列。
2.5.2 宏命令的使用
宏命令实际上是一组命令集,它可以执行一连串的 ADAMS/View 命令。创建宏命令时,给出你想执行的 ADAMS/View 命令的名单。然后用ADAMS/View 的命令语言将这些命令写成宏命令的形式。
在宏命令中,你也可以使用参数。每次你使用宏命令时,你都将通过参数将数据传给宏。当你执行带有参数的宏命令时,ADAMS/View 将你提供的值替代到宏命令中。
ADAMS/View 对宏命令与其他的ADAMS/View 的命令一样。你可以在命令窗口中输入宏命令,从命令向导中选择它,也可将它包含在其他的宏命令中,或者从自己的定制菜单,对话框,或按钮中执行它。 宏命令可以做到:
(1)自动化重复性的工作。
(2)为ADAMS/View 建立模型数据交换功能。 (3)自动创建整个模型。
(4)快速建立机械系统的多个变量。
通常可以通过 3 种方式来创建宏命令:记录方式、使用宏编辑器来编辑和创建宏命令、通过导入文件来创建宏命令。 1. 以记录方式创建宏命令 (1)记录宏 在“Tool”菜单中,指向“Macro”,再指向“Record/Replay”,然后选择“Record Start”。
完成你想在宏命令中进行的操作。
要停止记录宏,在“Tool”菜单中,指向“Macro”,再指向“Record/Replay”,然后选择“Record Stop”。 (2)回放记录的宏 在“Tools”菜单中,指向“Macro”,再指向“Record/Replay”,然后选中“Execute Record Maro”。 (3)保存记录的宏 在“Tools”菜单中,指向“Macro”,再指向“Record/Replay”,然后选择“Write Record Macro”。
ADAMS/View 将宏命令保存为macro.cmd 的命令格式。如果文件macro.cmd 早已存在,ADAMS/View 会询问你是否覆盖,或者创建它的备份文件。
注:当你保存数据库时,ADAMS/View 将记录的宏保存在模型数据库(.bin)中。
2.使用宏编辑器来编辑和创建宏命令
你可以使用宏编辑器来编辑你已录制的宏,或者你通过导入文件创建的宏命令。你也可通过宏编辑器来创建宏。 使用宏编辑器:
(1)在“Tools”菜单中,指向“Macro”,再指向“Edit”,然后选择“New”或者“Modify”。
(2)如果你选择“Modify”,出现数据库向导。 (3)如果你选择“New”,则弹出创建宏命令对话框,如图2-4 所示。在“Macro Name”文字栏,输入宏的名字。
(4)在“Command”文字栏,输入执行宏命令的命令串。使用宏的名字,选择“Use Macro Name”。
注:你输入的命令串的名字必须是唯一的。你不能重新定义一个已存在的命令,尽管你可以在已存在的命令中添加新的关键词。例如,输入“MARKER CREATE”就是无效的,因为“MARKER CREATE”是早已存在的命令,但输入“MARKER MODIFY”就是有效的。
(5)指明整个宏命令是否能用单个的“Undo”命令撤销。注意到,对于非常大的宏命令,单个的“Undo”会消耗大量的内存,甚至你没有使用撤销操作都会显著地减慢宏命令的执行速度。你应当指明在初始化创建和调试阶段,
“Undo=yes”知道你的宏命令正常工作之后,切换到“Undo=no”来提高运行速度。
图 2-4 创建宏命令的对话框图 2-5 导入宏命令的对话框
(6)在命令文字区域,输入要执行的命令,然后选择“OK”。 3.通过导入文件来创建宏命令
(1)在“Tools”菜单中,指向“Macro”,然后选择“Read”。出现导入宏对话框,如图2-5 所示。
(2)在“Macro Name”文字框,输入ADAMS/View 将在当前数据库中保存宏的名字。
(3)在“File Name”文字栏,输入包含要执行命令的文件。
(4)在“User Entered Command”文字栏,指明将要执行宏命令的命令串。如果你不输入命令串的名字,则缺省为宏命令的名字。
(5)指明整个宏命令能否被单个的“Undo”命令撤销。对于大的宏命令,单个的“Undo”命令会消耗大量的内存或者显著地减慢宏命令执行的速度。 (6)指明包含宏命令帮助文件或者输入文字串来描叙宏。 (7)确信你没有创建过期的对话框,从“Create Panel”选择菜单中,选择“no”。 (8)选择“OK”。
2.5.3 条件命令的使用
条件命令可以用在菜单命令、对话框命令和用户自己编写的宏命令程序文件中,它的主要形式有以下三种: (1)IF/ELSEIF/ELSE/END (2)BREAK (3)CONTINUE
在次只对IF/ELSEIF/ELSE/END 命令做一简要说明。
IF/ELSEIF/ELSE/END 命令的功能为:可以用IF、ELSEIF、ELSE 和END 命令有条件地执行一组命令,用来实现逻辑判断功能。该组命令包含在IF 和END 内。该条件值取决于表达式(expression)的逻辑值。在IF/END 内,如果表达式逻辑值为1,则符合条件而执行内部命令。如果表达式逻辑值为0,则不符合条件而执行ELSE/END 中的命令。该命令可以用在命令语言、宏命令和命令文件中。
IF/ELSEIF/ELSE/END 命令的一般格式为: ①IF CONDITION=(expression) ? END
②IF CONDITION=(expression) ? ELSE ? END
③IF CONDITION=(expression) ?
ELSEIF ? ELSE ? END
下面是IF/ELSEIF/ELSE/END 命令使用的一个例子: if condition=(db_exists(\
constraint modify motion motion_name=.my_model.rotate adams_id=1 typ=rot &
joint_name=.my_model.gibell_rev function=\
constraint modify motion motion_name=.my_model.move adams_id=2 typ=rot &
joint_name=.my_model.dummy1_rev function=\else
gimovement
constraint create motion motion_name=.my_model.rotate adams_id=1 typ=rot &
joint_name=.my_model.gibell_rev function=\
constraint create motion motion_name=.my_model.move adams_id=2 typ=rot
&
joint_name=.my_model.dummy1_rev function=\end
在上例中,如果数据库中存在.my_model.move,则对其进行修改,如果不存 在.my_model.move,则调用命令文件gimovemen 创建它。
2.5.4 利用ADAMS/View 命令语言实现对界面的控制
利用 ADAMS/View 命令语言可以实现对菜单项的激活和失效控制、显示和隐藏对话框、根据程序需要改变对话框上的控件属性等。具体语法格式为: 菜单项在默认状态下是处于激活状态的,若要改变某个菜单项的状态,可以使用以下语句:
interface push_button modify &
push_button_name = 菜单项的名称 &
enabled =开关值!开关值为 yes 或no,yes 表示被激活,no 表示失效。 与此类似,下面两条语句用来控制对话框的显示和消失: interface dialog display dialog =对话框名!显示对话框; interface dialog undisplay dialog =对话框名!显示对话框;
如果由于程序需要,要改变对话框上某些控件的属性,可以用以下语法结构: interface 控件类型号modify field_name =控件名 enabled =开关值
正在阅读:
ADAMS二次开发10-23
年度工作总结及来年工作计划模板08-27
二丙二醇甲醚03-19
2,2-二羟基二乙胺09-09
第二单元语文园地二05-06
北师英语专科(二)作业二01-26
内蒙古锡盟苏尼特右旗一般公共预算支出和社会消费品零售总额数据分析报告2020版06-03
单位解除劳动合同范本正式版04-16
手写离职证明03-31
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 开发
- ADAMS
- 《资产评估学》期末论文
- 全国近几年计算机一级25套全,答案标好了
- 南京信息工程大学试卷2018- 2019年《计算机网络》期末B卷-杨振启 答案 - 图文
- 国有企业融资性贸易及风险防范
- 一年级上册数学试题-模块过关(2) 实际应用能力冲刺检测卷(含答案) - 人教新课标(2014秋)
- 医学生实习计划书范文3篇
- 国家资助励志青春征文比赛
- 运动损伤原因及预防措施
- 转:EAC(Exact Audio Copy)抓轨完美教程 - 图文
- 2019年中考化学总复习滚动小专题(三)气体的制备与净化练习
- 向雷锋叔叔学习
- 氦质谱检漏仪基本原理简介
- 工程材料及机械制造基础习题
- 关系类作文审题
- 《精细化工工艺学》思考题与习题
- 马克思概论复习题第一章
- 模具知识 - 图文
- HP5200LX打印机打印两份以上打出多倍的问题
- 关于当前文书档案归档整理的几个问题-精选文档
- 财经法规与会计职业道德章节练习 - 有详细答案