python 控制 ansys maxwell - 1 開啟軟體 + 新增project
## 環境- windows VM in mac
- Ansys 17.2
- 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")
```
就可以用python直接開啟maxwell
## 新增project
maxwell的script是一個OOP的概念,由很多層class組成,每個class中有許多function可用,繼承圖可參考官方的API文件,新增project很簡單,使用下列code
```
oDesktop = oAnsoftApp.GetAppDesktop()
oProject = oDesktop.NewObject()
```
看這篇文章的朋友,有興趣的話也可以嘗試一下,需要討論的話也可以留言,也歡迎一起討論 我用vbs脚本可以实现,但是没用过python。我跟相关人士咨询说maxwell只支持ironpython,你用python3.7.3可以正常运行吗? 大熊弟 发表于 2020-3-13 18:56
我用vbs脚本可以实现,但是没用过python。我跟相关人士咨询说maxwell只支持ironpython,你用python3.7.3可 ...
要透過win32com, 可以的 Mark_MC506 发表于 2020-3-14 14:54
要透過win32com, 可以的
那您能详细的说明一下吗
学习学习。谢谢楼主!! 本帖最后由 Mark_MC506 于 2020-8-22 23:49 编辑
大熊弟 发表于 2020-3-14 17:44
那您能详细的说明一下吗
win32com.client.Dispatch()是利用 微軟 提供的一個 IDispatch 的自動化介面,接收軟體的 ProgID為參數,來操作windows軟體。
可以在 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` 來縮減結果。 Mark_MC506 发表于 2020-8-22 23:44
win32com.client.Dispatch()是利用 微軟 提供的一個 IDispatch 的自動化介面,接收軟體的 ProgID為參數 ...
好的,我试试,谢谢 兄弟,我试了不行啊 最近刚好在二次开发Maxwell,正版软件,版本为AnsysEM19.5,有很多种方法打开Maxwell,一种为dispatch,另一种为命令行执行。
代码如下:
from win32com import client
oAnsoftApp = client.Dispatch("Ansoft.ElectronicsDesktop")
oDesktop = oAnsoftApp.GetAppDesktop()
oProject = oDesktop.NewProject()
oDesktop.RestoreWindow()
###新建2D瞬态分析
oProject.InsertDesign("Maxwell 2D", "Maxwell2DDesign3", "Transient", "")
##工程另存为
oProject.SaveAs("D:/projects/project1.aedt", true)
##关闭工程
oDesktop.CloseProject("project_name")
##关闭软件
oDesktop.QuitApplication()
dtbdtb123 发表于 2020-11-9 22:35
兄弟,我试了不行啊
代码已贴出,亲测可用! 您好,请问一下官方python的API文档在哪里能下载? 不好意思 Electronic 後面要加s :oAnsoftApp = client.Dispatch("Ansoft.ElectronicsDesktop") 才ˋ正確 Billy_Smile 发表于 2020-12-25 14:00
代码已贴出,亲测可用!
好的,好兄弟,谢谢,我去试试。 Mark_MC506 发表于 2021-1-10 16:47
不好意思 Electronic 後面要加s :oAnsoftApp = client.Dispatch("Ansoft.ElectronicsDesktop") 才ˋ正確
好的,谢谢兄弟纠正。
不需要指定maxwell 的系统安装路径吗 有开发文档嘛.......
请教一下楼主能否用 python实现 maxwell 中 select objects by material 的功能?
如下图所示
我用Record Script 功能尝试录制这个脚本,但是发现没办法记录这个操作
大佬能否提供一些用python实现该功能的思路呢{:10_366:} MADANO 发表于 2021-4-20 19:27
请教一下楼主能否用 python实现 maxwell 中 select objects by material 的功能?
如下图所示
oProject = oDesktop.SetActiveProject("Project Name")
oDesign = oProject.SetActiveDesign("Design Name")
oEditor = oDesign.SetActiveEditor("3D Modeler")
##获得材料为vacuum的所有object名字
objNames = oEditor.GetObjectsByMaterial("vacuum")
之后你可以遍历所有object来改变property
虽然我不知道你这样做的目的,但大致的思路是这个样子
Billy_Smile 发表于 2021-7-15 09:44
oProject = oDesktop.SetActiveProject("Project Name")
oDesign = oProject.SetActiveDesign("Design N ...
好的,多谢啦em825 您好!
请问怎么能使用python在maxwell中设置绕组材料和激励呢?
页:
[1]
2