iT邦幫忙

0

馬達、電機 電磁分析自動化 (ansoft maxwell) -  新增project

環境

  • windows 10
  • Ansys maxwell
  • python 3.7.3

目標

使用python script,執行後自動開啟maxwell、新增project

win32com

首先要完成的是讓python開啟maxwell,參考了網路上的一些資訊,使用win32com這個module是最方便的,因此先跑pip install pywin32裝好module,使用

from win32com import client

oAnsoftApp = client.Dispatch("Ansoft.ElectronicDesktop")

看到上面的code,可能會有幾個問題

  • client.Dispatch做了什麼事?

    • win32com.client.Dispatch()是利用 微軟 提供的一個 IDispatch 的自動化介面,接收軟體的 ProgID為參數,來操作windows軟體 (來源詳細資料)
  • 怎麼知道,我的系統有沒有 "Ansoft.ElectronicDesktop" 這個 ProgID呢 ?

    • 可以在powershell打上 Get-ChildItem HKLM:\Software\Classes -ErrorAction SilentlyContinue | Where-Object {$_.PSChildName -match '^\w+\.\w+$' -and (Test-Path -Path "$($_.PSPath)\CLSID")} | Select-Object -ExpandProperty PSChildName 找看看有沒有,如果太多的話可以在最後面加上 | grep An 來縮減結果。
  • 為什麼使用 oAnsoftApp 這個Object name?

    因為這是官方的手冊裡控制軟體的API名稱,依照手冊裡的變數,之後繼續實作其他功能時對照會比較方便。

新增project

maxwell的script是一個OOP的概念,由很多層class組成,每個class中有許多function可用,繼承圖如下
https://ithelp.ithome.com.tw/upload/images/20190621/20117516uWHG8ALXdN.png

往上看開啟maxwell的code,整個開啟的專案其實就是 oAnsoftApp,有了 oAnsoftApp 就可以在裡面做任何事情,包括開啟一個project,用下列的code就能成功開啟

oDesktop = oAnsoftApp.GetAppDesktop()
oProject = oDesktop.NewObject()

本文同步發表於 https://mark-weng.com/ ,後續更多的更新也會到網站上。

目前所做好的分析自動化demo: https://www.youtube.com/watch?v=uStT2k3V6x0 ,有任何疑問都可以留言或來信一起討論。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言