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

[资料共享] Adams2012编译C语言用户子程序

[复制链接]
发表于 2014-7-30 10:04:06 | 显示全部楼层 |阅读模式 来自 中国
Adams2012编译C语言用户子程序
1 概述
在Adams使用过程中,有些复杂的情况特别是涉及到一些逻辑表达,用函数表达式很难表达出来,这种情况需要使用用户子程序。
Adams用户子程序支持C语言和Fortran语言,随着C语言的普及,越来越多的用户使用C语言编写用户子程序。用户子程序属于Adams较难掌握的部分,且Adams2012版本和以前版本相比较,用户子程序的数据格式和函数内容都已有了较大的发展,本文介绍如何在Adams2012版本中编译C语言用户子程序。
2 操作平台
l  操作系统:Windows7 64位
l  软件版本:Adams2012 32位、VisualStudio 2008 32位
l  编译软件:IntelFortran 11.0
l  环境配置:
–  在操作系统环境变量Path中增加Adams启动文件mdi.bat的路径,如D:\MSC.Software\Adams\2012\common\mdi.bat
–  把Fortran安装路径下的libifcoremd.lib、libmmd.lib、libifportmd.lib、libirc.lib、svml_dispmd.lib这5个库文件复制到Adams安装路径下win32文件夹下
3 编写用户子程序
Adams安装程序solver\c_usersubs文件夹下有C语言编写的常用的用户子程序,其中slv_c_utils.h文件是用户子程序的头文件。编写用户子程序时,在这些程序的基础上进行更改会有事半功倍的效果。
本文以编写VForce用户子程序为例,对其编写、编译操作过程进行说明。
复制vfosub.c和slv_c_utils.h两个文件到个人工作文件夹下,如D:\mysubroutine,可以对vfosub.c文件进行代码修改。本文直接使用vfosub.c的原始代码,其代码为:
file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg
用户子程序代码
注意:因为代码中引用了slv_c_utils.h,复制时必须同时复制slv_c_utils.h文件,否则编译时会报错。
4 编译操作
(1)           在开始菜单下,启动Visual Studio 2008命令提示工具。
file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image004.jpg  file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image006.jpg
启动编译工具
(2)           把工作路径设置到用户子程序文件所在路径(D:\mysubroutine)。
file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image008.jpg

设置工作路径
(3)          输入mdi,系统进入Adams环境中,输入cr-u,进入编译子程序,这时系统提示是否在调试状态下连接,直接输入回车。
file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image010.jpg

进入Adams编译环境
(4)           输入C语言用户子程序的文件名vfosub.c并回车,注意:
–  该文件必须是以.c为后缀名,不能以.cpp为后缀名
–  该文件必须在当前路径下存在
       系统提示输入下一个文件名称,这时直接点击回车;然后输入生成的dll文件的名称,这个文件名可不与c文件同名,比如输入myvfosub.dll,然后点击回车,系统进行编译。
file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image012.jpg

输入用户子程序的名称
(5)           编译完成后,如果系统提示编译成功,会在vfosu.c所在的文件夹中生成编译成功的dll文件,至此完成用户子程序的编译。
file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image014.jpg  file:///C:\Users\user\AppData\Local\Temp\msohtmlclip1\01\clip_image016.jpg

生成用户子程序dll文件
5 结论
用户子程序涉及到Adams、C语言、Fortran语言等知识,且需要配置环境,初学者很难掌握。本文详细介绍了如何在Adams2012中编译C语言用户子程序的过程,对初学者有很好的参考意义。
适用版本:Adams2013.1及以后版本
模型文件:vfosub.c和slv_c_utils.h
已经安装Adams2012的用户,可以在Adams的安装路径以下位置找到相关文件:X:\MSC.Software\Adams_x64\2012\solver\c_usersubs

发表于 2014-12-12 15:11:37 | 显示全部楼层 来自 吉林长春
Simdroid开发平台
用户子程序比较复杂,有时候易出问题。
回复 不支持

使用道具 举报

发表于 2014-12-15 11:04:28 | 显示全部楼层 来自 北京
多谢楼主的分享
回复 不支持

使用道具 举报

发表于 2014-12-26 16:27:14 | 显示全部楼层 来自 河北秦皇岛
Fortran安装路径下的libifcoremd.lib、libmmd.lib、libifportmd.lib、libirc.lib、svml_dispmd.lib这5个库文件复制到Adams安装路径下win32文件夹下
我真么找不到这些东西啊啊
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-11-2 05:35 , Processed in 0.030932 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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