shou0715-Arthur/pyaedt-hfss-antenna

Un squelette de workflow pour automatiser les simulations d'antennes et RF avec Ansys HFSS / AEDT via PyAEDT. Déclenché dès qu'un agent ou utilisateur mentionne HFSS, AEDT, pyaedt, ou toute tâche de simulation antenne/RF.

Qu'est-ce que pyaedt-hfss-antenna ?

Ce skill fournit un cadre complet pour qu'un agent IA puisse piloter Ansys HFSS / AEDT via Python (PyAEDT / ansys.aedt.core) dans le but d'automatiser des simulations d'antennes et de radiofréquences (RF). Il résout les problèmes d'environnement (détection AEDT, choix entre gRPC et COM, gestion des licences), propose un pipeline standard en neuf étapes (des paramètres d'environnement à la post‑analyse), et offre trois templates prêts à l'emploi : extraction de paramètres S, diagramme de rayonnement en champ lointain, et balayage paramétrique. Le skill s'applique à toute plateforme supportant PyAEDT (Windows, Linux) et est déclenché dès que l'utilisateur mentionne HFSS, AEDT, pyaedt, ou réalise une simulation d'antenne, de paramètres S, d'impédance, etc. Il ne conçoit pas l'antenne elle‑même, mais automatise l'exécution fiable de la simulation à partir d'une conception donnée, en insistant sur l'utilisation de variables, le mode non‑graphique, et la libération systématique des licences.

Compatible avec✓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 Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Skill PyAEDT HFSS Antenne/RF

Que résout ce skill ?

Il structure le processus "un agent pilote Ansys HFSS en Python pour simuler des antennes/RF". Il apporte trois choses :

  1. Guide d'initialisation – comment trouver AEDT sur la machine, utiliser gRPC ou COM, éviter les conflits de licence.
  2. Pipeline standard de simulation d'antenne – créer un projet → modéliser → conditions aux limites/excitation → paramètres de solveur → balayage en fréquence → résolution → post‑traitement, chaque étape avec un squelette de code prêt à copier et adapter.
  3. Trois templates de tâches courantes – extraction de paramètres S, diagramme de rayonnement en champ lointain, balayage paramétrique, directement utilisables comme point de départ.

Il ne conçoit pas l'antenne à votre place (géométrie, alimentation, bande de fréquence sont du ressort de l'ingénieur) ; il se contente de fluidifier le chemin "conception connue → résultat de simulation".

Quand déclencher ce skill

  • L'utilisateur dit "simuler cette antenne avec HFSS", "extraire les paramètres S", "balayer de 2 à 6 GHz", "tracer le diagramme de rayonnement", "afficher le gain".
  • L'utilisateur fournit un projet .aedt/.aedtz/.hfss et demande une exécution automatique ou par lots.
  • L'utilisateur écrit du code import ansys.aedt.core / from pyaedt import Hfss.
  • L'utilisateur demande "comment lancer HFSS avec pyaedt", "pourquoi je n'arrive pas à me connecter à AEDT", "que faire si la licence est bloquée".

Workflow standard (fil conducteur)

Quelle que soit la tâche, la simulation d'antenne/RF suit ce fil. Construisez d'abord votre carte mentale le long de ce fil, puis sautez au template correspondant :

[1] Initialisation  →  Vérifier version AEDT + version Python + interface de communication
                       Voir references/environment-setup.md
                       En cas de doute, exécuter scripts/check_env.py

[2] Créer/Ouvrir projet →  Hfss(project=..., design=..., version=..., new_desktop=...)
                       Important : non_graphical=True pour CI/lots
                                  new_desktop=False pour réutiliser un bureau déjà ouvert
                                  close_on_exit=True pour libérer la licence après exécution

[3] Modélisation géométrique →  hfss.modeler.create_box / create_cylinder / create_polyline ...
                              Ou hfss.modeler.import_3d_cad("xxx.step")
                              Conseil : définir d'abord des variables (voir ci‑dessous), puis piloter la géométrie par variables

[4] Paramétrisation →  hfss[" $patch_w "] = "30mm"  (variable de projet, avec $)
                       hfss["patch_l"]    = "32mm"   (variable de conception, sans $)
                       Mettre en variable toute dimension susceptible d'être balayée

[5] Conditions limites & excitations →  Radiation : hfss.assign_radiation_boundary_to_objects(["AirBox"])
                                       Port : hfss.lumped_port / hfss.wave_port / hfss.create_floquet_port
                                       Masse : hfss.assign_perfecte_to_sheets(...)

[6] Configuration du solveur →  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] Résolution →  hfss.analyze(setup="Setup1", cores=8)   # bloquant
                 ou hfss.analyze_setup("Setup1")

[8] Post‑traitement →  Paramètres S : hfss.post.get_solution_data("S(1,1)")
                       Champ lointain : hfss.insert_infinite_sphere(...)
                                        hfss.post.get_far_field_data(...)
                       Export : data.export_data_to_csv("xxx.csv")

