找回密码
 注册
Simdroid-非首页
查看: 202|回复: 3

[资料共享] Adams 2013自定义插件方法

[复制链接]
发表于 2017-2-20 17:16:08 | 显示全部楼层 |阅读模式 来自 中国

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.example  label = "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>
      <![CDATA[Marker creation tools.]]>
    </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,创建自定义菜单的程序需要稍作修改,其他程序都是相同的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2020-2-25 15:05:18 | 显示全部楼层 来自 天津
Simdroid开发平台
有没有更详细的资料
回复 不支持

使用道具 举报

发表于 2020-2-25 21:34:55 | 显示全部楼层 来自 中国
这个已经很详细了,按照做一遍就知道了。
回复 不支持

使用道具 举报

发表于 2020-7-11 19:37:29 | 显示全部楼层 来自 吉林长春
这个已经很详细了,按照做一遍就知道了。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 13:36 , Processed in 0.031556 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表