本文為博主進行Maxwell自動化研究過程的學習記錄,同時對Maxwell自動化腳本(pythonIron)實現方法進行分享。
文章目錄
- 腳本使用方法
- 腳本錄制與查看
- 常用腳本代碼
- 通用開頭
- 定義項目
- 調整設計變量
- 軟件內對應位置
- 腳本
- 設置求解器
- 軟件內對應位置
- 腳本
- 定義數據模塊
- 使用“計算器”計算并導出數據
- 軟件對應計算器位置
- 腳本實現
- 項目保存
- 關閉腳本
腳本使用方法
- 創建一個pyhon文件,如”script.py“
- 點擊Maxwell?Tools?run script
- 選擇剛剛創建的腳本打開,即可運行*(注意去除腳本中中文內容)*
腳本錄制與查看
如圖點擊錄制腳本
點擊選擇ironPython
錄制后可以在同樣位置選擇結束錄制
但是博主的版本有bug,這一塊是灰色的。那也沒有關系,腳本是實時更新并保存在臨時目錄的。
即便版本正常,博主還是建議直接取臨時文件夾實時查看腳本錄制內容,這樣每進行一步操作即可知道對應的腳本代碼。臨時目錄的位置通常是:c盤用戶文件夾/AppData/Local/Temp。具體可以在maxwell軟件設置內查看:
點擊后出現設置窗口,找到Temp對應位置:
之后在文件管理器打開這個位置,可以看到最近錄制的腳本,使用編輯器或記事本打開,即可看到對應操作的代碼
常用腳本代碼
如果你懶得進行錄制,或對錄制腳本做出一些簡單更改與補充,可以參考下面的一些常見代碼
通用開頭
import ScriptEnv
ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")
oDesktop.RestoreWindow()
定義項目
oProject = oDesktop.SetActiveProject("MaxwellProject")
oDesign = oProject.SetActiveDesign("Maxwell2DDesign1")
此段分別定義了maxwell的項目、設計,此處名稱應對應maxwell項目目中的對應名稱:
調整設計變量
軟件內對應位置
通常批量化、自動化操作需要對項目的設計變量進行設置,Maxwell中對應位置為
點擊后即可看到變量設置窗口
腳本
使用python腳本對變量進行設置:
oDesign.ChangeProperty(["NAME:AllTabs",["NAME:LocalVariableTab",["NAME:PropServers", "LocalVariables"],["NAME:ChangedProps",["NAME:currents1", #變量名"Value:=" , str(s)+"A" #變量值(若有單位則加上單位)]]]])
設置求解器
軟件內對應位置
點擊后出現求解器設置窗口,此處為穩態求解類型,若為頻域或瞬態可能有差異
腳本
設置方法如下,根據需要設置的字段按照如下方式設置
oModule.EditSetup("Setup1", ["NAME:Setup1","Enabled:=" , True,["NAME:MeshLink","ImportMesh:=" , False],"MaximumPasses:=" , 10,"MinimumPasses:=" , 2,"MinimumConvergedPasses:=", 1,"PercentRefinement:=" , 30,"SolveFieldOnly:=" , True,"PercentError:=" , 1,"SolveMatrixAtLast:=" , True,"UseNonLinearIterNum:=" , False,"NonLinearResidual:=" , 0.001,"SmoothBHCurve:=" , False,["NAME:MuOption","MuNonLinearBH:=" , True]])
定義數據模塊
通常自動化腳本用于數據的導出。故使用模塊“FieldsReporter”
oModule = oDesign.GetModule("FieldsReporter")
使用“計算器”計算并導出數據
軟件對應計算器位置
點擊后打開計算器窗口
關于計算器的使用方法本文不過多介紹,具體使用可參考其他網絡教程。
腳本實現
由于計算器的操作類型很多,下面列舉幾個操作的腳本例子,可根據代碼形式類推:
- 輸入求解值,此處向計算器輸入了磁場B的求解結果
oModule.EnterQty("B")
- 對當前計算器內容施加操作,此處操作取出向量第一個分量
oModule.CalcOp("ScalarX")
- 施加求解區域,此處選擇幾何 0_1
oModule.EnterVol("0_1")
- 輸入常數,此處輸入2
oModule.EnterScalar(2)
- 施加運算,此處施加除法運算
oModule.CalcOp("/")
- 導出結果至文件 ,此處定義setup求解結果項“LastAdaptive”,和設計變量currents1 為100A
oModule.CalculatorWrite("E:\\maxwellData\\1.fld", ["Solution:=" , "Setup1 : LastAdaptive"], ["currents1:=" , "100A"])
- 清除計算器中內容
oModule.CalcStack("clear")
項目保存
oProject.Save()
關閉腳本
ScriptEnv.Shutdown()