
發布
注冊
/
登錄python讀取abaqus矩陣文件的案例
01 用Python讀取和寫入wav聲音文件
01 用python讀取wav聲音文件(使用wave模塊)
import numpy as np #載入numpy庫
import matplotlib.pyplot as plt #載入matplotlib庫的pyplot模塊
import wave #載入wave模塊
f=wave.open(r'E:\abearing\rotor.wav','rb') #打開wav文件
nchannels,sampwidth,framerate,nframes=f.getparams()[:4] #獲取wav文件的聲道數,量化位數,采樣率,總采樣點
f.setpos(10*framerate) #定位采樣點的開始位置,第10秒
s_data=f.readframes(20*framerate) #讀取開始位置以后的采樣點,后20秒
f.close()
w_data=np.fromstring(s_data,dtype=np.short) #將字符串轉化為數值
w_data.shape=(-1,nchannels) #將一維數組轉化為兩列數組
time=np.arange(10*framerate,30*framerate)/framerate #定義時間點
plt.subplot(211) #子圖1
plt.plot(time,w_data[:,0],c='blue')
plt.subplot(212) #子圖2
plt.plot(time,w_data[:,1],c='green')
plt.xlabel('time(second)') #X軸的標簽
02 用python寫入wav聲音文件
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as
展開 定制界面讀取 txt 文件并且繪圖(python)
摘要:本文主要使用tkinter定制GUI,讀取txt文件,使用matplotlib繪圖。
定制界面讀取wav文件并且繪圖(python)
摘要:本文主要使用tkinter定制GUI,使用wave讀取wav文件,使用matplotlib繪圖。
Abaqus二次開發讀取變形后的節點坐標并輸出到txt文件中。讀取模態頻率到txt 文件中。 ¥10
有時候在abaqus中,我們需要知道某一個集合中的節點變形后的坐標。以此為輸入來進行一些研究。這里我用一個自編函數,將節點集合變形后的坐標寫入到一個txt文件中。格式化的寫入文件,方便用此坐標來進行計算研究。
同樣有時候,需要將計算的模態頻率值提取出來。同樣用一個函數將模態頻率提取出來,放進txt文件中,方便后續研究。
讀取的節點結果如下圖所示:

