C# 调用Ansys APDL编写的命令(带参和不带参宏文件调用)
发布日期:2021-05-28 17:02:40 浏览次数:11 分类:技术文章

本文共 3587 字,大约阅读时间需要 11 分钟。

C# 调用Ansys APDL编写的命令(包括带参和不带参宏文件调用)

前言

APDL的全称是ANSYS Parametric Design Language,也被叫做ANSYS参数化设计语言。APDL不仅是优化设计和自适应网格划分等ANSYS经典特性的实现基础,也为日常分析提供了便利。APDL就是对ANSYS进行二次开发的语言,但是,APDL命令仅仅适用于ANSYS软件本身,不具有外延性。那么如何将APDL命令和常用的开发语言(例如C#)相结合,进而将APDL命令与其他工程相耦合,开发出定制的软件呢?本文介绍如何利用C#调用APDL命令文件。

一、C#执行APDL命令文件

1、APDL命令文件(将数组中的数据写出到data1.txt文件中)如下

在这里插入图片描述

finish/clear/prep7*create,dataWrite,mac !创建宏文件*cfopen,data1,txt !创建写出文件!自定义数组并填充值*dim,writeData,,20,5*do,i,1,20	*do,j,1,5		writeData(i,j)=5*(i-j)+j	*enddo*enddo*vwrite,writeData(1,1),writeData(1,2),writeData(1,3),writeData(1,4),writeData(1,5)(5f8.2) !定义数据格式(每行写5个数据,每个数据共有8位(包括小数点),其中小数点后有2位)*cfclose*enddatawrite !运行宏文件

2、C#执行上面的APDL命令文件

if (APDLtoCSharp.RunAPDLFile(@"F:\FluentLearn\APDL\CODE\数据写出.txt ",                                      @"F:\FluentLearn\APDL\CODE\test\test.out ",                                      @"F:\FluentLearn\APDL\WorkDir"))            {                MessageBox.Show("命令执行完成!","提示");            }

3、执行得到data1.txt数据如下

在这里插入图片描述

4、RunAPDLFile方法代码

///     /// APDL转到C#执行类    ///     public class APDLtoCSharp    {        ///         /// 执行APDL命令文件        ///         /// 待执行的APDL命令文件路径(绝对路径)        /// APDL执行过程的输出文件路径名(路径+文件名.txt)        /// 工作目录路径(存放宏文件等)        /// ansys可执行文件路径(默认为C:\Program Files\ANSYS Inc\v191\ansys\bin\winx64\ANSYS.exe)        /// 工作名(默认为file)        /// 
public static bool RunAPDLFile(string apdlFilePath, string outFilePathName, string workingDirectory, string ansysPath = @"C:\Program Files\ANSYS Inc\v191\ansys\bin\winx64\ANSYS191.exe", string jobName = "file") { bool result = false; try { ProcessStartInfo startinfo = new ProcessStartInfo(); string commond = String.Empty; commond += "-b -p "; commond += "-j " + jobName; commond += " -np -db -m"; commond += " -i " + apdlFilePath; commond += " -o " + outFilePathName; startinfo.Arguments = commond; startinfo.WindowStyle = ProcessWindowStyle.Normal; startinfo.FileName = ansysPath; startinfo.WorkingDirectory = workingDirectory; Process ProAnsys = Process.Start(startinfo); ProAnsys.WaitForExit(); ProAnsys.Close(); result = true; } catch(Exception ex) { MessageBox.Show("RunAPDLFile函数执行失败!\n "+ex.Message.ToString(),"提示"); } return result; } }

二、C#执行APDL带参宏文件

1、如带参宏文件"dataWrite.mac"命令如下

*cfopen,data1,txt !创建写出文件        !自定义数组并填充值*dim,writeData,,20,5*do,i,1,20	*do,j,1,5		writeData(i,j)=arg1*(i-j)+j	*enddo*enddo        *vwrite,writeData(1,1),writeData(1,2),writeData(1,3),writeData(1,4),writeData(1,5)(5f8.2) !定义数据格式(每行写5个数据,每个数据共有8位(包括小数点),其中小数点后有2位)*cfclose

2、正常在ANSYS中调用上面宏文件的命令如下

dataWrite,5 !传入参数为5,调用dataWrite宏文件

3、因此,我们可以利用C#首先创建一个文件,文件中的内容为调用带参宏文件的命令,然后,再利用RunAPDLFile方法调用刚刚C#创建的文件,示例代码如下

int arg1=5;            using (StreamWriter sw = new StreamWriter(@"F:\FluentLearn\APDL\CODE\macroFile.txt"))            {                sw.WriteLineAsync("dataWrite,"+arg1.ToString());  //创建内容为执行APDL带参宏文件命令的文件            }            if (APDLtoCSharp.RunAPDLFile(@"F:\FluentLearn\APDL\CODE\macroFile.txt",                                      @"F:\FluentLearn\APDL\CODE\test\test.out ",                                      @"F:\FluentLearn\APDL\WorkDir"))  //执行上一步创建的APDL文件            {                MessageBox.Show("命令执行完成!","提示");            }

注意,上述方法执行带参宏文件,必须保证宏文件存放在指定的工作目录文件夹下

转载地址:https://blog.csdn.net/qq_34720818/article/details/107942719 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:浮点数(小数)在计算机中如何用二进制存储?
下一篇:详解计算机内部存储数据的形式---二进制数

发表评论

最新留言

很好
[***.229.124.182]2024年02月29日 15时01分16秒