CAE大拿 发表于 2017-2-20 17:16:08

Adams 2013自定义插件方法


1.Adams插件介绍
Adams的高级模块(如Controls控制模块、Vibration振动模块、Durability耐久性模块等)是以插件的形式集成在Adams软件中。通过Adams提供的插件管理器(Plugin Manager)工具能非常方便地对这些插件进行管理,即插即用,激活或失效插件,扩展应用领域。

在进行Adams二次开发定制客户化程序后,把所开发的程序做成一个插件,能非常方便地加载或卸载,方便使用。

2.Adams自定义插件方法
为方便操作和重复使用,Adams的操作过程使用脚本语言实现。交互式操作同样可以实现,这里不再阐述。

2.1 创建library
首先创建一个library库,后续所有的二次开发的程序都放在此库中。创建一个名为example_plugin的库的脚本代码为:
if condition = (eval(!db_exists(".example_plugin ")))
library create library_name = . example_plugin
end
完成后,可以在Database Navigator中查看所建的库。

2.2 编写二次开发程序
使用Adams编程语言、Macro宏命令或者Dialog Box对话框编程技术进行Adams软件的二次开发,实现客户定制化程序。
本文使用对话框编程技术开发一个对话框,如下图所示。
注意:所有开发的程序都需要包含在上述所建的example_plugin库中。为了使用方便,建议使用编程的方式进行软件开发。


2.3 创建自定义菜单
创建Adams自定义菜单和命令按钮,并关联上一步中创建的对话框程序。定义新创建的菜单变量名称是example,显示的菜单名是Myplugin;定义创建的按钮显示名称为Line of Markers,使用commands命令把该按钮与对话框关联起来。详细的命令程序如下:
interface menu create menu_name = .gui.main.mmenu_menu.mbar_refresh.examplelabel = "MyPlugin"
interface push_button create push_button_name = .gui.main.mmenu_menu.mbar_refresh.example.button_1 &
label = "Line of Markers" &
commands = "interface dialog display dialog=.example_plugin.dbox_1"
使用下面的程序实现自定义菜单的加载和卸载。注意,此处宏的名称是固定的,必须是“库文件名.load”和“库文件名.unload”这种命名才可以,否则不能实现插件的加载和卸载。
macro create &
      macro=.example_plugin.load&      
      wrap_in_undo=No &
      user="mdi example_plugin load" &
      commands_to_be_executed="file binary read &", &
         "    file=(getenv(\"EXAMPLE_PLUGIN_BIN_DIR\") // \"/example_plugin\") &", &
"    entity= .gui.main.mmenu_menu.mbar_refresh.example"
macro create &
      macro=.example_plugin.unload&
      wrap_in_undo=No &
      user="mdi example_plugin unload"   &
      commands_to_be_executed="if condition=(db_exists(\".gui.main.mmenu_menu.mbar_refresh.example\"))", &                                    " entity delete entity_name = .gui.main.mmenu_menu.mbar_refresh.example", &                              "end"

2.4 生成Bin二进制文件
上述所创建的程序都包含在example_plugin库中,需要把此库文件和创建的菜单一起生成为Bin格式的二进制文件,具体程序如下:
file binary write &
file_name = "example_plugin.bin" &
entity_name = .example_plugin, &
                .gui.main.mmenu_menu.mbar_refresh.example
运行上述命令后,会在Adams工作路径文件夹中生成名称为example_plugin.bin的文件,
注意:文件的名称有严格要求。要求插件的名称、Library库文件名称、二进制文件名称以及XML文件名称必须相同。例如,插件名称是example_plugin,则库文件名称必须是example_plugin,二进制文件example_plugin.bin,XML文件的名称是example_plugin_plg.xml。

2.5 定义XML文件
由于定义的库文件名称是example_plugin,所以XML文件的名称必须是example_plugin_plg.xml,否则插件不能正常使用。
XML文件详细代码为:
<MSCPlugin xmlns="http://www.adams.com/:MDI" xmlns:kernel="http://www.adams.com/:kernel">
<kernel:Bibliography>
    <File schema="plugin" version="1.0.0" publicationDate="2014-10-09 10:44:48 -0500" />
    <Revision version="1" />
    <Corporation author="Customer" URI="http://www.adams.com/" />
    <Author user="Unknown" name="Unknown" />
    <Environment hostName="Unknown" operatingSystem="Windows" />
    <Application name="Adams" version="2013" />
</kernel:Bibliography>
<Plugin>
    <Name>example_plugin</Name>
    <Description>
      <!]>
    </Description>
    <Version>2013</Version>
    <Author>Customer</Author>
    <Type>Public</Type>
    <LicenseFeature></LicenseFeature>
    <ValidWith>aview:acar</ValidWith>
    <NotValidWith>ppt</NotValidWith>
</Plugin>
</MSCPlugin>
该文件必须和example_plugin.bin文件放在同一个文件夹中,可以放在Adams安装路径下(如D:\MSC.Software\Adams_x64\2013\win64),这样启动Adams时自动加载该插件;也可以放在Adams的启动目录中, Adams在此目录启动时会自动加载该插件,本文把这两个文件放在Adams启动路径中。

2.6 使用自定义插件
启动Adams 2013,打开Plugin Manager插件管理器,会出现自定义的example_plugin插件,加载该插件生成菜单,点击菜单按钮弹出自定义的对话框。
以上步骤完成自定义插件的实现。

注意:本文所有的操作是在Adams 2013版本默认界面中完成,由于Adams新旧界面有很大的变化,如果使用旧界面的Adams,创建自定义菜单的程序需要稍作修改,其他程序都是相同的。

dqqdjj007 发表于 2020-2-25 15:05:18

有没有更详细的资料

my_dear2002 发表于 2020-2-25 21:34:55

这个已经很详细了,按照做一遍就知道了。

wangjiawei0823 发表于 2020-7-11 19:37:29

这个已经很详细了,按照做一遍就知道了。
页: [1]
查看完整版本: Adams 2013自定义插件方法