
發(fā)布
注冊
/
登錄abaqus腳本的案例
Abaqus運行Python腳本的方法實操
圖4 File下拉菜單運行腳本文件
4從啟動屏幕運行腳本
此種方式是在剛啟動Abaqus/CAE界面時運行腳本文件,如圖5所示。
圖5從啟動屏幕運行腳本
5 Abaqus command命令行窗口執(zhí)行
此種方式不用先行打開Abaqus/CAE 界面,而直接打開Abaqus Command即可。如圖6所示,在Abaqus Command 窗口輸入命令:
abaqus cae script= calcu_10.py
如圖6所示,即可自行運行腳本文件calcu_10.py,同時還打開Abaqus/CAE界面,如果不打開Abaqus/CAE程序界面,則輸入:
Abaqus cae nogui= calcu_10.py
此時運行腳本文件時不打開Abaqus/CAE界面。
這里注意一個問題:腳本文件的位置應該和Abaqus Command的指示位置一致,如果不一致需要指定腳本文件的位置,也即在前面用cd命令打開文件夾:如圖7所示:
cd E:\CAE Tech\10
圖6 Abaqus command命令行窗口執(zhí)行
圖7 指定腳本文件位置
6從命令行接口運行腳本
這種方式和第一種類似,同樣在Abaqus/CAE的下面命令行窗口輸入,不過不同的是直接用函數(shù)execfile(‘myscript.py’),直接執(zhí)行整個腳本文件,類似于將腳本文件當做一個宏文件的處理方式。
展開 解放雙手的Abaqus腳本,助你快速生成隨機纖維 ¥199
解放雙手的Abaqus腳本,助你快速生成隨機纖維!
使用本腳本,可以快速生成內部具有隨機纖維的三維梁!
視頻下方附有腳本,可自行下載參考學習使用。
abaqus 腳本捕獲幾何元素的交、并、差運算 ¥20
abaqus 腳本捕獲幾何元素的交、并、差運算
abaqus自帶了捕獲幾何元素的方法,可以在python腳本中捕獲abaqus幾何體的“點、線、面、體”對象或網(wǎng)格模型的各種元素,這在技術鄰文章里有詳細的介紹(https://www.yqgqt.org.cn/content/post/331773)。但是,abaqus不支持對捕獲的幾何元素序列進行集合運算,面對一些復雜的選擇集只能用序列連接的方法來實現(xiàn)。
本文借助python腳本實現(xiàn)了abaqus腳本捕獲幾何元素的交、并、差運算。使用方便,效果好!下面介紹python腳本的實現(xiàn)。
1、“幾何序列”的限制
“幾何序列”是abaqus/cae中的一種數(shù)據(jù)類型,其本質是python列表?!敖?、并、差運算”是python集合數(shù)據(jù)類型自帶的集合運算功能。在python腳本中,一個可哈希[1]序列能夠簡單快速的轉化為集合,實現(xiàn)元素的去重目標,并且進行交、并、差運算后,再轉化成序列。以此實現(xiàn)python序列的交、并、差運算。
雖然abaqus幾何序列本質是python列表,但經過封裝后被限制了“修改”操作,加之幾何序列的元素沒有定義哈希運算,所以幾何序列不能轉化為集合直接實現(xiàn)“交、并、差運算”。
2、繞過限制,迂回實現(xiàn)目標
實現(xiàn)目標的障礙擺在眼前,要么突破abaqus的源碼,放開幾何序列的修改限制,為幾何序列的元素定義哈希運算。要么從abaqus的框架中跳出來,用python的原生功能來實現(xiàn)目標。權衡之下,前一種思路有殺雞用牛刀的感覺,后面一種思路合理且難度可控。決定跳出abaqus框架,繞過幾何序列的種種限制,迂回實現(xiàn)目標。
第一步,跳出abaqus框架,繞過幾何序列的限制。這里用到了“遍歷”幾何序列獲取元素的特性。
展開 詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(上)
剛才說了,關鍵字在注冊腳本創(chuàng)建,而應用于對話框腳本中,我們分開討論。
注冊腳本:
創(chuàng)建一個字符串類型的關鍵字
第23行,需要以AFXGuiCommand創(chuàng)建一個GUI命令,以它作為關鍵字的第一個參數(shù)。這個參數(shù)可以給所有關鍵字共用。
第26行,構造方法AFXStringKeyword(),創(chuàng)建關鍵字對象,賦值給self.keyword01Kw
對話框腳本:
字符串類型關鍵字使用于特定的控件中,比如文本框控件:
參數(shù)tgt的賦值,即為剛才創(chuàng)建的關鍵字對象。因為處于不同的腳本,需要用form來調用該關鍵字。
由于關鍵字的類型是字符串,所以sel的賦值為0,這是固定格式。
如此一來,文本框控件創(chuàng)建好了。文本框中輸入的字符串(Part-1),會被賦值給參數(shù) keyword01,傳遞給內核腳本。
參數(shù)tgt和sel通常有三種設置方式,在《Abaqus插件對話框二次開發(fā),參數(shù)tgt和sel的設置方法》帖子中有詳細闡述,這里使用的是第一種方式。
在下一貼中,我們繼續(xù)討論8種關鍵字的具體創(chuàng)建方法,以及用于何種控件:
詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(下)
Abaqus GUI二次開發(fā)三部曲:
Abaqus 主窗口GUI的二次開發(fā)
Abaqus插件程序GUI的二次開發(fā) 初、中級篇
Abaqus插件程序GUI的二次開發(fā) 高級篇
展開 
Abaqus利用腳本命令進行復制和刪除
Abaqus利用腳本命令進行復制和刪除
Abaqus的大部分對象都能通過復制的方法來進行復制,復制對象的方法稱為copy constructors,一個copy constructors的格式如下:
ObjectName(name='name', objectToCopy=objectToBeCopied)
如下示例:
firstBolt = mdb.models['Metric'].Part(
name='boltPattern', dimensionality=THREE_D,
type=DEFORMABLE_BODY)
secondBolt = mdb.models['Metric'].Part(
name='newBoltPattern', objectToCopy=firstBolt)
復制創(chuàng)建的firstBolt,并命名為newBoltPattern。同樣的還可以在不同的models之間進行復制,如下:
firstBolt = mdb.models['Metric'].Part(
name='boltPattern', dimensionality=THREE_D,
type=DEFORMABLE_BODY)
secondBolt = mdb.models['SAE'].Part(
name='boltPattern', objectToCopy=firstBolt)
如下示例是復制一個section。
展開 ABAQUS二次開發(fā)簡介
ABAQUStigong了兩種二次開發(fā)的接口,一是子程序接口(user subroutine),一種是腳本接口(Abaqus scripting interface),Abaqus的腳本語言是在python語言的基礎上進行的定制開發(fā),它擴充了python的對象模型和數(shù)據(jù)類型,使Abaqus腳本接口的功能更加強大,一般來說,Abaqus腳本接口可以實現(xiàn)以下功能
① 創(chuàng)建、修改ABAQUS模型中的屬性,如部件、材料、荷載和分析步等
② 創(chuàng)建、修改和提交分析作業(yè)
③ 讀取和寫入ABAQUS輸出數(shù)據(jù)文件
④ 查看分析結果
Abaqus中python腳本的通信關系如下圖所示
從圖中可以看出,ABAQUS可以通過三種方式運行腳本文件
(1) GUI。Abaqus在采用GUI進行建模的同時,會生成一個rpy格式的腳本文件。當然,也可以通過macro管理器錄制一段宏命令
(2) 命令行。在abaqus CAE界面底端的命令行鍵入python命令,點擊回車后即可自動運行
(3) 編輯腳本文件。
展開 Abaqus利用腳本讀取結果并創(chuàng)建新的輸出場
Abaqus利用腳本讀取結果并創(chuàng)建新的輸出場
長安CAE
Abaqus的后處理有時候采用Python腳本會比較方便,此次實例通過腳本語言讀取已經存在的Odb結果文件,并且通過程序實現(xiàn)不同載荷步下的結果場數(shù)據(jù)運算,以得到新的場數(shù)據(jù),并顯示其云圖。
詳解Abaqus插件腳本中的關鍵字(AFXKeyword)(下)
Abaqus GUI二次開發(fā)三部曲:
Abaqus 主窗口GUI的二次開發(fā)
Abaqus插件程序GUI的二次開發(fā) 初、中級篇
Abaqus插件程序GUI的二次開發(fā) 高級篇
Abaqus的編寫腳本時巧用Tab鍵
Abaqus的編寫腳本時巧用Tab鍵
在Abaqus的命令行窗口寫Python腳本語言時,可以利用Tab鍵,自行尋找可以輸入的對象。
示例:
在命令行輸入:from part import THR[Tab]
后面的[Tab]表示直接點擊鍵盤上的Tab按鍵。
會顯示from part import THREE_D或者from part import THREED_DATA
可以通過Tab鍵選擇輸入哪一個,其作用很明顯,就是告訴你后面有哪些對象可以選擇。
再比如:
mdb.models['Model-1'].Part([Tab]
mdb.models['Model-1'].Part(name=
p=myOdb.parts[[Tab]
p=myOdb.parts['Part-1']
abaqus python
>>>from odbAccess import *
>>>myOdb=openOdb('viewer_tutorial.odb')
>>>p=myOdb.parts[[Tab]
>>>p=myOdb.parts['Part-1']
展開 基于Pycharm 的Abaqus ——python腳本編寫 ¥18
注意:此py文件適合 需要經常使用python腳本進行abaqus相關操作的用戶
對于Abaqus相對熟悉一些的使用者來說,python腳本真的是個非常方便的工具,可以定義函數(shù)修改特定變量,大大簡化了某些機械重復類的工作,還能將對應的GUI操作用python代碼呈現(xiàn)出來,更容易從邏輯上理清整個分析流程。通常比較推薦的做法是打開工作目錄下的abaqus.rpy文件,用戶在GUI上的每一步操作都會以python代碼的形式實時添加記錄到rpy文件中。確實很方便啊,每一步操作的代碼都能對應清晰,類似于ANSYS中的log文件。但是也存在一些問題……
問題:很容易將函數(shù)名或者是形參變量名編輯錯,也不會有參數(shù)類型的提示,代碼也沒有高亮顯示,復制代碼將后綴改成py后,觀感也不太舒適,
需求:
1,語法高亮顯示,這是最基本的
2,Abaqus對象的內部的屬性方法名聯(lián)想,自動補全,(訪問多級子對象更快捷)
項目Github地址:https://github.com/liangzulin/abaqus_pycharm 本py文件在其基礎上補充的,主要是認為其類與對象的太少,使用類的嵌套也不利于重用,所以把對象的構造放在父類,作為父類的一個方法,拆開構造
注:abaqus.py代碼只有1000行多一點,但已能滿足大部分腳本編輯所需的代碼補全,本人親測《ABAQUS PYTHON二次開發(fā)攻略》此書上代碼基本可自行敲出,后續(xù)還會補全……(因py無法上傳,只需將txt后綴名改為py即可使用)
展開 Abaqus使用Python腳本自動保存History Output曲線圖
在Abaqus中采用Python腳本可以實現(xiàn)對odb文件中存在的任意History Output的曲線圖進行截圖并保存到本地(保存的截圖和示例代碼截圖見文末),這個方法經過改造完全可以用于批量的截圖保存功能,比如遍歷很多odb文件保存ALLAE的曲線圖。
另外代碼中函數(shù)
session.writeXYReport()
是Abaqus內置的直接將曲線對應的XYData數(shù)據(jù)保存到本地文件中的方法。
具體過程為:
在session中打開odb文件,sessionodb = session.odbs[odb_file];
從odb中的HistoryOutput構造XYData;
利用XYData構造XYPlot,進而將這個XYPlot展示到Viewport中;
在這個過程中需要注意,打開odb必須在session模塊中,如果直接使用
myodb = openOdb(path = odbfile)
或者
myodb = visualization.openOdb(path=odb_file)
就會導致構造XYData失敗,從而影響后續(xù)的代碼出現(xiàn)類型問題。
展開 
Abaqus python腳本開發(fā) 第三章 各類指令的方法對象變量 (3) ¥10
Exceptions
AbaqusException.
Script:
歡迎收藏轉發(fā),感謝!
Abaqus Python腳本開發(fā)持續(xù)更新中
微信公眾號:山石結構
Bilibili:happyleo7
Abaqus python腳本開發(fā) 第三章 各類指令的方法對象變量
Abaqus Python腳本開發(fā)持續(xù)更新中
微信公眾號:山石結構
Bilibili:happyleo7
基于ABAQUS平臺的截面特性計算PYTHON腳本 ¥20
帖子內容是基于ABAQUS平臺編寫PYTHON腳本,以計算所需的截面特性值。
具體思路如下:
(1)將繪制的截面形狀以IGS格式(也可以是其他能導入ABAQUS的格式)導入ABAQUS中;
(2)以導入的截面形狀為草圖,在PART中建立殼部件;
(3)裝配并劃分網(wǎng)格,以離散截面為若干三角形單元(劃分三角形單元的目的是適應復雜截面的網(wǎng)格劃分);
(4)讀取部件單元節(jié)點坐標;
(5)調用截面特性計算函數(shù),以計算形心坐標;
(6)根據(jù)所計算的形心坐標移動部件,使得坐標原點位于截面幾何形心;
(6)調用截面特性計算函數(shù),以計算所需截面特性。
程序實現(xiàn)及各步驟解釋如下圖所示。
完整代碼如下:
展開 Abaqus python腳本開發(fā) 第三章 各類指令的方法對象變量 (2)
Abaqus Python腳本開發(fā)持續(xù)更新中
微信公眾號:山石結構
Bilibili:happyleo7