当前位置: 首页 > news >正文

基于python脚本进行Maxwell自动化仿真

本文为博主进行Maxwell自动化研究过程的学习记录,同时对Maxwell自动化脚本(pythonIron)实现方法进行分享。

文章目录

  • 脚本使用方法
  • 脚本录制与查看
  • 常用脚本代码
      • 通用开头
      • 定义项目
      • 调整设计变量
        • 软件内对应位置
        • 脚本
      • 设置求解器
        • 软件内对应位置
        • 脚本
      • 定义数据模块
      • 使用“计算器”计算并导出数据
        • 软件对应计算器位置
        • 脚本实现
      • 项目保存
      • 关闭脚本

脚本使用方法

  1. 创建一个pyhon文件,如”script.py“
  2. 点击Maxwell➡Tools➡run script
    在这里插入图片描述
  3. 选择刚刚创建的脚本打开,即可运行*(注意去除脚本中中文内容)*
    在这里插入图片描述

脚本录制与查看

如图点击录制脚本
在这里插入图片描述
点击选择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")

使用“计算器”计算并导出数据

软件对应计算器位置

在这里插入图片描述
点击后打开计算器窗口
在这里插入图片描述

关于计算器的使用方法本文不过多介绍,具体使用可参考其他网络教程。

脚本实现

由于计算器的操作类型很多,下面列举几个操作的脚本例子,可根据代码形式类推:

  1. 输入求解值,此处向计算器输入了磁场B的求解结果
oModule.EnterQty("B")  
  1. 对当前计算器内容施加操作,此处操作取出向量第一个分量
oModule.CalcOp("ScalarX")
  1. 施加求解区域,此处选择几何 0_1
oModule.EnterVol("0_1")
  1. 输入常数,此处输入2
oModule.EnterScalar(2)
  1. 施加运算,此处施加除法运算
oModule.CalcOp("/")
  1. 导出结果至文件 ,此处定义setup求解结果项“LastAdaptive”,和设计变量currents1 为100A
oModule.CalculatorWrite("E:\\maxwellData\\1.fld", ["Solution:="		, "Setup1 : LastAdaptive"], ["currents1:="		, "100A"])
  1. 清除计算器中内容
oModule.CalcStack("clear")

项目保存

oProject.Save()

关闭脚本

ScriptEnv.Shutdown()
http://www.xdnf.cn/news/704125.html

相关文章:

  • 代码随想录算法训练营第五十三天
  • Oracle/openGauss中,DATE/TIMESTAMP与数字日期/字符日期比较
  • 计算机网络之差错控制中的 CRC(循环冗余校验码)
  • 软件工程 3.0:智能驱动的软件新时代
  • LVS+Keepalived高可用集群
  • Nat Commun项目文章 ▏小麦CUTTag助力解析转录因子TaTCP6调控小麦氮磷高效利用机制
  • LVS + Keepalived 高可用群集
  • Redis Stack常见拓展
  • K6 是什么
  • ubuntu24 安装MongoDB-6.0.24 数据库操作步骤和配置参数说明
  • QuickBASIC QB64 支持 64 位系统和跨平台Linux/MAC OS
  • 使用Redisson实现分布式锁发现的【订阅超时】Subscribe timeout: (7500ms)
  • AI绘画:Stable Diffusion从入门到精通(系列教程)
  • ONLYOFFICE文档API:编辑器的品牌定制化
  • 算法训练第二天
  • 【AI智能体】Coze 插件从使用到实战详解
  • 从法律层面剖析危化品证书:两证一证背后的安全逻辑
  • Perforce P4产品简介:无限扩展+全球协作+安全管控+工具集成(附下载)
  • Android 异步编程中协程的完整实战示例
  • OpenFeign vs MQ:微服务通信如何选型?详解同步与异步的适用场景
  • C++23 std::fstreams基础回顾
  • 【25软考网工】第九章(2)网络管理命令
  • Vue-Router 基础使用
  • 结构性设计模式之Bridge(桥接)
  • 如何处理 Python 入门难以进步的现象
  • 常见路由协议解析:从原理到应用场景
  • 深入解析 Spring @Transactional 的事务开启机制
  • 谈谈iostat
  • 企业信息化/数字化项目管理办法V3.0
  • 红棉花板材亮相德国科隆展 东方智造赋能全球家居未来