Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/pyedb/dotnet/edb_core/materials.py
Original file line number Diff line number Diff line change
Expand Up @@ -1043,3 +1043,18 @@ def read_syslib_material(self, material_name):

self.__edb.logger.error(f"Material {material_name} does not exist in syslib AMAT file.")
return res

def update_materials_from_sys_library(self, update_all: bool = True, material_name: Union[str, list] = None):
"""Update material properties from syslib AMAT file."""
amat_file = os.path.join(self.__edb.base_path, "syslib", "Materials.amat")
materials_dict = self.read_materials(amat_file)
if update_all:
for name, obj in self.materials.items():
if name in materials_dict:
obj.update(materials_dict[name])
self.__edb.logger.info(f"Material {name} is updated from syslibrary.")
else:
material_names = material_name if isinstance(material_name, list) else [material_name]
for name in material_names:
self.materials[name].update(materials_dict[name])
self.__edb.logger.info(f"Material {name} is updated from syslibrary.")
9 changes: 9 additions & 0 deletions tests/legacy/system/test_edb_materials.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,3 +346,12 @@ def test_materials_load_dielectric_material(self):
assert 0.00045 == material.loss_tangent
assert 0.00045 == material.dielectric_loss_tangent
assert 12 == material.permittivity

def test_update_materials_from_syslib(self, edb_examples):
edbapp = edb_examples.get_si_verse()
edbapp.materials.update_materials_from_sys_library(False, "copper")
assert edbapp.materials["copper"].thermal_conductivity == 400
edbapp.materials["FR4_epoxy"].thermal_conductivity = 1
edbapp.materials.update_materials_from_sys_library()
edbapp.materials["FR4_epoxy"].thermal_conductivity = 0.294
edbapp.close()
Loading