From pyaedt-hfss-antenna
Automates Ansys HFSS/AEDT antenna and RF simulation workflows via PyAEDT, covering environment setup, geometry modeling, boundary/port assignment, solver configuration, frequency sweeps, S-parameter extraction, far-field plots, and parametric optimization.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pyaedt-hfss-antenna:pyaedt-hfss-antennaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
把"agent 用 Python 驱动 Ansys HFSS 做天线/RF 仿真"这件事流程化。它给你三样东西:
把"agent 用 Python 驱动 Ansys HFSS 做天线/RF 仿真"这件事流程化。它给你三样东西:
它不替你设计天线(几何、馈电方式、目标频段是用户/工程师的工作),只负责把"已知设计 → 跑出仿真结果"这条路走顺。
.aedt/.aedtz/.hfss 工程,要求自动跑/批量跑import ansys.aedt.core / from pyaedt import Hfss无论具体任务是什么,天线/RF 仿真都遵循下面这条主线。先沿这条线建立心智地图,再跳到对应模板:
[1] 环境握手 → 确认 AEDT 版本 + Python 版本 + 通信接口
见 references/environment-setup.md
不确定时先跑 scripts/check_env.py
[2] 建/打开工程 → Hfss(project=..., design=..., version=..., new_desktop=...)
关键:non_graphical=True 用于 CI/批量
new_desktop=False 复用已开的桌面
close_on_exit=True 跑完释放许可证
[3] 几何建模 → hfss.modeler.create_box / create_cylinder / create_polyline ...
或用 hfss.modeler.import_3d_cad("xxx.step")
建议先定义变量(见下),再用变量驱动几何
[4] 变量参数化 → hfss[" $patch_w "] = "30mm" (项目变量,带 $)
hfss["patch_l"] = "32mm" (设计变量,不带 $)
建议把所有可能扫的尺寸都建成变量
[5] 边界与激励 → 辐射边界:hfss.assign_radiation_boundary_to_objects(["AirBox"])
端口: hfss.lumped_port / hfss.wave_port / hfss.create_floquet_port
接地: hfss.assign_perfecte_to_sheets(...)
[6] 求解设置 → setup = hfss.create_setup("Setup1", Frequency="3GHz",
MaximumPasses=15, MaxDeltaS=0.02)
sweep = setup.create_linear_count_sweep(
unit="GHz", start_frequency=2, stop_frequency=6,
num_of_freq_points=401, sweep_type="Interpolating")
[7] 求解 → hfss.analyze(setup="Setup1", cores=8) # 阻塞式
或 hfss.analyze_setup("Setup1")
[8] 后处理 → S 参数:hfss.post.get_solution_data("S(1,1)")
远场: hfss.insert_infinite_sphere(...)
hfss.post.get_far_field_data(...)
导出: data.export_data_to_csv("xxx.csv")
[9] 收尾 → hfss.save_project()
hfss.release_desktop(close_projects=False, close_desktop=True)
不释放会一直占用许可证!
references/environment-setup.md —— 弄清用户机器上 AEDT 是哪个版本、Python 是哪个版本、要不要装 pyaedt。如果不清楚,运行 scripts/check_env.py。references/antenna-workflow.md —— 这里是上面那条主线的"放大版",每一步给出 API 用法和常用参数。references/common-pitfalls.md —— 80% 的"连不上 / 跑不动 / 结果不对"都列在这里。去 templates/ 挑最贴近任务的那个模板,整段复制后改:
| 任务类型 | 模板 |
|---|---|
| 单个工程,单/多频点 S11/S21 扫频提取 | templates/sparam_extraction.py |
| 远场方向图、增益、辐射效率、3D 方向图 | templates/far_field_pattern.py |
| 几何尺寸/材料参数扫描,提取多组结果 | templates/parametric_sweep.py |
模板都是可独立运行的脚本,顶部统一暴露 PROJECT_PATH / DESIGN_NAME / FREQ_* 等参数,先改顶部,再改中间几何/边界部分。
MaximumPasses 设成 3-5,扫频点设成 21,先跑通流水线再加密。一次到位会浪费几小时。try/finally 包住。# 推荐组合(2025 R2 / 2026 R1)
pip install pyaedt
# 老 AEDT 用旧 pyaedt(具体对照见 references/environment-setup.md)
pip install pyaedt==0.17.5 # AEDT 2025 R1
pip install pyaedt==0.13.3 # AEDT 2024 R2
import ansys.aedt.core as pyaedt 或 from ansys.aedt.core import Hfss。老代码 from pyaedt import Hfss 仍可用但已 deprecated。new_desktop=True —— 会另开一个进程,许可证翻倍。要复用已开的桌面用 new_desktop=False。hfss.save_project() —— release 之前必须 save,否则下次打开找不到改动。MaxDeltaS 太松(>0.05)就交付结果 —— 收敛不够看到的 S11 是噪声不是物理。pyaedt-hfss-antenna/
├── SKILL.md ← 你正在读这个
├── references/
│ ├── environment-setup.md ← 版本对照、安装、gRPC/COM、许可证
│ ├── antenna-workflow.md ← 主线工作流的 API 详解
│ └── common-pitfalls.md ← 高频报错与处置
├── templates/
│ ├── sparam_extraction.py ← S 参数扫频提取
│ ├── far_field_pattern.py ← 远场方向图/增益
│ └── parametric_sweep.py ← 变量参扫
└── scripts/
└── check_env.py ← 探测本机 AEDT/Python/pyaedt
读取顺序建议:本文 → environment-setup → 模板顶部说明 → antenna-workflow(用到哪步看哪步)→ 出问题查 common-pitfalls。
npx claudepluginhub wishingcat/pyaedt-hfss-antennaGuides LTSpice/PyLTSpice circuit simulation from netlist creation through batch simulation, trace inspection, and convergence debugging.
Guides writing and editing LTspice netlists (.cir/.net/.sp), schematics (.asc), and interpreting simulation results. Covers SPICE syntax, behavioral sources, .MEAS directives, parameters, convergence issues, and common pitfalls.
Automatically generates and runs SPICE testbenches for KiCad schematic subcircuits, validating filter frequencies, divider ratios, opamp gains, LC resonance, and crystal load capacitance against simulation results.