基于Abaqus的VB計算程序開發

基于AbaqusVB計算程序開發

1 概述

Python腳本文件可以用來編寫Abaqus執行有限元分析過程,而VB則可以生成Python腳本文件,結合兩者即可實現Abaqus計算程序的開發。

本次以一個平面開孔模型為例,如圖1所示,設計一個程序能夠通過程序界面設置相關參數并執行計算。

12.1.png

1 平面開孔模型

2 程序界面

參數化的參數包括矩形長度w、矩形寬度h、圓的半徑r、材料的彈性模量E、泊松比以及壓力載荷p,并設置三個按鈕:

代碼轉換:將Python文件編譯成可以直接嵌入在VB里面;

生成腳本:利用VB生成Abaqus可以執行的腳本文件;

開始計算:啟動Abaqus,調用生成的腳本文件進行有限元分析。

同時還添加了一個PictureBox控件,用于顯示圖片,方便參數輸入。

最終得到的程序界面如圖2所示,給所有的Textbox命名,方便后臺代碼調用,并設置默認值。

12.2.png

2 程序界面

3 功能代碼

1)代碼轉換

雙擊代碼轉換按鈕,進入代碼編輯頁面,該段代碼需要打開已經存在的input_1.txt文件,并且逐行讀取里面的內容,然后在每行字符串添加一些字符,輸出到output_1.txt文件中。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim input As Integer

        Dim output As Integer

        input = 1

        output = 2

        FileOpen(input, 工作目錄.Text & "\input_1.txt", OpenMode.Input)

        FileOpen(output, 工作目錄.Text & "\output_1.txt", OpenMode.Output)

        Dim data As String

        data = ""

        Do While Not EOF(1)

            data = LineInput(input)

            PrintLine(output, "PrintLine (input,""" & data & """)")

            'PrintLine(output, "f.write(""" & data & "\n" & """)")

        Loop

        FileClose(1)

        FileClose(2)

    End Sub

最終實現的功能如圖3所示。

12.3.png

3 代碼轉換

2)生成腳本

第一步操作中得到轉換后的代碼直接嵌入VB里面,并且將需要界面輸入的參數進行替換,替換如下:

        PrintLine(input, "ww=" & 矩形長度.Text)

        PrintLine(input, "hh=" & 矩形寬度.Text)

        PrintLine(input, "rr=" & 圓的半徑.Text)

        PrintLine(input, "EE=" & 彈性模量.Text)

        PrintLine(input, "bb=" & 泊松比.Text)

    PrintLine(input, "pp=" & 壓力.Text)

同時,在代碼里出現的任何以上參數均采用變量名代替,比如ww。

生成腳本文件同樣需要打開一個py格式的文件,將嵌入進來的代碼再輸出到py文件中。

最終實現的功能如圖4所示,生成的py文件:

12.4.png

4 Py腳本文件

3)開始計算

啟動Abaqus調用Python腳本文件在VB里面比較好的實現方法是利用Abaqus Command命令提示符窗口。因此,在VB里面只需要通過shell函數啟動計算機里面的Abaqus Command并且在窗口輸入調用語句即可。

    Private Sub 開始計算_Click(sender As Object, e As EventArgs) Handles 開始計算.Click

        Dim exe As String

        exe = "C:\Windows\SysWOW64\cmd.exe /c abaqus cae nogui=" & 工作目錄.Text & "\script.py"    '文件夾不能有空格

        Shell(exe, vbNormalFocus)

    End Sub

定義了一個字符串變量,獲取Abaqus Command的位置,并且輸入語句:

abaqus cae nogui=script.py.

這里有兩個地方需要注意:1)腳本文件所在的工作目錄不許存在空格,否則無法調用;2)如果Abaqus Command的位置和腳本文件位置不在一起,需要指定腳本文件的具體位置。


 

 

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2
1
2