I am trying to run two codes, attached, and receiving the following error messages:
at line 11: if app.ProjectName != project_name:
The first code to generate the antenna:
import os
import win32com.client
# Create an instance of HFSS application
app = win32com.client.Dispatch("AnsoftHfss.HfssScriptInterface")
# Initialize HFSS project and design
project_name = "Dipole_Antenna"
design_name = "Dipole_Design"
if app.ProjectName != project_name:
app.NewProject(project_name)
if app.ActiveDesignName != design_name:
app.InsertDesign("HFSS", design_name)
app.SetActiveDesign(design_name)
design = app.GetActiveDesign()
# Create a new HFSS design setup for the simulation
setup = design.InsertSetup("HfssDrivenModal", "Setup1",
"Frequency", ["GHz", False, 1],
["Max Delta S:=", 0.01, "Use Maximum Delta S:=", False, "Basis Order:=", 1, "Do Lambda Refinement:=", True])
# Create the dipole antenna geometry
wire_radius = 2e-3 # 2 mm in meters
arm_height = 0.5 # Arm height
arm1 = design.DrawCylinder(
[
"NAME:CylinderParameters",
"XCenter:=", "0mm",
"YCenter:=", "0mm",
"ZCenter:=", "-0.25mm",
"Radius:=", f"{wire_radius}m",
"Height:=", f"{arm_height}mm",
"WhichAxis:=", "Z",
"NumSides:=", "0"
],
[
"NAME:Attributes",
"Name:=", "Arm1",
"Flags:=", "",
"Color:=", "(132 0 255)",
"Transparency:=", 0.5,
"PartCoordinateSystem:=", "Global",
"UDMId:=", "",
"MaterialValue:=", "\"vacuum\"",
"SurfaceMaterialValue:=", "\"\"",
"SolveInside:=", True,
"IsMaterialEditable:=", True,
"UseMaterialAppearance:=", False,
"IsLightweight:=", False
])
arm2 = design.DrawCylinder(
[
"NAME:CylinderParameters",
"XCenter:=", "0mm",
"YCenter:=", "0mm",
"ZCenter:=", "0.25mm",
"Radius:=", f"{wire_radius}m",
"Height:=", f"{arm_height}mm",
"WhichAxis:=", "Z",
"NumSides:=", "0"
],
[
"NAME:Attributes",
"Name:=", "Arm2",
"Flags:=", "",
"Color:=", "(132 0 255)",
"Transparency:=", 0.5,
"PartCoordinateSystem:=", "Global",
"UDMId:=", "",
"MaterialValue:=", "\"vacuum\"",
"SurfaceMaterialValue:=", "\"\"",
"SolveInside:=", True,
"IsMaterialEditable:=", True,
"UseMaterialAppearance:=", False,
"IsLightweight:=", False
])
# Create a vacuum region
vacuum = design.CreateRegion(
["NAME:Vacuum",
"RegionPrimitive:=", "Box",
"XStart:=", "-100mm",
"YStart:=", "-100mm",
"ZStart:=", "-100mm",
"XEnd:=", "100mm",
"YEnd:=", "100mm",
"ZEnd:=", "100mm"])
# Assign materials to objects
design.AssignMaterial(
["NAME:Arm1",
"Objects:=", [f"{arm1.GetPath()}"],
"Material:=", "vacuum"])
design.AssignMaterial(
["NAME:Arm2",
"Objects:=", [f"{arm2.GetPath()}"],
"Material:=", "vacuum"])
# Add a driven modal port
port_location = (-arm_height / 2) * 1e-3 # Convert to meters
port_name = "Port1"
port = design.CreateWavePort(
[
"NAME:" + port_name,
"Objects:=", [f"{arm1.GetPath()}"],
"DoDeembed:=", False,
"DoAdapt:=", False,
"Port Name:=", port_name,
"Y0 Position:=", f"{port_location}m",
"Y0 Delta:=", "0.001m",
"Z0 Position:=", "0.001m",
"Z0 Delta:=", "0.001m"
])
# Create an excitation setup
excitation_name = "Excitation"
setup.EditSources(
[
"NAME:" + excitation_name,
"Voltage:=", "1V",
"Do Pattern:=", False,
"Phase:=", "0deg"
])
# Save the project
project_dir = os.path.join(os.getcwd(), "HFSS_Project")
if not os.path.exists(project_dir):
os.makedirs(project_dir)
project_path = os.path.join(project_dir, f"{project_name}.aedt")
app.SaveProjectAs(project_path)
print(f"Project saved at: {project_path}")
The second code to install the antenna on a simple vehicle model
import os
import win32com.client
# Create an instance of HFSS application
app = win32com.client.Dispatch("AnsoftHfss.HfssScriptInterface")
# Initialize HFSS project and design
project_name = "Vehicle_Antenna"
design_name = "Vehicle_Design"
if app.ProjectName != project_name:
app.NewProject(project_name)
if app.ActiveDesignName != design_name:
app.InsertDesign("HFSS", design_name)
app.SetActiveDesign(design_name)
design = app.GetActiveDesign()
# Create a new HFSS design setup for the simulation
setup = design.InsertSetup("HfssDrivenModal", "Setup1",
"Frequency", ["GHz", False, 1],
["Max Delta S:=", 0.01, "Use Maximum Delta S:=", False, "Basis Order:=", 1, "Do Lambda Refinement:=", True])
# Define vehicle dimensions
vehicle_length = 4000 # mm
vehicle_width = 1800 # mm
vehicle_height = 1500 # mm
# Create the vehicle geometry
vehicle = design.DrawBox(
[
"NAME:BoxParameters",
"XPosition:=", "-{0}mm".format(vehicle_length / 2),
"YPosition:=", "-{0}mm".format(vehicle_width / 2),
"ZPosition:=", "0mm",
"XSize:=", "{0}mm".format(vehicle_length),
"YSize:=", "{0}mm".format(vehicle_width),
"ZSize:=", "{0}mm".format(vehicle_height)
],
[
"NAME:Attributes",
"Name:=", "Vehicle",
"Flags:=", "",
"Color:=", "(255 132 132)",
"Transparency:=", 0.5,
"PartCoordinateSystem:=", "Global",
"UDMId:=", "",
"MaterialValue:=", "\"pec\"",
"SurfaceMaterialValue:=", "\"\"",
"SolveInside:=", True,
"IsMaterialEditable:=", True,
"UseMaterialAppearance:=", False,
"IsLightweight:=", False
])
# Create the dipole antenna geometry as before
# ...
# Position the dipole antenna at the center of the vehicle's top surface
antenna_offset = vehicle_height / 2
# Move the antenna to the desired position
arm1.Move(
[
"NAME:All",
"Translate:=", ["0mm", "0mm", f"{antenna_offset}mm"]
])
# Add a driven modal port
# ...
Create an excitation setup
...
Save the project
project_dir = os.path.join(os.getcwd(), "HFSS_Project")
if not os.path.exists(project_dir):
os.makedirs(project_dir)
project_path = os.path.join(project_dir, f"{project_name}.aedt")
app.SaveProjectAs(project_path)
print(f"Project saved at: {project_path}")