CommunityProgramación y desarrollogithub.com

shou0715-Arthur/pyaedt-hfss-antenna

Flujo de trabajo automatizado para simulación de antenas y RF con PyAEDT que impulsa Ansys HFSS / AEDT.

¿Qué es pyaedt-hfss-antenna?

Este skill proporciona un esqueleto de flujo de trabajo para automatizar la simulación de antenas y RF utilizando PyAEDT para controlar Ansys HFSS / AEDT. Está diseñado para ser invocado cuando un usuario menciona términos como HFSS, Ansys Electronics Desktop, AEDT, pyaedt, ansys.aedt.core, o tareas como simulación de antenas, parámetros S (S11/S21), pérdida de retorno, VSWR, patrón de campo lejano, ganancia, eficiencia de radiación, adaptación de impedancia, barrido de frecuencia paramétrico o barrido paramétrico, o pide "automatizar HFSS / controlar HFSS con scripts / que un agente ejecute la simulación por mí". El skill estructura todo el proceso en una línea de trabajo clara: desde el apretón de manos del entorno (encontrar AEDT, usar gRPC o COM, evitar conflictos de licencia) hasta la creación y simulación de proyectos, pasando por modelado, configuración de fronteras/excitaciones, configuración de solver, barrido de frecuencia, postprocesamiento (S parámetros, patrón de campo lejano, ganancia) y liberación de licencias. Incluye tres plantillas de tareas de alta frecuencia: extracción de S parámetros, patrón de campo lejano y barrido paramétrico, que pueden copiarse y modificarse como punto de partida. El skill soporta todos los flujos de simulación de antenas/RF, ya sea para un solo proyecto o lotes, y se integra con entornos CI o de escritorio. Es útil para ingenieros, desarrolladores y agentes de IA que necesitan automatizar simulaciones de antenas, extraer resultados o realizar barridos paramétricos de forma fiable y eficiente.

Compatible con✓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 Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

PyAEDT HFSS Antena/RF Simulación Skill

¿Qué problema resuelve este skill?

Estandariza el proceso de "un agente usa Python para controlar Ansys HFSS y realizar simulaciones de antena/RF". Te proporciona tres cosas:

  1. Guía de apretón de manos del entorno — cómo encontrar el AEDT local, usar gRPC o COM, y evitar conflictos de licencia.
  2. Pipeline estándar de simulación de antena — crear proyecto → modelar → fronteras/excitaciones → configuración del solver → barrido → resolver → postprocesamiento, cada paso proporciona un esqueleto de código que se puede copiar y modificar.
  3. Tres plantillas de tareas de alta frecuencia — extracción de S parámetros, patrón de campo lejano y barrido paramétrico, que se pueden usar directamente como punto de partida.

No diseña la antena por ti (la geometría, el tipo de alimentación y la banda de frecuencia son trabajo del usuario/ingeniero), solo se encarga de allanar el camino desde "diseño conocido" hasta "obtener resultados de simulación".

Cuándo activarlo

  • El usuario dice "simula esta antena con HFSS", "extrae los S parámetros", "barrido de frecuencia de 2 a 6 GHz", "dibuja el patrón de radiación", "muestra la ganancia".
  • El usuario proporciona un proyecto .aedt/.aedtz/.hfss y pide que se ejecute automáticamente / en lote.
  • El usuario escribe código import ansys.aedt.core / from pyaedt import Hfss.
  • El usuario pregunta "cómo iniciar HFSS con pyaedt", "por qué no puedo conectar con AEDT", "qué hago con la licencia ocupada".

Flujo de trabajo estándar (un hilo principal)

Independientemente de la tarea específica, la simulación de antena/RF sigue este hilo principal. Primero crea un mapa mental a lo largo de este hilo, luego salta a la plantilla correspondiente:

[1] Apretón de manos del entorno    →   Confirmar versión de AEDT + versión de Python + interfaz de comunicación
                    Consulta references/environment-setup.md
                    Si no estás seguro, ejecuta primero scripts/check_env.py

[2] Crear / abrir proyecto  →  Hfss(project=..., design=..., version=..., new_desktop=...)
                   Clave: non_graphical=True para CI/lotes
                          new_desktop=False para reutilizar escritorio ya abierto
                          close_on_exit=True para liberar licencia al finalizar

[3] Modelado geométrico     →  hfss.modeler.create_box / create_cylinder / create_polyline ...
                   O usa hfss.modeler.import_3d_cad("xxx.step")
                   Se recomienda definir primero variables (ver abajo) y luego usar variables para impulsar la geometría

[4] Parametrización de variables   →  hfss[" $patch_w "] = "30mm"  (variable de proyecto, con $)
                   hfss["patch_l"]    = "32mm"   (variable de diseño, sin $)
                   Se recomienda crear variables para todas las dimensiones que puedan barrerse

[5] Fronteras y excitaciones   →  Frontera de radiación: hfss.assign_radiation_boundary_to_objects(["AirBox"])
                   Puerto:    hfss.lumped_port / hfss.wave_port / hfss.create_floquet_port
                   Tierra:    hfss.assign_perfecte_to_sheets(...)