[9] Nettoyage →  hfss.save_project()
                hfss.release_desktop(close_projects=False, close_desktop=True)
                Ne pas libérer la licence = blocage au prochain lancement !

Comment utiliser ce skill

Au premier contact avec une tâche de simulation antenne/RF

  1. Lire d'abord references/environment-setup.md – pour savoir quelle version d'AEDT, quelle version de Python, et s'il faut installer pyaedt. En cas de doute, lancer scripts/check_env.py.
  2. Lire ensuite references/antenna-workflow.md – c'est la version "zoomée" du fil conducteur ci‑dessus, avec pour chaque étape l'API détaillée et les paramètres courants.
  3. Avant de rencontrer une erreur, jeter un œil à references/common-pitfalls.md – 80% des problèmes "connexion impossible / ne s'exécute pas / résultat faux" y sont listés.

Pour écrire du code

Aller dans templates/ et choisir le template le plus proche de la tâche, copier‑coller le bloc entier puis modifier :

Type de tâcheTemplate
Projet unique, balayage S11/S21 mono ou multi‑fréquencetemplates/sparam_extraction.py
Diagramme de rayonnement en champ lointain, gain, efficacité de rayonnement, diagramme 3Dtemplates/far_field_pattern.py
Balayage de dimensions / matériaux, extraction de multiples résultatstemplates/parametric_sweep.py

Les templates sont des scripts exécutables indépendamment. En haut, ils exposent des paramètres communs comme PROJECT_PATH / DESIGN_NAME / FREQ_*. Modifier d'abord le haut, puis la partie géométrie/conditions limites.

Principes clés

  • Petit d'abord, grand ensuite : lors du premier lancement d'un script, mettre MaximumPasses à 3‑5, le nombre de points de balayage à 21, faire fonctionner le pipeline, puis affiner. Aller trop vite coûte des heures.
  • Toujours release_desktop : ne pas libérer la licence = erreur au lancement suivant. Encadrer la fin du script avec try/finally.
  • non_graphical par défaut True : sauf si on veut voir la géométrie ou déboguer, ne pas ouvrir l'interface graphique pour économiser la mémoire et permettre le parallélisme.
  • Utiliser des chemins absolus : un chemin relatif peut ne pas pointer là où vous pensez dans le processus AEDT.
  • Variables d'abord : toute dimension susceptible d'être modifiée doit être une variable, pas une valeur en dur, sinon le balayage paramétrique oblige à tout réécrire.

Installer pyaedt (si pas déjà fait)

# Combinaison recommandée (2025 R2 / 2026 R1)
pip install pyaedt

# Anciens AEDT avec anciens pyaedt (voir references/environment-setup.md pour la correspondance)
pip install pyaedt==0.17.5     # AEDT 2025 R1
pip install pyaedt==0.13.3     # AEDT 2024 R2

Ce qu'il ne faut pas faire

  • Ne pas importer directement pyaedt – depuis la version 1.0, la méthode recommandée est import ansys.aedt.core as pyaedt ou from ansys.aedt.core import Hfss. L'ancien code from pyaedt import Hfss fonctionne encore mais est déprécié.
  • Ne pas utiliser new_desktop=True quand l'interface graphique AEDT est déjà ouverte – cela ouvrirait un nouveau processus et doublerait la licence. Pour réutiliser le bureau existant, utiliser new_desktop=False.
  • Ne pas espérer un AEDT natif sur Mac – AEDT fonctionne uniquement sous Windows/Linux. Sur Mac, soit se connecter à distance à une machine Windows, soit utiliser PyEDB pour manipuler le fichier EDB sans HFSS.
  • Ne pas oublier hfss.save_project() – il faut sauvegarder avant le release, sinon les modifications seront perdues.
  • Ne pas livrer des résultats avec un MaxDeltaS trop relâché (>0.05) – une convergence insuffisante donne un S11 qui est du bruit, pas de la physique.

Liste des fichiers de référence

pyaedt-hfss-antenna/
├── SKILL.md                          ← Vous êtes ici
├── references/
│   ├── environment-setup.md          ← Correspondances de versions, installation, gRPC/COM, licence
│   ├── antenna-workflow.md           ← Détail de l'API du workflow principal
│   └── common-pitfalls.md            ← Erreurs fréquentes et solutions
├── templates/
│   ├── sparam_extraction.py          ← Extraction des paramètres S par balayage
│   ├── far_field_pattern.py          ← Diagramme de champ lointain / gain
│   └── parametric_sweep.py           ← Balayage paramétrique de variables
└── scripts/
    └── check_env.py                  ← Détecter AEDT/Python/pyaedt sur la machine

Ordre de lecture suggéré : ce fichier → environment-setup → haut des templates → antenna-workflow (selon l'étape) → common-pitfalls en cas de problème.

Individual skills in this repo

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

Skills associés