本節書摘來自異步社群《abaqus gui程式開發指南(python語言)》一書中的第1章,第1.1節,作者: 賈利勇 , 富琛陽子 , 賀高 , 周正光 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
abaqus gui程式開發指南(python語言)
工欲善其事,必先利其器。對于cae分析工程師而言,一個好的軟體平台就是一把利器,基于軟體平台的二次開發就是讓工具更加豐富、便捷和高效。abaqus的二次開發一般分為子程式開發和使用者圖形界面程式(graphical user interface,gui)開發兩類,有很多初學者經常把兩者混淆,分不清兩者的差別。abaqus子程式開發基于fortran語言,使用者可以根據實際需求編寫材料本構關系(umat/vumat)、自定義單元uel以及其他多種子程式(uvarm、dload、usdfld等等)。使用者圖形界面程式開發則是基于python語言,主要是根據需求對原有abaqus/cae功能元件進行擴充,開發專用的前後處理子產品以及gui工具等。本書的内容僅針對基于python語言的gui程式開發。在本章中,将通過一個簡單的插件執行個體介紹abaqus gui程式開發的概念、作用及意義。
熟悉abaqus/cae的人應該知道,當點選plug-ins→toolboxes→examples菜單時,會彈出如圖1.1所示工具條。

這是abaqus/cae内嵌的一個簡單插件程式(plug-in),在上述視窗中輸入零件名、零件寬度、高度以及圓孔半徑之後,點選“ok”,則會自動在abaqus中生成帶孔闆的幾何模型。
該程式僅能實作帶孔闆的幾何建立,本節将以此為基礎,在源程式的基礎上稍加改進,使其可實作帶孔闆有限元分析模型的參數化模組化。圖1.3為改寫之後的插件程式界面示意圖。下面将對該插件程式的構成進行詳細介紹。
該插件程式共由4個檔案組成。
(1)注冊檔案createplatewithhole_plugin.py
(2)圖形界面檔案createplatewithholedb.py
(3)核心執行檔案createplatemodul.py
(4)圖示檔案planewithhole.png
其中圖示檔案如圖1.4所示,圖示檔案即為插件視窗中的示意圖,abaqus支援bmp、 gif、 png、 xpm等多種格式的圖檔,本執行個體中采用的是png格式圖檔,其他3個組成檔案将在後面分别介紹。
https://yqfile.alicdn.com/11fec8c93bd10991f708ce3d284550d22247cdbf.png" >
上述檔案均存放在随書配套資源chapter 1createplatewithhole檔案夾内。将檔案夾createplatewithhole及内部檔案複制到abaqus工作目錄或者安裝目錄下的abaqus_plugins檔案夾下(沒有的話請自行建立該檔案夾),例如:
安裝目錄d:simulia6.10abaqus_pluginscreateplatewithhole
目前工作目錄d:tempabaqus_plugins
重新啟動abaqus/cae主界面,在plug-ins菜單下會出現名為“建立帶孔闆”的功能子菜單,如圖1.5所示。
https://yqfile.alicdn.com/0e26a5d47d48d12e3ac92e3837ae9de05fae97c8.png ">
将圖1.3中所示的參數填寫完整并執行程式,可自動生成帶孔闆拉伸的有限元模型,并可直接将其送出計算,模型如圖1.6所示。
送出計算後,可以得到圖1.7所示的應力雲圖。
https://yqfile.alicdn.com/9f90a4ab75405157c47e6dad0ade1ddb5670f7df.png" >
1.1.1 注冊檔案
本插件程式中的注冊檔案命名為createplatewithhole_plugin.py,其主要作用是注冊插件程式以及其中的關鍵字等。其程式源代碼如下。
提示
以上代碼是本書中出現的第一段代碼,需要提醒讀者注意的是,在python語言中,代碼的縮進是一種文法,python依靠每行代碼的縮進位置來判斷代碼的分塊、區分代碼塊之間的層次關系,錯誤的縮進位置将會導緻程式執行錯誤,讀者應對此予以特别注意,有關python編碼規則的内容請參照本書2.3節内容。
編寫代碼時建議使用ultraedit或者notepad++等文本編輯軟體,本書在編寫過程中采用的是notepad++軟體(免費),該軟體支援python等多種語言的文法着色。
1.1.2 圖形界面檔案
圖形界面檔案的主要作用是定義各類窗體、控件,關聯控件的執行指令及對象。通過定義文本框、單複選按鈕、表格等各類控件,使用者可以友善地将所需參數內建到統一的圖形界面下,形成友好的輸入輸出界面。本插件程式中的圖形界面檔案命名為createplatewithholedb.py,其程式源代碼如下。
1.1.3 核心執行檔案
核心執行檔案是插件程式的核心,其作用是驅動abaqus/cae執行内部指令,完成cae模組化以及資料處理等功能。本插件程式中的核心執行檔案命名為createplatemodul.py,其程式源代碼如下。