[6] Configuración del solver     →  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] Resolver          →  hfss.analyze(setup="Setup1", cores=8)   # Bloqueante
                    O hfss.analyze_setup("Setup1")

[8] Postprocesamiento        →  S parámetros: hfss.post.get_solution_data("S(1,1)")
                   Campo lejano:  hfss.insert_infinite_sphere(...)
                          hfss.post.get_far_field_data(...)
                   Exportar:  data.export_data_to_csv("xxx.csv")

[9] Finalización          →  hfss.save_project()
                   hfss.release_desktop(close_projects=False, close_desktop=True)
                   ¡Si no se libera, la licencia quedará ocupada permanentemente!

Cómo usar este skill

Cuando te enfrentas a una tarea de simulación de antena/RF por primera vez

  1. Primero lee references/environment-setup.md — averigua qué versión de AEDT tiene la máquina del usuario, qué versión de Python, y si es necesario instalar pyaedt. Si no está claro, ejecuta scripts/check_env.py.
  2. Luego lee references/antenna-workflow.md — es la versión "ampliada" del hilo principal anterior, con explicaciones detalladas de la API y parámetros comunes para cada paso.
  3. Antes de que ocurra un error, echa un vistazo a references/common-pitfalls.md — el 80 % de los problemas de "no conecta / no se ejecuta / resultado incorrecto" están listados aquí.

Al escribir código

Ve a templates/ y elige la plantilla más cercana a la tarea, cópiala completa y modifícala:

Tipo de tareaPlantilla
Proyecto único, barrido S11/S21 mono/multifrecuenciatemplates/sparam_extraction.py
Patrón de campo lejano, ganancia, eficiencia de radiación, patrón 3Dtemplates/far_field_pattern.py
Barrido de parámetros geométricos/de material, extracción de múltiples resultadostemplates/parametric_sweep.py

Las plantillas son scripts ejecutables de forma independiente, exponen en la parte superior parámetros como PROJECT_PATH / DESIGN_NAME / FREQ_*. Primero modifica la parte superior, luego la parte de geometría/fronteras.

Principios clave

  • Primero pequeño, luego grande: la primera vez que ejecutes cualquier script, establece MaximumPasses de la malla en 3-5, puntos de barrido en 21, primero prueba que el pipeline funcione y luego refina. Hacer todo de una vez puede hacerte perder horas.
  • Siempre release_desktop: no liberar la licencia = error en el próximo inicio. Envuelve el final del script con try/finally.
  • non_graphical por defecto True: a menos que necesites ver la geometría/depurar, no abras la GUI, ahorra memoria y permite ejecución en paralelo.
  • Usa rutas absolutas: las rutas relativas pueden no apuntar al directorio que esperas dentro del proceso de AEDT.
  • Prioriza las variables: cualquier dimensión que "pueda cambiar", créala como variable, no la escribas como literal, de lo contrario tendrás que reescribir el barrido paramétrico más tarde.

Instalar pyaedt (si aún no está instalado)

# Combinación recomendada (2025 R2 / 2026 R1)
pip install pyaedt

# Para AEDT antiguo, usa pyaedt antiguo (consulta references/environment-setup.md para la correspondencia)
pip install pyaedt==0.17.5     # AEDT 2025 R1
pip install pyaedt==0.13.3     # AEDT 2024 R2

Cosas que no hacer

  • No importes pyaedt directamente — desde la versión 1.0, la recomendación oficial es import ansys.aedt.core as pyaedt o from ansys.aedt.core import Hfss. El código antiguo from pyaedt import Hfss sigue funcionando pero está obsoleto.
  • No uses new_desktop=True si la GUI ya tiene AEDT abierto — abrirá otro proceso, duplicando la licencia. Para reutilizar el escritorio ya abierto, usa new_desktop=False.
  • No esperes AEDT nativo en Mac — AEDT solo se ejecuta en Windows/Linux. En Mac, o te conectas de forma remota a Windows, o usas PyEDB para procesar EDB en lugar de HFSS.
  • No omitas hfss.save_project() — debes guardar antes de release, de lo contrario la próxima vez que abras no encontrarás los cambios.
  • No entregues resultados con MaxDeltaS demasiado holgado (>0.05) — una convergencia insuficiente hará que el S11 que veas sea ruido, no física.

Lista de archivos de referencia

pyaedt-hfss-antenna/
├── SKILL.md                          ← Estás leyendo esto
├── references/
│   ├── environment-setup.md          ← Correspondencia de versiones, instalación, gRPC/COM, licencia
│   ├── antenna-workflow.md           ← Explicación detallada de la API del flujo de trabajo principal
│   └── common-pitfalls.md            ← Errores frecuentes y cómo solucionarlos
├── templates/
│   ├── sparam_extraction.py          ← Barrido de S parámetros
│   ├── far_field_pattern.py          ← Patrón de campo lejano/ganancia
│   └── parametric_sweep.py           ← Barrido paramétrico de variables
└── scripts/
    └── check_env.py                  ← Detecta AEDT/Python/pyaedt en la máquina local

Orden de lectura recomendado: este documento → environment-setup → explicación superior de las plantillas → antenna-workflow (mira según el paso que necesites) → si hay problemas, consulta common-pitfalls.

Individual skills in this repo

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

Skills relacionados