《ADAMS二次开发的笔记》由会员分享,可在线阅读,更多相关《ADAMS二次开发的笔记(6页珍藏版)》请在金锄头文库上搜索。
1、ADAMS二次开发的笔记一、定制用户界面1、首先要知道,再ADAMS/VIEW中,所有的界面对象都是以“层次结构”出现的,并且保存在特定的模型数据库中,在用户制定自己的用户界面的时候,最好将界面对象 保存在一个你自己的数据库中,创建数据库的方法是:在command navigatorlibrarycreate. 如果不建立自己的数据库,则所有的界面对象都默认的 保存在GUI数据库下。2、要正确理解“窗口”“对话框”的概念,他们是不同的一个概念。3、我们这里讲的制定用户界面,是指制作自己的菜单和对话框,通常使用菜单编辑器和对话框编辑器来完成。4、制定自己的菜单,你要明确的是:你在制定自己的菜单的
2、时候,菜单上出现的button的先后顺序以及menu的先后顺序是与你写菜单命令的先后顺序一致的。即:是以大纲形式来表示二、菜单语法的解释:1、菜单对象:菜单、按钮(图表按钮、toggle button)分割线(separator)分别用关键词:menu buttontoggleseparator.定义例子:MENU1 &my_menu2003 NAME=my_menu2003 HELP=A Menu Test BUTTON2 &My_button1 NAME=my_button_1 HELP=test of my_button_1 CMD=Adams Command of my_button_
3、1Separator2BUTTON 2 &My_button2 NAME=my_button_1 HELP=test of my_button_1 CMD=Adams Command of my_button_1Separator2MENU2 &son menu_1 BUTTON3 &Son Button_1 NAME=Son_Button_1 CMD=Adams Command of Son Button_1BUTTON3 &Son Button_2 NAME=Son_Button_2 CMD=Adams Command of Son Button_2在编写这些命令的时候要注意 MENU B
4、UTTON SEPARATOR TOGGLE这些关键字要大写, 另外在MENUn其中的n与MENU中间不允许有空格。 所制定的菜单按钮,都会执行某些命令,而这些命令是靠CMD=来确定的。如果没有命令,则这个按钮就不会执行命令。2、制定对话框1)首先你要确定在adams对话框中可以创建的界面对象包括那些,一共16种,不含默认的话有12种。2)创造对话框的方法:可以利用对话框编辑器(toolsdialog boxcreate)3)之后,可以在新创建的对话框添加各种不同的界面对象,进行设计布局,外观、对话框对象的大小调整以及需要执行的命令的录入。只有输入命令,才可以点击对话框中的相应的按钮来执行对应
5、的操作。(这是在先创建对话框的条件下需要这样操作,如果是先创建一个macro之后通过修改macro的对话框就不要这样了)4)下面对利用“dialog box”来创建的对话框中包含的界面对象进行一个简要地介绍:Label-在对话框中可以显示文字或试图像(但要注意图像的格式)Field-作用是在创建完对话框之后,希望操作者在其中输入的文字或是数值。Button-激活操作;并且可以在按钮上面书写文字或是添加图像。Toggle button-开关按钮(也可以理解成是:勾选按钮)Separator-画一个水平线Slider-滑动条Option menu-从多个选项中选择一个Button stack-包含
6、多个按钮,可以通过右键弹出所有按钮。Radio box-状态按钮Container-可添加信息。5)在对话框中使用command当你创建完一个对话框的时候,大多数的界面对象都对应着一个adms/view命令,这些命令是为了完成用户所希望的一些功能(或改变模型、或改变用户输入数据、或作出选择)为了使对话框中的某些界面对象与adams/view中的命令相对应,我们可以用两种方法来得到:可以用cmd给对象创建命令;可以通过命令导向来找到所需要的命令,一旦找到这个命令你就可以在log 或是命令窗口中将他们拷贝到命令编辑框。!Adams/view的对话框在执行命令前,是要进行一些“文本”的替代操作。此处
7、的文本指的是:我们在创建对话框的时候所添加的文本。而在执行命令的时候,adams/view用界面对象的自身属性值来替代“文本”,并形成一个含有对话框自身属性(不含有文本)的命令。其实,可以简单的理解成,用我们输入的文本去替换那些相应的对象来执行命令。保存对话框:在用户制定好自己的对话框之后,必须要保存对话框。点击dialog boxexportcommand file.方便下次调用。打开一个自己定义的对话框:toolsdialog boxdispay. Or adams/viewfileimportcommand file.宏命令的使用:1、 要理解macro命令本质也是一个命令(集)。2、
8、创建macro的时候,首先要按“顺序”列出想要执行得adams/view命令的清单(这一点与创建菜单类似),然后按着这个顺序将命令写成macro的形式。3、 创建macro的时候,macro中也可以带有参数的参数macro。所以,每次使用macro command的时候,都可以人为的输入参数进而将数据传递给macro。4、 Macro command 和其他adams/view命令一样,可以在命令窗口中输入(F3)也可以通过命令导航选择。(注:所有的命令都可以有命令窗口输入或是从命令导航中选择)重点讲解利用macro edit来创建macro:在宏编辑器中的command编辑框中, 输入的是一
9、后执行该macro的一个命令标识,如果使用macro的名字为命令标示,则需要选择User Macro Name这个选项。要注意的是,命令标示必须是唯一的,数据库中没有的表示。宏命令中的参数:1、 是以$开头,后面这个参数的名字,可以定义多个参数,也可以将一个参数定义多次。2、 在执行macro command的时候,首先在macro 参数出现的地方用,参数值去替代,然后执行命令。3、 例子:用macro来改变力的大小的图标,而要改变力的大小的数值,需要定义变量。Constraint attributes constraint_name=_ .*size_of_icon=$sizeForce a
10、ttributes force_name=_ .*size_of_icon=$size以上是改变力的图标的大小的macro command下面介绍一个改变力的大小的macro command。首先:你要用一个设计变量来表示力的大小 DV_1!$size:t=realVariable modify variable_name=_ real_value=$size扩展参数值:1、 何为扩展参数值?2、 参数限定词及其格式:1) 限定词只能出现在“macro参数第一次出现的地方”。是对参数的属性进行控制的。2) 参数的限定词包括:type range count default。其中type是用户必
11、须输入的 type包含: basic type database object typedatabase object class type 其中:basic type中 realintegerlocationorientationstringfunctionlist(str1,str2,)file(path wildacard)Database object type:用户所输入的必须是数据库已经存在的该类型对象的名字,而数据库中该类型对象的名字如果没有存在,则必须用new_ 来表示。注:一个宏参数如果他没有限定词qualifier,也没有出现在命令行=后,则她的缺省值默认为“字符”,当没有
12、限定词但是出现在=后,则该参数的类型与前面命令参数的类型相同。循环命令和条件循环:当for-end循环语句,使表示对象的时候,要注意:此时的循环变量值的是 boject中所有的type类型的对象,也就是说object中类型位type的对象作为循环语句的变量。他和for-end表示数值循环是不同的。二次开发实例1、二次开发通常需要三种程序文件:菜单文件、对话框文件、adams命令文件,并且除了这三个文件以外还需要一个模块的启动文件和一个adams环境的初始化文件。(如何将菜单与用macro命令对话框有机的联系起来)MENU1 &location BUTTON2 &LOCATION CMD=int
13、erface dialog_box display dialog_box=MACRO_1因为你一建立一个macro后,就会自动生成一个对话框,所以,你只要做的事情只有一个:就是用菜单来显示这个对话框就可以了。设定二次开发模块的运行路径,启动adams/view,并调用文件对adams环境进行二次开发相关的初始化。Set MDI_VCJ=d:cvj-!设定二次开发模块的运行路径(在d盘的cvj文件夹下)Set MDI_CMD=mdi-!启动adams/viewcd %MDI_CVJ%copy cvmain.cmd aview.cmd-!调用cvmain.cmd文件del aview.cmd通过以
14、上代码写成的命令cv_strat.bat的作用是:通过运行该文件来启动本二次开发的模块。对adams/view进行初始化的命令 cvmain.cmd的代码:If cond=(!db_exists(“.MDI.cvj_dir”)Variable create variable_name=.MDI.cvj_dir string_name=(eval(“d:”/”/”cvj”)Defaults units length=mm angle=deg force=newton mass=kg time=secDefault units coordinate_type=cartesian orientation_type=body313Macro read file_name=(eval(.MDI.cvj_dir)/”/”macros”/”mygibell”)&Macro=mygibellMacro r