
發布
注冊
/
登錄Abaqus旋轉對象的案例
Abaqus python腳本開發 第三章 各類指令的方法對象變量
該部分主要介紹以Python scripting guidance為基礎的對象方法變量,在一些較難理解的模塊部分提供代碼示例,供讀者參考。
3.1 Mdb command
3.1.1 Mdb object
Mdb對象是高級Abaqus模型數據庫,其中儲存了模型和分析控制信息。
3.1.1.1 Mdb()
建立一個空的Mdb對象
可選變量
pathName
默認保存為.cae文件
返回值
Mdb對象
3.1.1.2 importDxf()
從AutoCAD .dxf 文件建立一個ConstraintedSketch對象
需要的參數
fileName
返回值
Mdb對象
importDxf(fileName=‘’)
3.1.1.3 openMdb()
打開現有的model databse file
必要參數:
pathName
一段用來指定打開路徑的字符串, 如果不提供擴展名的話,Abaqus/CAE會打開帶 .cae后綴的文件。
展開 鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發,“面向對象”該如何理解 ?
下面是 python源代碼實際運行的截圖:
所以,“對象”作為“實實在在的例子”,它的“實實在在”就在于把反映共同特征的信息(變量、函數)聚攏在一起,放到“class”(類型)里面。這種方式有個專業的術語來表達:封裝。放到“class”里面的變量稱為“成員變量”或“屬性”,放到“class”里面的函數稱為“成員函數”或“方法”。
ABAQUS/CAE 里面的“對象”
其實 ABAQUS/CAE 里面的“對象”十分顯而易見。
界面左側的樹形菜單(下圖)就是一個具象的“對象”,它們是自下而上一級一級被包含的,其實就是類似上面的例子一樣被“封裝”了起來。每次在界面上建模就是往這個“對象里面“填進”各種數值、信息,而python 二次開發就是直接用代碼的方式來完成往“對象”里面“填進”各種數值、信息的過程。
展開 鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發,“面向對象”的用武之地
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發,“面向對象”的用武之地
在《神乎其技!“面向對象“的 ABAQUS PYTHON 二次開發體驗》中(https://www.yqgqt.org.cn/content/post/441445),“封裝”立方體的示例實際上是對 abaqus/cae模型操作方面的Mdb接口進行優化,起到提高編碼效率、提高代碼復用率、降低二次開發難度的作用。
那“面向對象”在 Abaqus/cae python 二次開發中,有哪些用武之地?簡要來說,有以下兩大方面。
一、優化二次開發接口
Abaqus/cae python 二次開發的接口主要在三個方面,(1)模型操作,Mdb接口;(2)結果數據接口,Odb;(3)可視化接口,Session。這些接口擁有大量“成員變量”和“成員函數”,從“面向對象”二次開發“封裝”的角度來看,這些接口在二次開發“封裝”的最內層。開發者可以根據自己二次開發任務的特點進行“封裝”,還可以根據需要把最原始的接口跟“封裝”過的接口再次“封裝”。
二、模塊化開發流程
開發任務千差萬別,但流程具有一致性。只要有能夠抽取出“共性”的地方,就會有“面向對象”技術發揮的空間。實際上,“開發流程的模塊化”相比于“優化二次開發接口”更具神奇效果。
預 告
希望掌握“面向對象”技術,提升 Abaqus/cae python 二次開發技能的朋友,請“關注” huoli 技術鄰賬號。相關的能力提升課程即將推出!
展開 xray內核插件——透視abaqusCAE二次開發的python對象 ¥100
xray插件
xray是一款對新手很有幫助的abaqusCAE內核插件,其功能是把任意python對象的屬性(字段)、方法(函數)以清單的形式打印在abaqusCAE命令行窗口,查看xray清單的效果堪比查閱一次官方文檔。
以透視model對象為例
xray內核插件只有xray()一個函數,導入xray()函數就能“透視對象”。
透視model對象(mdb.models[‘Model-1’])的清單如下圖,完整清單見附件“model.txt”。
model.txt
上圖中<type 'AbaqusMethod'>分隔成了兩部分,上部分都是小寫字母開頭,下部分都是大寫字母開頭。
在abaqusCAE的python開發接口里面,小寫字母開頭的函數會返回一個對象,大寫字母開頭會創建一個新的對象,這個重要的“規律”在xray的清單中也做了妥妥的考慮。查看清單的效果堪比查閱一次官方文檔。
透視函數,能直接看到需要形參信息
這里以 mdb.Model( )函數為例,圖中紅線包含了需要傳入的參數。
abaqusCAE啟動時自動加載xray插件
為了使用方便,可以通過簡單的配置將xray插件設置為自動加載,實現自動加載后,xray()成為了內建函數。
關于自動加載內核插件的配置方法,已經發布了免費的視頻,可以私信我獲取視頻鏈接。
展開 
getMask()討論:Abaqus Part對象的成員變量常用函數 ¥1
但是當開始寫程序的時候才發現一個巨大的坑點:Part對象的Skin函數不接受列表類型的參數或者數組類型的參數,它只接受ABAQUS特定的幾何數組類型或者序列類型,按理說list類型屬于序列類型,但是該函數并不接受。如果通過getSequenceFromMask生成可用faces,mask究竟如何獲得又是一個問題。
mask為什么難以獲得呢?因為getMask()函數是FaceArray對象的成員函數,而該對象的建立是通過part對象建立的(p.faces),它會生成所有faces的合集(比如[0,1,2,3,4,5,6]),而我要進行skin的cell只包含這些faces中的一部分,并且編號是隨機的不可預測的,但是組成該cell的face編號可以通過c.getFaces()((2,3.4,5))。按照我最初的想法,我有了這些面的ID號,把它們從p.faces中讀取出來重新組合就可以了,但是組合完成的類型是list,Skin函數不接受它作為參數。我嘗試了多種方法均不能將最終的結果轉化成Skin可以使用的格式。并且由于組合后的不是abaqus的幾何數組類型,所以它并沒有getMask()方法,也就無法通過該方法獲得可以使用的mask。
無奈之下只好使用getSequenceFromMask函數,這就要解決一個麻煩的問題:getSequenceFromMask的mask值究竟怎么來?目前看來唯一的辦法就是解密getMask()函數。(未知原因,公司網絡連接不了ABAQUS幫助文件。)
展開 Abaqus python腳本開發 第三章 各類指令的方法對象變量 (2)
Abaqus Python腳本開發持續更新中
微信公眾號:山石結構
Bilibili:happyleo7
“面向對象“的 ABAQUS PYTHON 二次開發體驗
“面向對象”的 ABAQUS PYTHON 二次開發體驗
昨天,從“面向對象”的角度帶大家鳥瞰 ABAQUS PYTHON 二次開發。采用的例子簡單,可能大家領會不到“面向對象編程”的魔力。(“鳥瞰”一文請看https://www.yqgqt.org.cn/content/post/441360)
今天這篇文字將緊密結合 ABAQUS/CAE 的腳本運行功能,帶領大家一瞥“面向對象編程”的高效和神奇。
長長的命令
接觸過 ABAQUS PYTHON 二次開發的朋友,應該對下面這種長長的命令有印象。
mdb.models['Model-1'].parts['Part-1].edges[1]
# 代碼的含義是:選取Model-1模型中,Part-1部件的序號為1的輪廓線。
在 python 腳本中,可以用 highlight( )、unhighlight( ) 這兩個函數將選取的線、面,進行高亮(取消高亮)顯示。完整的代碼如下:
# 高亮顯示序號為1的邊
highlight(mdb.models['Model-1'].parts['Part-1].edges[1])
# 取消高亮顯示序號為1的邊
unhighlight(mdb.models['Model-1'].parts['Part-1].edges[1])
可見代碼變得更長了,編寫腳本的效率低了,閱讀腳本也不夠清晰明了。如果采用“面向對象編程”的“封裝”技術,情形就會截然不同。
“封裝”立方體
用一個“class”(類型)把選取立方體“線”、“面”的操作“封裝”起來。python代碼如下:
(根據 ABAQUS/CAE 命名的特點,在代碼中為模型名稱、部件名稱定義了不傳參數進去時候的默認值)
把這段代碼保存在名為“script.py“的文本文件中。
展開 python 源文件 ——“面向對象“的 ABAQUS PYTHON 二次開發體驗 ¥5
“面向對象“的 ABAQUS PYTHON 二次開發體驗》(https://www.yqgqt.org.cn/content/post/441445)一文中的源代碼。
原文有源代碼的截圖,如果對 python 熟悉,可以自己照著敲一遍(代碼不多,也有助于理解),如果不熟悉 python 建議在這里付費下載。因為自己敲代碼可能會遇到“縮進空格、標點輸入法、輸入錯誤”的小困擾,導致無法運行代碼,先下載體驗再去理解會更節省時間。
注意:下載源文件之后,要把后綴的“.txt”去掉。(.py 文件不支持上傳)
Abaqus python腳本開發 第三章 各類指令的方法對象變量 (3) ¥10
Exceptions
AbaqusException.
Script:
歡迎收藏轉發,感謝!
Abaqus Python腳本開發持續更新中
微信公眾號:山石結構
Bilibili:happyleo7
加筋土擋墻建模,“面向對象”ABAQUS PYTHON 二次開發
加筋土擋墻建模,“面向對象”ABAQUS PYTHON 二次開發
因為滿鋪包裹式加筋土的 建模參數明確、形狀較簡單、同時完全手工進行各種情況的 反復建模很繁瑣,所以滿鋪包裹式加筋土的建模過程,非常適合作為“面向對象”ABAQUS PYTHON 二次開發實戰的例子。
下面為大家展示本次“戰果”。
“面向對象”,一脈相承
本文與前面《鳥瞰》、《神乎》兩篇帖子是一脈相承的,如果對“面向對象編程”感到陌生,請回頭先瀏覽一下前文(https://www.yqgqt.org.cn/content/post/441360)(https://www.yqgqt.org.cn/content/post/441445)。
在本次實戰中,“滿鋪包裹式加筋土擋墻”被抽象為一個“對象”,以 geogrid 的名稱“封裝”在“類型”(class)里面:(見下圖)
圖中 def 所定義的,就是“對象”的“成員函數”或“方法”。我已經把建模需要的步驟、流程都變成了一個個拿來即用的方法。
展開 abaqus python 面向對象二次開發—— geogrid 加筋土擋墻插件(正式版) ¥10
視頻鏈接:【GUI, 二次開發】面向對象的 abaqus python 插件 —— geogrid (https://www.yqgqt.org.cn/college/video/c13463?nagivator=course)
在 geogrid 加筋土擋墻插件開發期間,寫了多個帖子、錄制了多個視頻,對插件的功能、腳本編譯方法進行了介紹。
現在 geogrid 已經可以實現墻面各種傾角、任意加筋長度組合的加筋土擋墻建模功能。插件可以在 GUI 界面和命令行使用。
geogird 既是一個用來演示“面向對象”abaqus python 二次開發的例子,也是直接能用來分析真實擋土墻的插件。
如果,大家希望通過我發布的視頻內容入門面向對象”abaqus python 二次開發。強烈建議下載源文件進行實際操作,在下一次進行代碼精講視頻發布時有一個鋪墊,同時帶著問題來看代碼精講的視頻。在后面代碼精講視頻里面,會逐步提供未編譯的 python 腳本源代碼。
如果用到 geogrid 進行實際擋土墻的分析,那歡迎反饋你們的工程需求,我將免費添加相應功能。在插件的功能不斷豐富的同時,錄制更多免費視頻 讓大家對插件的維護、版本迭代、升級、代碼重構,有貼近實戰的了解。
在跟隨 geogrid 插件開發之路上,你會掌握如何擺脫現在的面向過程思維,從軟件工程的角度創造出一款屬于自己的接口豐富、功能完備、準商業級的前(后)處理插件。
插件更新、維護:
付費下載后,請在評論區留下郵箱,插件更新或維護之后會通過郵件方式發送新版本。
加入qq群(280631123),對軟件使用的問題可以在群里交流。
插件需求征集:
在下方留言里,留下你想要的插件。我先收集插件需求,針對排在前幾名的,進行投票,最后進行插件開發。在開發過程中,錄制免費學習視頻供大家參考學習。
展開 
ABAQUS案例-旋轉對稱子模型分析及旋轉對稱模型在溫度場和過盈裝配下的應力位移分析與過約束檢查 ¥3
旋轉對稱分析可以大大降低工作量以及計算量,本實例(附件中inp文件)演示了在何種情況下以及如何采用旋轉對稱子模型進行整結構分析。本實例中采用了旋轉對稱子模型分析結構在溫度場和過盈裝配下的應力位移分布及計算過盈面總裝配作用力。并演示了如何避免過約束以及如何在局部坐標系下查看應力和位移。
面向對象 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),對軟件使用的問題可以在群里交流。
加筋土擋墻參數化建模工具的說明:
(內容待續)
展開 Abaqus旋轉車削案例
計算過程包含兩個Step:
Step-1:工件旋轉加速階段;
Step-2:車削階段。
這兩個階段均采用“Dynamic, Temp-Disp, Explicit”分析類型,工件材料考慮了塑性、Johnson-Cook影虎、Johnson-Cook失效等,刀具采用了Rigid 。
abaqus中旋轉角度?
abaqus中我想給個長方體兩端面固定,然后給長方體除了兩端面添加旋轉角度,這個長方體會發生變形,最后想看變形后的力?該如何做?