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 ...
随机推荐
- python之路(8)常用模块
目录 os模块 sys模块 json模块 pickle模块 xml模块 re模块 logging模块 configparser模块 hashlib模块 time模块 random模块 subproce ...
- 1. Ansible 简介
目录 1. Ansible 是什么? 2. Ansible 特性 3. 控制主机需求 4. 被管理节点需求 1. Ansible 是什么? Ansible 是一个配置管理系统(configuratio ...
- django-个人博客登录及权限验证功能的实现
完成注册后随即开始进行登录,登录后页面显示登录者的名称 实现如下: 前端页面html,对session进行判断,有值则显示登录者的名字 ,无值则显示注册字样: 后台views函数 首先对验证码进行验 ...
- [Reinforcement Learning] Cross-entropy Method
Cross-entropy Method(简称CEM)虽然是一种基于交叉熵的算法,但并不是我们熟知的监督学习中的交叉熵方法,与其说它是一种基于交叉熵的算法,倒不如说是一种基于蒙特卡洛和进化策略的算法. ...
- Linux samba服务器的搭建
目录 1. 安装samba 2. 配置smb.conf 3. 创建samba登陆用户 4. 创建samba共享文件夹 5. 重启samba服务 6. 访问samba共享文件夹 7. 参考资料 1. 安 ...
- ef mysql
App.config <configuration> <configSections> <!-- For more information on Entity Frame ...
- [经验交流] 影响 kubernetes 稳定性的因素
使用k8s已有近一年的时间,版本从1.2到1.5.1.6.1.7,期间出现并解决了不少问题,下面是我总结的影响k8s集群稳定性的因素: 1. 安装环境 *kubelet版本最好与kube-apiser ...
- nodejs的package.json依赖dependencies中 ^ 和 ~ 的区别
nodejs的package.json定义了一个模块,包括其依赖关系的一个简单的JSON文件,该文件可以包含多个不同的指令来告诉Node包管理器如何处理模块. dependencies则表示此模块依赖 ...
- css悬浮提示框
效果图: code: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- MVC 前端页面ViewData参数名不区分大小写
项目中实际应用: 后台赋值时传的是:ViewData["CheckedSystemMenu"], 前台取值时:ViewData["checkedsystemmenu&qu ...