Maxwell 3D segmentation#
This example shows how to use the Magnet Segmentation Toolkit to segment your AEDT motor model.
Perform required imports#
Perform required imports.
[1]:
import os
import shutil
import tempfile
from ansys.aedt.toolkits.common.utils import download_file
from ansys.aedt.toolkits.magnet_segmentation.backend.api import ToolkitBackend
Initialize temporary folder and project settings#
Initialize a temporary folder to copy the input file into and specify project settings.
[2]:
URL_BASE = "https://raw.githubusercontent.com/ansys/example-data/master/toolkits/magnet_segmentation/"
AEDT_PROJECT = "e9_eMobility_IPM_3D"
URL = os.path.join(URL_BASE, AEDT_PROJECT + ".aedt")
temp_dir = tempfile.TemporaryDirectory(suffix=".ansys")
active_project = os.path.join(temp_dir.name, AEDT_PROJECT + ".aedt")
download_file(URL, active_project)
active_design = "e9_eMobility_IPM_3D_test"
Initialize toolkit#
Initialize the toolkit.
[3]:
toolkit = ToolkitBackend()
Get toolkit properties#
Get the toolkit properties.
[4]:
properties = toolkit.get_properties()
Initialize properties#
Initialize a dictionary of properties.
[5]:
properties["aedt_version"] = "2025.1"
properties["active_project"] = AEDT_PROJECT
properties["active_design"] = active_design
properties["design_list"] = {AEDT_PROJECT: [active_design]}
properties["is_skewed"] = False
properties["rotor_material"] = "M250-35A_20C"
properties["stator_material"] = "M250-35A_20C"
properties["magnets_material"] = "N30UH_65C"
properties["magnet_segments_per_slice"] = 2
properties["rotor_slices"] = 2
properties["apply_mesh_sheets"] = False
# properties["mesh_sheets_number"] = 3
properties["skew_angle"] = "2deg"
Set non-graphical mode#
Set non-graphical mode. The default value is False
.
[6]:
properties["non_graphical"] = False
Set properties#
Set properties.
[7]:
toolkit.set_properties(properties)
INFO - Updating internal properties.
[7]:
(True, 'Properties were updated successfully.')
Initialize AEDT#
Launch a new AEDT session.
[8]:
toolkit.launch_aedt()
INFO - AEDT is released.
[8]:
True
Open project#
Open the project.
[9]:
toolkit.open_project(active_project)
INFO - Updating internal properties.
INFO - AEDT is released.
[9]:
True
Connect design#
Connect or create a new design.
[10]:
toolkit.connect_design()
INFO - Toolkit is connected to AEDT design.
[10]:
True
Apply segmentation#
Apply segmentation and assign the relative coordinate system.
[11]:
toolkit.segmentation()
INFO - AEDT is released.
INFO - Toolkit is connected to AEDT design.
INFO - Updating internal properties.
INFO - Updating internal properties.
INFO - AEDT is released.
[11]:
True
Apply skew angle#
Apply the skew angle to rotor slices.
[12]:
toolkit.apply_skew()
INFO - Toolkit is connected to AEDT design.
INFO - AEDT is released.
[12]:
True
Validate and analyze design#
Uncomment the line to validate and analyze the design.
toolkit.validate_and_analyze()
Create magnet loss report#
Uncomment the lines to create magnet loss report and compute average value.
magnet_loss = toolkit.get_magnet_loss() print(f”Average magnet loss: {magnet_loss} W”)
Save and release AEDT#
Save and release AEDT.
toolkit.save_project()
[13]:
toolkit.release_aedt(True, True)
INFO - AEDT is released.
[13]:
True
Remove temporary folder#
Remove the temporary folder.
[14]:
shutil.rmtree(temp_dir.name, ignore_errors=True)