Adams 2013自定义插件方法zz

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”这种命名才可以,否则不能实现插件的加载和卸载。

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文件详细代码为:

该文件必须和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,创建自定义菜单的程序需要稍作修改,其他程序都是相同的。
Adams 2013自定义插件方法zz的更多相关文章
- Vue自定义插件方法大全
新年第一天首先祝大家新年快乐,心想事成! 1.利用根实例构造函数的原型 //在构造函数的原型链上添加自定义属性 Vue.prototype.test = 'pomelo' //在其他组件中调用 con ...
- ionic3使用cordova创建自定义插件
1 安装 plugman 插件 npm --registry https://registry.npm.taobao.org install -g plugman 2 新建组件 新建一个插件文件夹,进 ...
- LibVLC自定义插件目录,获取FPS方法
一.自定义插件目录 在Windows平台,使用LibVLC,只需要在VLC官网的nightly builds下载最新的win32 debug或win64 debug包, 解压缩之后,会有libvlc. ...
- jQuery命名空间和自定义插件的的多种方法
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- spring boot集成mybatis-plus插件进行自定义sql方法开发时报nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
spring boot集成mybatis-plus插件进行自定义sql方法开发时报nested exception is org.apache.ibatis.binding.BindingExcept ...
- validate插件深入学习-04自定义验证方法
自定义验证方法 jQuery.validator.addMethod(name,method,[,message]) name: 方法名 method: function(value,element, ...
- 深入学习jQuery自定义插件
原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数); $(‘#id’).myPlugin(o ...
- jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
上一篇记录了BaiduTemplate模板引擎使用示例附源码,在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: //闭包限定命名空间 (function ($) { ...
- Phonegap中自定义插件的使用
在phonegap中需要实现特定相关的功能,可能需要自定义扩展一下功能,那么扩展phonegap组件就成为了可能. 源代码结构图: 本文目的在于讲述怎么扩展一个phonegap组件以及实现. 针对ph ...
随机推荐
- 深入浅出mybatis之缓存机制
目录 前言 准备工作 MyBatis默认缓存设置 缓存实现原理分析 参数localCacheScope控制的缓存策略 参数cacheEnabled控制的缓存策略 总结 前言 提到缓存,我们都会不约而同 ...
- ARIMA模型原理
一.时间序列分析 北京每年每个月旅客的人数,上海飞往北京每年的游客人数等类似这种顾客数.访问量.股价等都是时间序列数据.这些数据会随着时间变化而变化.时间序列数据的特点是数据会随时间的变化而变化. 随 ...
- Collections -- OrderedDict类
普通dict(字典)在插入的时候并不记住元素的顺序,迭代器会根据散列表(哈希表)中存储的顺序来生成的.而OrderedDict则会记录元素的顺序,并且在迭代器输出时,会按现在记录的顺序进行遍历. 例: ...
- 深度学习与NLP简单应用
在深度学习中,文本分类的主要原型:Text label,坐边是输入端“X”,右边是输出端“Y”.行业baseline:用BoW(bag of words)表示sentences(如何将文本表达成一 ...
- JavaScript实现轮播图效果
我又来了,同志们.老想你们了 捕获小可爱一枚. 下面进入正题:用JavaScript原生代码写轮播图效果. 具体效果就不多说了,网站上面的轮播效果我们都知晓.下面是展示代码 html代码: <d ...
- 【转】Java中的新生代、老年代、永久代和各种GC
JVM中的堆,一般分为三大部分:新生代.老年代.永久代: 1 新生代 主要是用来存放新生的对象.一般占据堆的1/3空间.由于频繁创建对象,所以新生代会频繁触发MinorGC进行垃圾回收. 新生代又分为 ...
- 多线程/多进程/异步IO
SOCK_STREAM :TCPSOCK_Dgram :UDP family=AF_INET: 服务器之间的通信AF_INET6: 服务器之间的通信AF_UNIX: Unix不同进程间的通信 永远遵循 ...
- day07 数据类型间的相互转化及字符编码
今日内容: 字符间的相互转化 字符编码 今日重点: 字符间的相互转化 """ 字符间的相互转化: """ """ ...
- linux常用命令【原创】
查看文件内容-while: cat 1.txt|while read line;do echo $line;done while read line; do echo $line; done < ...
- 走进异步编程的世界 - 开始接触 async/await(转)
序 这是学习异步编程的入门篇. 涉及 C# 5.0 引入的 async/await,但在控制台输出示例时经常会采用 C# 6.0 的 $"" 来拼接字符串,相当于string.Fo ...