您好,欢迎访问三七文档
ADAMS二次开发的笔记一、定制用户界面1、首先要知道,再ADAMS/VIEW中,所有的界面对象都是以“层次结构”出现的,并且保存在特定的模型数据库中,在用户制定自己的用户界面的时候,最好将界面对象保存在一个你自己的数据库中,创建数据库的方法是:在commandnavigator—library—create.如果不建立自己的数据库,则所有的界面对象都默认的保存在GUI数据库下。2、要正确理解“窗口”“对话框”的概念,他们是不同的一个概念。3、我们这里讲的制定用户界面,是指制作自己的菜单和对话框,通常使用菜单编辑器和对话框编辑器来完成。4、制定自己的菜单,你要明确的是:你在制定自己的菜单的时候,菜单上出现的button的先后顺序以及menu的先后顺序是与你写菜单命令的先后顺序一致的。即:是以大纲形式来表示二、菜单语法的解释:1、菜单对象:菜单、按钮(图表按钮、togglebutton)分割线(separator)分别用关键词:menu\button\toggle\separator.定义例子:MENU1&my_menu2003NAME=my_menu2003HELP=AMenuTestBUTTON2&My_button1NAME=my_button_1HELP=testofmy_button_1CMD=AdamsCommandofmy_button_1Separator2BUTTON2&My_button2NAME=my_button_1HELP=testofmy_button_1CMD=AdamsCommandofmy_button_1Separator2MENU2&sonmenu_1BUTTON3&SonButton_1NAME=Son_Button_1CMD=AdamsCommandofSonButton_1BUTTON3&SonButton_2NAME=Son_Button_2CMD=AdamsCommandofSonButton_2在编写这些命令的时候要注意MENUBUTTONSEPARATORTOGGLE这些关键字要大写,另外在MENUn其中的n与MENU中间不允许有空格。所制定的菜单按钮,都会执行某些命令,而这些命令是靠CMD=来确定的。如果没有命令,则这个按钮就不会执行命令。2、制定对话框1)首先你要确定在adams对话框中可以创建的界面对象包括那些,一共16种,不含默认的话有12种。2)创造对话框的方法:可以利用对话框编辑器(tools—dialogbox—create)3)之后,可以在新创建的对话框添加各种不同的界面对象,进行设计布局,外观、对话框对象的大小调整以及需要执行的命令的录入。只有输入命令,才可以点击对话框中的相应的按钮来执行对应的操作。(这是在先创建对话框的条件下需要这样操作,如果是先创建一个macro之后通过修改macro的对话框就不要这样了)4)下面对利用“dialogbox”来创建的对话框中包含的界面对象进行一个简要地介绍:Label---在对话框中可以显示文字或试图像(但要注意图像的格式)Field---作用是在创建完对话框之后,希望操作者在其中输入的文字或是数值。Button---激活操作;并且可以在按钮上面书写文字或是添加图像。Togglebutton---开关按钮(也可以理解成是:勾选按钮)Separator---画一个水平线Slider---滑动条Optionmenu---从多个选项中选择一个Buttonstack---包含多个按钮,可以通过右键弹出所有按钮。Radiobox---状态按钮Container---可添加信息。5)在对话框中使用command当你创建完一个对话框的时候,大多数的界面对象都对应着一个adms/view命令,这些命令是为了完成用户所希望的一些功能(或改变模型、或改变用户输入数据、或作出选择)为了使对话框中的某些界面对象与adams/view中的命令相对应,我们可以用两种方法来得到:可以用cmd给对象创建命令;可以通过命令导向来找到所需要的命令,一旦找到这个命令你就可以在log或是命令窗口中将他们拷贝到命令编辑框。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Adams/view的对话框在执行命令前,是要进行一些“文本”的替代操作。此处的文本指的是:我们在创建对话框的时候所添加的文本。而在执行命令的时候,adams/view用界面对象的自身属性值来替代“文本”,并形成一个含有对话框自身属性(不含有文本)的命令。其实,可以简单的理解成,用我们输入的文本去替换那些相应的对象来执行命令。保存对话框:在用户制定好自己的对话框之后,必须要保存对话框。点击—dialogbox—export—commandfile.方便下次调用。打开一个自己定义的对话框:tools—dialogbox—dispay.Oradams/view—file—import—commandfile.宏命令的使用:1、要理解macro命令本质也是一个命令(集)。2、创建macro的时候,首先要按“顺序”列出想要执行得adams/view命令的清单(这一点与创建菜单类似),然后按着这个顺序将命令写成macro的形式。3、创建macro的时候,macro中也可以带有参数的——参数macro。所以,每次使用macrocommand的时候,都可以人为的输入参数进而将数据传递给macro。4、Macrocommand和其他adams/view命令一样,可以在命令窗口中输入(F3)也可以通过命令导航选择。(注:所有的命令都可以有命令窗口输入或是从命令导航中选择)重点讲解利用macroedit来创建macro:在宏编辑器中的command编辑框中,输入的是一后执行该macro的一个命令标识,如果使用macro的名字为命令标示,则需要选择UserMacroName这个选项。要注意的是,命令标示必须是唯一的,数据库中没有的表示。宏命令中的参数:1、是以$开头,后面这个参数的名字,可以定义多个参数,也可以将一个参数定义多次。2、在执行macrocommand的时候,首先在macro参数出现的地方用,参数值去替代,然后执行命令。3、例子:用macro来改变力的大小的图标,而要改变力的大小的数值,需要定义变量。Constraintattributesconstraint_name=___.*size_of_icon=$sizeForceattributesforce_name=___.*size_of_icon=$size以上是改变力的图标的大小的macrocommand下面介绍一个改变力的大小的macrocommand。首先:你要用一个设计变量来表示力的大小DV_1!$size:t=realVariablemodifyvariable_name=___real_value=$size扩展参数值:1、何为扩展参数值?2、参数限定词及其格式:1)限定词只能出现在“macro参数第一次出现的地方”。是对参数的属性进行控制的。2)参数的限定词包括:typerangecountdefault。其中type是用户必须输入的type包含:basictype\databaseobjecttype\databaseobjectclasstype\其中:basictype中real\integer\location\orientation\string\function\list(str1,str2,…)\file(pathwildacard)Databaseobjecttype:用户所输入的必须是数据库已经存在的该类型对象的名字,而数据库中该类型对象的名字如果没有存在,则必须用new_来表示。注:一个宏参数如果他没有限定词qualifier,也没有出现在命令行=后,则她的缺省值默认为“字符”,当没有限定词但是出现在=后,则该参数的类型与前面命令参数的类型相同。循环命令和条件循环:当for--end循环语句,使表示对象的时候,要注意:此时的循环变量值的是boject中所有的type类型的对象,也就是说object中类型位type的对象作为循环语句的变量。他和for--end表示数值循环是不同的。二次开发实例1、二次开发通常需要三种程序文件:菜单文件、对话框文件、adams命令文件,并且除了这三个文件以外还需要一个模块的启动文件和一个adams环境的初始化文件。(如何将菜单与用macro命令对话框有机的联系起来)MENU1&locationBUTTON2&LOCATIONCMD=interfacedialog_boxdisplaydialog_box=MACRO_1因为你一建立一个macro后,就会自动生成一个对话框,所以,你只要做的事情只有一个:就是用菜单来显示这个对话框就可以了。设定二次开发模块的运行路径,启动adams/view,并调用cvmain.com文件对adams环境进行二次开发相关的初始化。SetMDI_VCJ=d:\cvj-----------------------!设定二次开发模块的运行路径(在d盘的cvj文件夹下)SetMDI_CMD=mdi------------------------!启动adams/viewcd%MDI_CVJ%copycvmain.cmdaview.cmd-------------!调用cvmain.cmd文件delaview.cmd通过以上代码写成的命令cv_strat.bat的作用是:通过运行该文件来启动本二次开发的模块。对adams/view进行初始化的命令cvmain.cmd的代码:Ifcond=(!db_exists(“.MDI.cvj_dir”))Variablecreatevariable_name=.MDI.cvj_dirstring_name=(eval(“d:”//”\\”//”cvj”))Defaultsunitslength=mmangle=degforce=newtonmass=kgtime=secDefaultunitscoordinate_type=cartesianorientation_type=body313Macroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”mygibell”))&Macro=mygibellMacroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”tripodemac”))&Macro=tripodemacMacroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”ballloopmac”))&Macro=ballloopmac…Macroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”//”gelash”))&Macro=gilashMacroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”//”didyn”))&Macro=gidyn…Macroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”//”gireqlash”))&Macro=gireqlashMacroreadfile_name=(eval((.MDI.cvj_dir)//”\\”//”macros”//”\\”//”gireqcust”))&Macro=gireqcust…读入菜单命令:interfacemenbar…读入对话框的命令:file(command)readfile_name…思考:读入的命令如何与读入的对话框联系起来。要注意default里面有哪些
本文标题:ADAMS二次开发
链接地址:https://www.777doc.com/doc-3988000 .html