#ANSYS 二次开发# #UPFs# #用户子程序关联# #VS# #Fortran#
由于笔者工作上对于ANSYS UPFs二次开发工具的需求、网络上关于ANSYS用户子程序的介绍又相对较少,所以,笔者将自己不断摸索总结的经验整理成一份教程供大家学习参考,欢迎大家一起讨论交流。创作不易,大家觉得有帮助记得打赏一下哦!
一、环境配置
搭配的环境:win10,ANSYS 2022R1,VS 2019,Fortran 2020(关联子程序之前需要确保三者之间互相兼容,否则将会关联不成功!另外,使用 ANSYS UPFs 二次开发功能,在安装 ANSYS 时,一定要手动勾选“Customization files for user programmable features”选项,ANSYS是默认不安装的。最后,一定要先安装VS,再安装Fortran,顺序不能搞反!)
二、子程序关联
注:本文中的usermat.F文件来源于Examples文件夹,仅作为本教程关联子程序的演示效果
1. 准备工作
1. 1 指定环境变量
此电脑——属性——高级——高级系统设置——环境变量——新建系统变量
变量名:ANS_USE_UPF 变量值:TRUE
1.2 将使用Fortran语言写好的XXX.F文件放到ANSYS安装目录下的指定位置,参考路径如下:
D:\ANSYS Inc\v221\ansys\custom\user\winx64
1.3 选中同目录下"ANSCUST.BAT"文件,右键“编辑”,进行一些相关的修改
1.4 在打开的"ANSCUST.BAT"文件第3行的位置插入必要的代码(2024年7月7日更新)
为了便于后续操作,强烈建议默认插入以下两行代码:
rem 切换到批处理文件所在目录
cd /d %~dp0
1.5 在ANSCUST.BAT中,找到如下代码进行修改替换,替换的内容见以下操作
1.6 在“开始”位置找到“Compiler 19.1 Update 3 for Intel 64 Visual Studio 2019 environment”打开文件位置,选中文件然后右键“属性”,直接CTRL+C复制目标路径,默认选中状态,复制完成关闭此属性框。
目标路径如下:
C:\Windows\System32\cmd.exe /E:ON /V:ON /K "
"D:\IntelSWTools\compilers_and_libraries_2020.4.311\windows\bin\ipsxe-comp-vars.bat"
intel64 vs2019"
1.7 处理目标路径,删掉多余字符,只留下第二行双引号中的内容,然后替换49行代码中"..."部分的内容,替换完成以后保存并关闭
D:\IntelSWTools\compilers_and_libraries_2020.4.311\windows\bin\ipsxe-comp-vars.bat
替换前:
call "%IFORT_HOME%\bin\compilervars.bat" %IFORT_PLATFORM% %VSVER%
替换后:
call "D:\IntelSWTools\compilers_and_libraries_2020.4.311\windows\bin\ipsxe-comp-vars.bat" %IFORT_PLATFORM% %VSVER%
2. 链接子程序
2.1 方法一:在开始菜单中,找到ANSYS 2022 R1文件夹,选择 ANS_ADMIN 2022 R1 ,以管理员身份打开,然后点击Relink ANSYS,按任意键后,第一次按N回车,第二次按Y回车
2.2 方法二:在目标路径中D:\ANSYS Inc\v221\ansys\custom\user\winx64找到ANSCUST.BAT文件,右键以管理员身份运行,按任意键后,第一次按N回车,第二次按Y回车(2024.7.7更新)
注:(如果方法二出现闪退,方法一可以正常操作,那么参考常见问题2自行调试)
显示Link was sucessful就表示子程序已经链接成功,第二次输入Y然后回车,链接完成就OK啦!
显示已复制就可以关闭对话框,打开工作目录就会看到已经生产了定制的ANSYS.exe文件
3. 在非默认工作目录下链接子程序(2024.7.13更新)
只需将win64文件夹复制到新建的文件夹目录中,然后把用户子程序放入该目录win64文件夹中,以管理员身份运行"ANSCUST.BAT"文件即可,其余步骤与上述部分相同。
确保在打开的"ANSCUST.BAT"文件第3行的位置插入必要的代码,否则将会出现闪退;若插入必要代码,还出现闪退,查看编译log文件,修改程序中错误后重试;若右键以管理员身份运行出现闪退,也可以通过以管理员身份运行命令提示符来运行"ANSCUST.BAT"文件
注:可将编辑修改完成的"ANSCUST.BAT"所在的win64文件夹备份一下,方便后续关联用户子程序时可以反复使用。
三、使用子程序
1. 将链接子程序后生成的ANSYS.exe重命名为ansys.exe
2. 打开Mechanical APDL Product Launcher 2022 R1,选择Customization/Preferences选项,然后Browse win64文件夹下生成的ansys.exe文件,点击Run即可运行ANSYS调用已经关联的子程序来实现特定的功能
四、常见问题(持续更新ing......)
1. 当以管理员身份运行ANS_ADMIN 2022 R1时,出现can't read env(ANSYS_SYSDIR):no such variable while executing的问题(2024.6.28)
答:缺少环境变量,在 Windows 环境变量中,创建一个名为 ANSYS_SYSDIR 并且值为 winx64 的新变量。
2.右键以管理员身份运行ANSCUST.BAT文件是,第一次输入N,然后命令提示符对话框就会闪退的问题(2014.7.7)
答:通过右键以管理员身份运行批处理文件时,默认的工作目录是 C:\WINDOWS\system32
,而不是ANSCUST.BAT批处理文件当前所在的目录,所以当第一次输入“Y”或者“N”时就会发生闪退。
解决的方法:右键编辑,修改ANSCUST.BAT批处理文件,在第三行与第四行之间,添加转换工作目录的代码,确保在运行时切换到ANSCUST.BAT批处理文件所在目录,从而避免因为右键以管理员身份运行时默认工作目录不同而导致出现闪退的问题。
rem 切换到批处理文件所在目录
cd /d %~dp0
注:如果觉得不错,记得打赏一下哦!(o^㉨^o)♪