讀取ABAQUS結果文件中的單元應變能并輸出至excel文件的處理腳本 ¥1
腳本內容如題。
ABAQUS批量提交Job與Python讀取ODB結果應力應變數據
該網友的問題,實際上是兩個問題:
問題1是如何批量提交job;
問題2是如何從ODB結果文件中讀取計算結果數據。
因此本文也從兩個方面來進行介紹。
問題1
如何批量提交job——計算任務
批量提交計算任務這個問題實際上是老生常談了,可以用兩種基本的方式實現。
方法1:
在cmd中使用命令行的方式,這種方式也可以保存為bat文件的方式運行,這個方式我并不常用,可參考幫助文檔中的如下部分,很詳細。
方法2
采用python程序進行批量提交
如果你的若干個job已經在job界面建好了,并且打算每算完一個job自動的進行后處理的話,采用python腳本會很方便。
展開 Abaqus二次開發之Python腳本讀取場輸出位移
本次腳本將要指定數據庫文件,并輸出指定位置(set)的位移信息。
編程思路:
寫注釋行,盡量詳細解釋腳本語句,增強可移植性;
導入相應模塊;
本次實例要輸出場輸出位移信息,必須訪問分析步、幀;
創建對象時,分步創建多個變量表示對象(推薦):
創建變量表示odb對象,打開輸出數據庫;
創建變量表示第一個分析步;
創建變量表示第一個分析步的最后一幀;
創建變量表示節點集;(本次案例節點集只有一個節點)
創建變量表示訪問第一個分析步最后一幀的位移U.
操作腳本如下:
結果如下:
Node label: 1000
Displacement in X direction: -7.891572e-34
Displacement in Y direction: -76.45553
Displacement: 76.4555282593
注:本文中涉及的模型文件和完整腳本文件可在Up的公眾號:易木木響叮當,中回復“讀取場輸出數據”自動獲取。
展開 python 源文件 ——“面向對象“的 ABAQUS PYTHON 二次開發體驗 ¥5
本文的 python 源文件是《神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗》(https://www.yqgqt.org.cn/content/post/441445)一文中的源代碼。
原文有源代碼的截圖,如果對 python 熟悉,可以自己照著敲一遍(代碼不多,也有助于理解),如果不熟悉 python 建議在這里付費下載。因為自己敲代碼可能會遇到“縮進空格、標點輸入法、輸入錯誤”的小困擾,導致無法運行代碼,先下載體驗再去理解會更節省時間。
注意:下載源文件之后,要把后綴的“.txt”去掉。(.py 文件不支持上傳)
展開 使用python進行ABAQUS批處理,自動識別文件夾內的待處理inp文件 ¥10
筆者以前使用的是nastran求解器,最近剛開始接觸ABAQUS求解器,如有錯誤之處,希望各位大俠指教!
平時工作中,有時會接手好多項目,或者一個項目需要使用不同的參數進行分析,并且如果涉及非線性的分析會耗時很久,為了有效的利用時間,我決定下班的時間讓工作站自動計算,計算完成后工作站關機,并在此基礎上,構思了使用Python自動識別工作文件夾內的待計算inp文件然后順序提交求解。
程序描述:
獲取當前工作目錄后,創建用于存放結算結果的Result文件夾;
獲取當前文件夾的文件信息列表,并對該信息列表進行遍歷提交;
遍歷操作:如果這個文件是inp文件,則根據該文件提交ABAQUS求解,提取其文件名并將名字中的'.'替換為'-'(該替換是因為在使用CAE GUI提交的時候不允許有'.',使用非ABAQUS前處理生成inp的時候文件名有可能會帶有ABAQUS提交計算時的非法字符);
重新獲取當前文件夾的文件信息,并根據后綴類型進行保存或刪除,'.inp' '.sta' '.odb''.msg'被保存,其余的刪除,如果需要保存別的類型文件,就在類型判斷中添加即可;
工作站自動關機,如果不需要自動關機,那么可以將程序的最后兩行使用#進行注釋化或者刪除。
由于我并未選擇保留py文件,所以注意該程序的備份。
使用方法:
新建一個文件夾,將需要計算的inp文件與用于提交求解的py文件復制進去;
打開ABAQUS command,將當前工作目錄設置為1中建立的文件夾;
使用命令abaqu cae noGUI=python_BatchAbaqus.py進行求解。
展開 abaqus 2017屈曲分析后處理odb轉vtu python文件 ¥100
(1)abaqus 2017屈曲分析后處理odb轉vtu python文件
(2)單元介紹
##############################################后處理函數
# CAX3: 三節點三角形單元,用于二維和三維分析。
# CAX4R: 四節點四邊形單元,用于二維和三維分析。
# C3D8: 八節點六面體單元,用于三維分析。
# C3D8R: 八節點六面體單元,具有簡化的積分方案,用于三維分析。
# C3D6: 六節點楔形單元,用于三維分析。
# C3D4: 四節點四面體單元,用于三維分析。
# S4: 四節點殼單元,用于二維和三維分析。
# S3: 三節點殼單元,用于二維和三維分析。
展開 基于python編程操作ABAQUS輸入文件生成PD3D單元顆粒
在空間中生成剛性顆粒(注意是剛性顆粒)有下列幾種方法:
1.修改關鍵字,構建粒子生成器模型生成隨機分布剛性顆粒
2.使用python語言直接在ABAQUS中生成顆粒,并進行剛體綁定,使其成為剛性顆粒,或者直接生成解析剛體或離散剛體。
方法1生成顆粒的隨機性較好,操作簡單。方法2直接在ABAQUS界面生成顆粒,當所需顆粒數量以萬為計量單位時,在前處理界面時就會卡死,對顯卡要求極高。因此,在僅考慮到這些弊端情況下,就已經使研究人員頭皮發麻,無從下手。
在一些特定應用場合下,比如所需顆粒數量數以萬計,我們只能采用方法1生成顆粒,但我們不僅僅是需要顆粒,還需將這些顆粒與其它模型進行耦合求解計算,這個時候粒子生成器就會有局限性。此外,考慮到顆粒在空間中排布的多樣性,比如最典型的高斯分布,那么粒子生成器很難做到一步到位生成所需分布特征的顆粒。
我們今天介紹的通過python編程操作ABAQUS輸入文件生成PD3D單元顆粒,其可操作性更強,我們可以不采用粒子生成器內部定義的隨機算法生成顆粒,用戶可以根據需求自定義顆粒分布算法,以契合實際工況。此外,可省去粒子生成顆粒的分析步,直接進行工況建模求解計算。
本貼只是個人興趣,只提供思路,不提供源碼,用戶需了解ABAQUS的inp文件的書寫規則、python操作文件語法和生成顆粒的底層邏輯(分布模型)。感興趣的可以私信,提供編寫思路。
下面我們采用這一方法生成直徑2mm、3mm、4mm和5mm的混合顆粒,數量為1000。具體生成結果如下圖所示。
展開 
Abaqus采用Python 處理多個odb文件輸出excel ¥3
Python腳本操作ODB文件進行計算結果數據提取方面具有快速高效的優勢。
因計算要求,需計算大量模型,得到的數量居多的結果文件,目前網上很多代碼均針對單一odb文件的結果進行處理,并未有針對多模型,多數據進行輸出到excel表格的。故針對此需要編寫了python代碼。
Abaqus采用Python腳本提取ODB信息,輸出為VTK的UnstructureGrid文件格式 ¥49.99
在有些場景下,需要將Abaqus計算結果提取出來保存為VTK格式,用于一些可視化和數據處理(VTK在可視化這方面還是強大)。最近寫了兩個腳本,一個是保存VTK非結構網格格式的文件,一個是提取Abaqus計算結果中的網格信息、field信息,將兩個腳本結合起來就可以實現提取ODB中的信息,并保存成為VTK非結構網格文件,當然,還是需要有Abaqus環境。
注意:提取ODB信息的那個腳本目前僅僅是針對我自己提供的那個算例,有能力的朋友完全可以修改一下用于自己的情況。寫VTK非結構網格文件的那個腳本目前應該沒有太大的bug。ODB信息的提取還是需要有Abaqus環境,并不是解析二進制文件。請看清楚再確定是否需要。
之所以做這個,還是希望慢慢完善,從而積累出一定數量的腳本,用于ODB數據的提取。
以下是abaqus中的網格和云圖,和用paraview查看的vtk文件的網格和云圖:
展開 Abaqus-利用python處理有多個instances的odb文件,得到inp模型數據用于前處理
在一些情況下,odb文件中包含有多個instances,instances之間會有節點和單元是重合。很多情況下需要得到該odb模型數據,并將其導入hypermesh進行前處理。如果直接從abaqus中得到odb模型數據的inp輸入導入到hypermesh中,會有重合節點和單元報錯,然而利用python可以解決該問題。
源文件 —— 實戰!!面向對象 ABAQUS PYTHON 二次開發,加筋土擋墻參數化建模工具 ¥20
加筋土擋墻建模,“面向對象”ABAQUS PYTHON 二次開發》(https://www.yqgqt.org.cn/content/post/441859)的源文件。
源文件的使用:
將下載的 .pyc 文件放到類似這樣的路徑下 “D:\SIMULIA\CAE\2019\win_b64\code\python2.7\lib”。使用說明參考上述《實戰》一文,視頻演示如下。
源文件版本說明:
在 CAE 命令行導入 geogrid ,并實例化之后,輸入以下命令,可以看到建模工具的版本信息。
# 導入 geogrid
from geogrid import *
# 實例化
g = geogrid( )
# 查看版本信息
g.version
軟件更新、維護:
付費下載后,請在評論區留下郵箱,軟件更新或維護之后會通過郵件方式發送新版本。
加入qq群(280631123),對軟件使用的問題可以在群里交流。
加筋土擋墻參數化建模工具的說明:
(內容待續)
展開