1 概述

在Adams使用过程中,有些复杂的情况特别是涉及到一些逻辑表达,用函数表达式很难表达出来,这种情况需要使用用户子程序。

Adams用户子程序支持C语言和Fortran语言,随着C语言的普及,越来越多的用户使用C语言编写用户子程序。用户子程序属于Adams较难掌握的部分,且Adams2012版本和以前版本相比较,用户子程序的数据格式和函数内容都已有了较大的发展,本文介绍如何在Adams2012版本中编译C语言用户子程序。

2 操作平台

 操作系统:Windows 7 64位

 软件版本:Adams 2012 32位、Visual Studio 2008 32位

 编译软件:Intel Fortran 11.0

 环境配置:

1.在操作系统环境变量Path中增加Adams启动文件mdi.bat的路径,如D:\MSC.Software\Adams\2012\common\mdi.bat

2.把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的原始代码,其代码为:

图1 用户子程序代码

注意:因为代码中引用了slv_c_utils.h,复制时必须同时复制slv_c_utils.h文件,否则编译时会报错。

4 编译操作

(1) 在开始菜单下,启动Visual Studio 2008命令提示工具。

图2 启动编译工具

(2) 把工作路径设置到用户子程序文件所在路径(D:\mysubroutine)。

图3 设置工作路径

(3) 输入mdi,系统进入Adams环境中,输入cr-u,进入编译子程序,这时系统提示是否在调试状态下连接,直接输入回车。

图4 进入Adams编译环境

(4) 输入C语言用户子程序的文件名vfosub.c并回车,注意:

该文件必须是以.c为后缀名,不能以.cpp为后缀名

该文件必须在当前路径下存在

系统提示输入下一个文件名称,这时直接点击回车;然后输入生成的dll文件的名称,这个文件名可不与c文件同名,比如输入myvfosub.dll,然后点击回车,系统进行编译。

图5 输入用户子程序的名称

(5) 编译完成后,如果系统提示编译成功,会在vfosu.c所在的文件夹中生成编译成功的dll文件,至此完成用户子程序的编译。

图6 生成用户子程序dll文件

5 结论

用户子程序涉及到Adams、C语言、Fortran语言等知识,且需要配置环境,初学者很难掌握。本文详细介绍了如何在Adams2012中编译C语言用户子程序的过程,对初学者有很好的参考意义。

c语言的子程序文件名,Adams2012编译C语言用户子程序相关推荐

  1. vscode编译程序c语言,如何用VS code编译C语言代码?

    VS Code只是一个代码编辑器,要实现对C语言代码的编译,需要下载单独的GCC编译器才行,下面我简单介绍一下VS Code编译C语言程序的配置过程,主要步骤如下: 1.首先,需要安装C/C++插件, ...

  2. c语言银行存取款系统编译,C语言银行存取款管理系统.docx

    5 5 C 语言 银行存取款管理系统 得分: 信电工程学院 <高级语言程序设计课程设计>报告 题目 : 银行存取款管理系统 班级: 10 电信(1) 班 学号: 20100504143 姓 ...

  3. adams c语言,Adams2013编译C语言用户子程序

    1.操作系统:Windows xp 32位 2.软件版本:Adams 2013 32位.Visual Studio 2010专业版 32位 3.编译软件:Intel Visual Fortran 11 ...

  4. 解惑解释性语言与编译性语言

    计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.      翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同 ...

  5. 易语言窗口c_句柄取进程名,易语言窗口句柄取进程文件名源码

    窗口句柄取进程文件名系统结构:句柄取进程文件名,CreateToolhelp32Snapshot,GetWindowThreadProcessId,CloseHandle,Module32First, ...

  6. 编译性语言和解释性语言的区别

    编译性语言和解释性语言的区别 1.编译性语言 (1)只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以:因此其执行的效率比较高: (2)编译性语言代表:C. ...

  7. 解释性语言和编译性语言的区别

    解释性语言和编译性语言的区别 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方 ...

  8. linux终端输出c语言程序,Linux终端程序用c语言实现改变输出的字的颜色

    颜色代码: 格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo "\033[41;36m something here \033 ...

  9. 怎样用gcc编译c语言,使用GCC编译C语言程序

    使用Eclipse CDT开发C语言程序,虽然使用很方便,效率也很高,但是它向我们隐藏了很多细节.虽然大多数时候这并不影响我们的开发,但是当我们需要对程序的编译链接过程进行更加特殊的控制,以获得可以满 ...

最新文章

  1. 程序员过关斩将--从用户输入手机验证码开始
  2. c语言中如何表示矩阵的乘法,c语言矩阵相乘
  3. 常看 Shell: 文本文件操作
  4. YUI Grid CSS的优雅设计(转)
  5. 《Head First Servlets JSP(中文版)》书摘
  6. EXP-00091 正在导出有问题的统计信息 问题的解决(转)
  7. Flex布局 让你的布局更完美
  8. React开发(183):ant design 中treeSelect控制选中
  9. 组件注册-@Scope-设置组件作用域
  10. 外边距合并(HTML、CSS)
  11. 2021年上海高考小三门成绩查询,高考小三门怎么算分 上海2021高考小三门
  12. IntelliJ IDEA之Java开发常规项目配置介绍
  13. 简笔画花边边框超简单_好看的花边边框简笔画
  14. html文件中flash视频格式(flv、swf)文件的嵌入方法
  15. 【苹果相册推送查找推】 “ 网站推送ID ”是指您用于签署您的网站的注册包
  16. 为什么连接xshell报错Could not connect to 172.16.16.100 (port 22): Connection failed
  17. VBA SmartArt生成组织结构图
  18. android 城市列表
  19. 微信小程序开发(九)之开发版和测试版小程序打不开的问题
  20. LED背光源运用在温控设备上

热门文章

  1. 造化之门中8条鸿蒙,神预测造化之门和鸿蒙造化决有关系 ?
  2. PHP——PHP初识
  3. 移动APP开发的锦囊妙计 | 一键解决碎片化测试的所有问题
  4. 塔防游戏学习笔记2、ui界面中钱不够时的动画效果
  5. 华为p10 android几,华为P10的屏幕尺寸是多少?分辨率是多少?
  6. 刘畊宏男孩女孩看过来!运动数据分析挖掘!(附全套代码和数据集) ⛵
  7. 一篇看懂QVector
  8. Apriori关联规则挖掘算法函数
  9. eclipse读取mysql数据乱码,eclipse 连接mysql 中文乱码
  10. M1pro mac登陆EasyConnect报错“未能正确打开SANGFOR SSL Virtual网卡,暂时不能提供SSL CS服务,请联系管理员”