Workbench中利用python實(shí)現(xiàn)材料參數(shù)化定義
2017-09-15 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
在workbench中實(shí)現(xiàn)整個(gè)過程的參數(shù)化過程除了前幾次文章介紹的模型與網(wǎng)格,還應(yīng)該包括材料參數(shù)的參數(shù)化定義。利用Python進(jìn)行二次開發(fā)能夠?qū)崿F(xiàn)材料參數(shù)的自由定義,比如來源于excel表格或者文檔的數(shù)據(jù),通過Python代碼的自動(dòng)讀取,參與到實(shí)際的有限元分析進(jìn)程中。
由于在workbench中定義材料的操作比其他有限元軟件麻煩很多,因此先就在workbench中如何定義多種材料屬性作一些說明,以加強(qiáng)對(duì)材料定義過程的認(rèn)識(shí)。此后再進(jìn)行python材料參數(shù)的定義。
在Workbench平臺(tái)添加一個(gè)結(jié)構(gòu)分析系統(tǒng),右鍵進(jìn)入材料編輯狀態(tài),如下所示:
圖1
打開之后的界面如下所示,默認(rèn)已經(jīng)有了Structural Steel材料。
圖2
如果需要添加第二種材料,則進(jìn)入Engineering Data Sources,如下所示。
圖3
進(jìn)入之后如下所示。
圖4
材料參數(shù)可以進(jìn)行修改,如下所示,按照?qǐng)D5的順序即可修改某些材料參數(shù),其中勾選1處表示進(jìn)入編輯模式,只有進(jìn)入編輯模式后才可以修改具體的某些參數(shù)。
圖5
如果想要添加第二種材料,那么點(diǎn)擊如下圖所示的添加按鈕即可。
圖6
同樣的,如果想要添加同一種材料但是不同的材料參數(shù)時(shí),例如添加第二種鋼材,也是點(diǎn)擊添加按鈕,不過需要修改參數(shù)后再添加,注意,添加材料時(shí)需要先退出編輯模式。
最終添加了三種材料如下所示:
圖7
圖7中有是否抑制材料的選擇,如果選擇抑制,那么在后續(xù)選擇材料賦予時(shí)將看不到該材料。
上面的過程是如何定義多種不同的材料,下面便是具體給模型賦予材料。給模型賦予材料的基礎(chǔ)是solid,因此只有不同的solid才可能賦予不同的材料,在建模時(shí)需要考慮此問題。
進(jìn)入Model模塊,先通過File-Refresh更新數(shù)據(jù),然后如下所示:
圖8
可以給每一個(gè)solid分別賦予不同的材料,然后劃分網(wǎng)格即可。
以下一段代碼是在Workbench中通過Python設(shè)定材料的彈性模量和泊松比參數(shù):
# encoding: utf-8
# Release 16.0
SetScriptVersion(Version="16.0.361")
template1 = GetTemplate(TemplateName="EngData")
system1 = template1.CreateSystem()
template2 = GetTemplate(
TemplateName="Static Structural",
Solver="ANSYS")
system2 = template2.CreateSystem(
Position="Right",
RelativeTo=system1)
engineeringDataComponent1 = system2.GetComponent(Name="Engineering Data")
engineeringDataComponent2 = system1.GetComponent(Name="Engineering Data")
engineeringDataComponent1.ReplaceWithShare(
TargetSystem=system2,
ComponentToShare=engineeringDataComponent2,
SourceSystem=system1)
engineeringData1 = system1.GetContainer(ComponentName="Engineering Data")
material1 = engineeringData1.GetMaterial(Name="Structural Steel")
matlProp1 = material1.GetProperty(Name="Elasticity")
E=220000000000
nu=0.29
E_str="%s [Pa]" % E
nu_str="%s" % nu
matlProp1.SetData(
Variables=["Young's Modulus"],
Values=[["%s" % E_str]])
matlProp1.SetData(
Variables=["Poisson's Ratio"],
Values=[["%s" % nu]])
engineeringDataComponent2.Update(AllDependencies=True)
上述代碼在workbench平臺(tái)定義了一個(gè)Engineering Data模塊和一個(gè)Static Structure模塊。該例子中將彈性模量和泊松比作為可以修改的材料參數(shù),利用字符串變量E_str和nu_str獲取彈性模量和泊松比的值,再利用SetData函數(shù)將這兩個(gè)參數(shù)給Engineering Data模塊。
Workbench平臺(tái)的界面如下所示。
圖9
進(jìn)入Engineering Data模塊,可以看到如下所示的結(jié)果,彈性模量和泊松比和上述python代碼中定義的數(shù)值一樣。
圖10
同樣,圖10中的其他參數(shù)也可以進(jìn)行參數(shù)化定義。如果在上述python代碼中添加相關(guān)的文件讀寫,那么就可以實(shí)現(xiàn)從已有文件中讀取相關(guān)的材料參數(shù)進(jìn)行替換。
姊妹篇:
《Workbench利用Python驅(qū)動(dòng)MAPDL執(zhí)行APDL命令》
《Workbench利用Python驅(qū)動(dòng)DM執(zhí)行Js進(jìn)行建?!?
其他workbench二次開發(fā)細(xì)節(jié):
《利用Python在Workbench的DM中進(jìn)行幾何操作》
《利用Python和API函數(shù)創(chuàng)建幾何模型實(shí)例說明》
相關(guān)標(biāo)簽搜索:Workbench中利用python實(shí)現(xiàn)材料參數(shù)化定義 Ansys有限元培訓(xùn) Ansys workbench培訓(xùn) ansys視頻教程 ansys workbench教程 ansys APDL經(jīng)典教程 ansys資料下載 ansys技術(shù)咨詢 ansys基礎(chǔ)知識(shí) ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓(xùn)