Community程式設計與開發github.com

shou0715-Arthur/pyaedt-hfss-antenna

使用 PyAEDT 驅動 Ansys HFSS/AEDT 完成天線與 RF 仿真自動化的工作流程骨架。

pyaedt-hfss-antenna 是什麼?

此技能為 AI agent 提供了一個完整的流程化框架,用於通過 PyAEDT (或 ansys.aedt.core) 以 Python 腳本驅動 Ansys HFSS/AEDT 進行天線與射頻 (RF) 仿真。技能的核心是建立一條從環境配置、建模、求解到後處理的標準化流水線,並提供三個可直接複製修改的高頻任務模板:S 參數提取、遠場方向圖和參數化掃描。它支援所有支援 PyAEDT 的桌面環境(Windows/Linux),並透過 gRPC 或 COM 介面與 Ansys Electronics Desktop 通訊。此技能不替用戶設計天線,而是專注於將「已知設計」自動轉化為「仿真結果」,從而大幅提升工程師或 AI agent 在進行天線設計驗證、最佳化和批次處理時的工作效率。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shou0715-Arthur/pyaedt-examples-and-skills/tree/main/skills/pyaedt-hfss-antenna

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

PyAEDT HFSS 天線/RF 仿真 Skill

這個 skill 解決什麼問題

把「agent 用 Python 驅動 Ansys HFSS 做天線/RF 仿真」這件事流程化。它給你三樣東西:

  1. 環境握手指引 —— 怎麼找到本機 AEDT、用 gRPC 還是 COM、避免授權衝突
  2. 標準天線仿真流水線 —— 建專案 → 建模 → 邊界/激勵 → 求解設定 → 掃頻 → 求解 → 後處理,每步給出可貼上改寫的程式碼骨架
  3. 三個高頻任務模板 —— S 參數提取、遠場方向圖、參數化掃頻,直接當起點改

它不替你設計天線(幾何、饋電方式、目標頻段是用戶/工程師的工作),只負責把「已知設計 → 跑出仿真結果」這條路走順。

何時觸發

  • 用戶說「用 HFSS 仿真這個天線」、「提取 S 參數」、「掃頻 2-6 GHz」、「畫方向圖」、「看增益」
  • 用戶給出了 .aedt/.aedtz/.hfss 工程,要求自動跑/批次跑
  • 用戶寫程式碼 import ansys.aedt.core / from pyaedt import Hfss
  • 用戶問「怎麼用 pyaedt 啟動 HFSS」、「為什麼連不上 AEDT」、「授權佔用怎麼辦」

標準工作流(一條主線)

無論具體任務是什麼,天線/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)
                   不釋放會一直佔用授權!

怎麼用本 skill

第一次接到天線/RF 仿真任務時

  1. 先讀 references/environment-setup.md —— 弄清用戶機器上 AEDT 是哪個版本、Python 是哪個版本、要不要裝 pyaedt。如果不清楚,執行 scripts/check_env.py。
  2. 再讀 references/antenna-workflow.md —— 這裡是上面那條主線的「放大版」,每一步給出 API 用法和常用參數。
  3. 遇到報錯前先掃一眼 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,先跑通流水線再加密。一次到位會浪費幾小時。
  • 永遠 release_desktop:不釋放授權 = 下次啟動報錯。腳本結尾用 try/finally 包住。
  • non_graphical 預設 True:除非要看幾何/除錯,否則不開 GUI,省記憶體且能並行。
  • 路徑用絕對路徑:相對路徑在 AEDT 處理程序裡不一定指向你以為的目錄。
  • 變數優先:任何一個「可能要改」的尺寸,先建成變數,別寫死字面量,否則後面參數掃描要重寫。

安裝 pyaedt(如果還沒裝)

# 推薦組合(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 pyaedt —— 1.0 起官方推薦 import ansys.aedt.core as pyaedt 或 from ansys.aedt.core import Hfss。老程式碼 from pyaedt import Hfss 仍可用但已 deprecated。
  • 不要在 GUI 已經開著 AEDT 的情況下用 new_desktop=True —— 會另開一個處理程序,授權翻倍。要複用已開的桌面用 new_desktop=False。
  • 不要在 Mac 上期待原生 AEDT —— AEDT 只跑 Windows/Linux。Mac 上要嘛遠端到 Windows,要嘛用 PyEDB 處理 EDB 而非 HFSS。
  • 不要省略 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。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能