• ANSYS-MFC生成APDL


    1. 简介

    对于ANSYS-MFC二次开发,两者之间的关系非常明确,从界面中读取参数并转换成APDL语言,然后调用批处理操作。

    对于简单的程序设计,我们可以直接从界面中获取到参数,然后生成APDL;
    而对于复杂的界面,可以将其参数保存到数据文件中,最简单的可以使用Access数据库或者xml格式的数据文件。对于Access数据库,需要在程序使用的时候对其进行定义,不利于后续程序的拓展;而xml格式的数据文件也可以向数据库文件一样使用,并且其操作速度更快,且利于功能的拓展和管理。关于xml的使用,请见链接

    2. APDL生成

    对于经常使用APDL的人来说,可以直接进行APDL程序的编程,而对于初学者来说,此种方法门槛太高,不利于快速入门,因为我们采用比较笨但是非常使用的方法。
    首先需要用户对APDL有一点简单的理解;在进行操作ANSYS过程中,所有的操作都会被记录下来,可以点击【Main Menu】--【Session Editor】,在弹出的界面中我们可以看到操作后生成的APDL,从而在其中查找出所需要的语句。
    在操作过程中,可以使用定义变量或者数据的方法来进行操作,这样生成的APDL需要修改变量即可;而如果直接到相应的位置去修改APDL,则需要花费大量的时间来查找其语句的具体位置。
    例如,坐标的位置定义为变量P1,P2,P3,生成的APDL语句具体如下:

    FINISH
    /CLEAR
    /PREP7
    
    !定义力为变量
    *SET,P1,0
    *SET,P2,1
    *SET,P3,2
    
    !建立点
    K,1,0,P1,0,
    K,2,0,P2,0,
    K,3,0,P3,0,
    
    !连接成直线
    LSTR,       1,       2
    LSTR,       2,       3
    

    设计界面

    生成APDL程序

    void APDLCreate::OnBnClickedButton2()
    {
    	UpdateData(TRUE);//更新控件的值
    	CString WorkPath = _T("file.dat");//定义工作路径
    
    	CStdioFile Writefile;
    	if (!Writefile.Open(WorkPath,CFile::modeWrite|CFile::modeCreate))
    	{
    		return;
    	}	
    
    	//清楚上个工程的数据
    	Writefile.WriteString(_T("FINISH 
    "));
    	Writefile.WriteString(_T("/CLEAR 
    "));
    	Writefile.WriteString(_T("/PREP7 
    
    "));
    
    	//定义变量
    	Writefile.WriteString(_T("*SET,P1,") + P1 +_T("
    "));
    	Writefile.WriteString(_T("*SET,P2,") + P2 +_T("
    "));
    	Writefile.WriteString(_T("*SET,P3,") + P3 +_T("
    
    "));
    
    	//生成点
    	Writefile.WriteString(_T("K,1,0,P1,0,
    "));
    	Writefile.WriteString(_T("K,2,0,P2,0,
    "));
    	Writefile.WriteString(_T("K,3,0,P3,0,
    
    "));
    
    	//将点连接成线
    	Writefile.WriteString(_T("LSTR,1,2 
    "));
    	Writefile.WriteString(_T("LSTR,2,3
    "));
    
    	Writefile.Close();
    
    	AfxMessageBox(_T("APDL生成成功"));
    }
    

    生成的直线如下图所示

    3. 调用ANSYS批处理

    建议将APDL生成和调用APDL分开处理,这样可以在计算前检查APDL然后再进行计算。
    批处理的生成请参考链接

  • 相关阅读:
    QT实现软件重启
    Qt 延时
    gcc 创建库及使用
    verilog 奇数分频设计
    内核中的 likely() 与 unlikely()
    TFT LCD 参数详解
    手动安装m4, autoconf, automake, libtool
    [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
    Origin9.1如何绘制风向玫瑰图(Binned Data)?
    Origin9.1如何使用原始数据(Raw Data)绘制风向玫瑰图
  • 原文地址:https://www.cnblogs.com/gaozihan/p/10851261.html
Copyright © 2020-2023  润新知