Note
Go to the end to download the full example code.
Add Harmonic Event to Lifecycle Phase#
This example demonstrates how to launch the Sherlock gRPC service, import a project, create a lifecycle phase, and add a harmonic event to the phase, then properly close the connection.
Description#
Sherlock’s gRPC API allows users to automate workflows such as creating lifecycle phases and adding harmonic events. This script demonstrates how to: - Connect to the Sherlock service. - Import a project. - Create a lifecycle phase. - Add a harmonic event to the lifecycle phase.
The harmonic event can be used for thermal analysis and helps in simulating the effects of various conditions on the board.
import os
from examples.examples_globals import get_sherlock_tutorial_path
from ansys.sherlock.core import LOG, launcher
from ansys.sherlock.core.errors import (
SherlockAddHarmonicEventError,
SherlockCreateLifePhaseError,
SherlockImportProjectZipArchiveError,
)
Connect to Sherlock#
Connect to the Sherlock service and ensure proper initialization.
sherlock = launcher.connect(port=9092, timeout=10)
Delete Project#
Delete the project if it already exists.
try:
sherlock.project.delete_project("Test")
LOG.info("Project deleted successfully.")
except Exception:
pass
Import Tutorial Project#
Import the tutorial project zip archive from the Sherlock tutorial directory.
try:
sherlock.project.import_project_zip_archive(
project="Test",
category="Demos",
archive_file=os.path.join(get_sherlock_tutorial_path(), "Auto Relay Project.zip"),
)
LOG.info("Tutorial project imported successfully.")
except SherlockImportProjectZipArchiveError as e:
LOG.error(f"Error importing project zip archive: {e}")
phase_name = "Life Phase Example"
Create Lifecycle Phase#
Create a new lifecycle phase called “Example” in the “Test” project.
try:
sherlock.lifecycle.create_life_phase(
project="Test",
phase_name=phase_name,
duration=1.5,
duration_units="sec",
num_of_cycles=4.0,
cycle_type="COUNT",
description="Example phase",
)
LOG.info("Lifecycle phase 'Example' created successfully.")
except SherlockCreateLifePhaseError as e:
LOG.error(f"Error creating lifecycle phase: {e}")
Add Harmonic Event to Lifecycle Phase#
Add a harmonic event to the “Example” lifecycle phase.
try:
sherlock.lifecycle.add_harmonic_event(
project="Test",
phase_name=phase_name,
event_name="Event1",
duration=1.5,
duration_units="sec",
num_of_cycles=4.0,
cycle_type="PER MIN",
sweep_rate=5,
orientation="23.45, 34.56",
profile_type="Uniaxial",
load_direction="2,4,5",
description="Harmonic Event Example",
)
LOG.info("Harmonic event 'Event1' added successfully.")
except SherlockAddHarmonicEventError as e:
LOG.error(f"Error adding harmonic event: {str(e)}")