Skip to content

Commit

Permalink
Merge branch 'main' into release/0.11
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuelopez-ansys committed Nov 14, 2024
2 parents 4da2891 + aa3f648 commit d5a51a0
Show file tree
Hide file tree
Showing 11 changed files with 115 additions and 13 deletions.
1 change: 0 additions & 1 deletion doc/source/API/Application.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ Available PyAEDT apps are:
ansys.aedt.core.maxwellcircuit.MaxwellCircuit
ansys.aedt.core.emit.Emit
ansys.aedt.core.twinbuilder.TwinBuilder
ansys.aedt.core.filtersolutions.FilterSolutions


All other classes and methods are inherited into the app class.
Expand Down
41 changes: 41 additions & 0 deletions doc/source/API/FilterSolutions.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Filter solutions
==========================
The ``FilterSolutions`` module contains all classes needed to create and edit an object including.


* ``Attributes`` to defines attributes and parameters of filters.
* ``DllInterface`` to interface with the FilterSolutions DLL.
* ``GraphSetup`` to define the frequency and time limits of the exported responses.
* ``IdealResponse`` to return the data for available ideal filter responses.
* ``MultipleBandsTable`` to manipulate access to the entries of multiple bands table.
* ``TransmissionZeros`` to manipulates access to ratio and bandwidth entries in the transmission zeros table.
* ``LumpedTopology`` to define attributes and parameters of filters implemented with lumped topology.
* ``LumpedParasitics`` to define attributes of the lumped element parasitic values.
* ``LumpedNodesandLeads`` to define attributes of the lumped node capacitors and lead inductors.
* ``LumpedTerminationImpedance`` to manipulate access to the entries of source and load complex impedance table.
* ``ExportToAedt`` to define attributes and parameters of the export page for exporting to AEDT.
* ``OptimizationGoalsTable`` to manipulate access to the entries of the optimization goals table.



They are accessible through:


.. currentmodule:: ansys.aedt.core.filtersolutions_core

.. autosummary::
:toctree: _autosummary
:nosignatures:

attributes.Attributes
dll_interface.DllInterface
graph_setup.GraphSetup
ideal_response.IdealResponse
multiple_bands_table.MultipleBandsTable
transmission_zeros.TransmissionZeros
lumped_topology.LumpedTopology
lumped_parasitics.LumpedParasitics
lumped_nodes_and_leads.LumpedNodesandLeads
lumped_termination_impedance_table.LumpedTerminationImpedance
export_to_aedt.ExportToAedt
optimization_goals_table.OptimizationGoalsTable
2 changes: 1 addition & 1 deletion doc/source/API/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Example with ``Desktop`` class implicit initialization:
Configuration
SetupTemplates
CableModeling

FilterSolutions



Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ integrity as well as power integrity analysis.
:width: 800
:alt: Principle of working of Layout UI

Please refer to EDB Configuration `User Guide`_ for details

.. _User Guide: https://edb.docs.pyansys.com/version/stable/examples/use_configuration/index.html

--------------------------------------------------------------------------
A brief description of which options are defined in the configuration file
--------------------------------------------------------------------------
Expand Down Expand Up @@ -83,4 +79,20 @@ Configure design in siwave project

3, Click ``Select and Apply Configuration`` and browse to your configuration files.

4, In the second pop-up window. Specify where to save the new project.
4, In the second pop-up window. Specify where to save the new project.

~~~~~~~~~
Resources
~~~~~~~~~

1, EDB Configuration `User Guide`_ for details

.. _User Guide: https://edb.docs.pyansys.com/version/stable/examples/use_configuration/index.html

2, `Demo video`_

.. _Demo video: https://www.linkedin.com/posts/electronics-simulation_accelerate-hfss-configuration-via-ansys-pyedb-activity-7252325488168177666-ypbN/?utm_source=share&utm_medium=member_desktop

3, `Webinar Automating Signal and Power Integrity workflow with PyAEDT`_

.. _Webinar Automating Signal and Power Integrity workflow with PyAEDT: https://www.ansys.com/webinars/automating-signal-power-integrity-workflow-pyaedt?campaignID=7013g000000Y8uOAAS&utm_campaign=product&utm_content=digital_electronics_oktopost-Ansys+Electronics_oktopost-%25campaign_n&utm_medium=social-organic&utm_source=LinkedIn
2 changes: 1 addition & 1 deletion src/ansys/aedt/core/filtersolutions.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@


class FilterSolutions:
"""Provides the ``FilterSolutions`` application interface.
"""Provides the FilterSolutions application interface.
This class has access to ideal filter attributes and calculated output parameters.
Expand Down
40 changes: 40 additions & 0 deletions src/ansys/aedt/core/modeler/cad/object_3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ def __init__(self, primitives, name=None):
self._surface_material = None
self._color = None
self._wireframe = None
self._material_appearance = None
self._part_coordinate_system = None
self._model = None
self._m_groupName = None
Expand Down Expand Up @@ -1342,6 +1343,45 @@ def display_wireframe(self, fWireframe):
self._change_property(vWireframe)
self._wireframe = fWireframe

@property
def material_appearance(self):
"""Material appearance property of the part.
Returns
-------
bool
``True`` when material appearance is activated for the part, ``False`` otherwise.
References
----------
>>> oEditor.GetPropertyValue
>>> oEditor.ChangeProperty
"""
if self._material_appearance is not None:
return self._material_appearance
if "Material Appearance" in self.valid_properties:
material_appearance = self._oeditor.GetPropertyValue(
"Geometry3DAttributeTab", self._m_name, "Material Appearance"
)
if material_appearance == "true" or material_appearance == "True":
self._material_appearance = True
else:
self._material_appearance = False
return self._material_appearance

@material_appearance.setter
def material_appearance(self, material_appearance):
vMaterialAppearance = [
"NAME:Material Appearance",
"Value:=",
material_appearance,
]

self._change_property(vMaterialAppearance)
self._material_appearance = material_appearance

@pyaedt_function_handler()
def history(self):
"""Object history.
Expand Down
6 changes: 5 additions & 1 deletion src/ansys/aedt/core/modeler/cad/primitives.py
Original file line number Diff line number Diff line change
Expand Up @@ -6311,7 +6311,11 @@ def update_geometry_property(self, assignment, name=None, value=None):
"solve_inside": {"property_name": "Solve Inside", "reset_attr": ["_solve_inside"]},
"color": {"property_name": "Color", "reset_attr": ["_color"]},
"transparency": {"property_name": "Transparent", "reset_attr": ["_transparency"]},
"part_coordinate_system": {"property_name": "Orientation", "reset_attr": ["_part_coordinate_system"]},
"part_coordinate_system": {
"property_name": "Orientation",
"reset_attr": ["_part_coordinate_system"],
},
"material_appearance": {"property_name": "Material Appearance", "reset_attr": ["_material_appearance"]},
}

# Check if property name is valid
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ def main():
# Get AEDT version
version_short = oDesktop.GetVersion()[2:6].replace(".", "")
# Launch extension manager
python_exe = r"C:\Users\smorais\AppData\Roaming\.pyaedt_env\3_10\Scripts\python.exe"
python_exe = r"##PYTHON_EXE##" % version
# Extensions directory
current_dir = os.path.dirname(os.path.abspath(os.path.realpath(__file__)))
pyaedt_extensions_dir = os.path.normpath(os.path.join(current_dir, r"Lib"))
pyaedt_extensions_dir = os.path.normpath(os.path.join(current_dir, r"##TOOLKIT_REL_LIB_DIR##"))
pyaedt_script = os.path.join(pyaedt_extensions_dir, "extension_manager.py")
# Check if CPython interpreter and AEDT release match
python_exe = pyaedt_utils.sanitize_interpreter_path(python_exe, version_short)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ is_linux = os.name == "posix"
if is_linux:
import subprocessdotnet as subprocess

toolkits_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
toolkits_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))

sys.path.append(toolkits_dir)

Expand Down
2 changes: 1 addition & 1 deletion tests/system/general/test_07_Object3D.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,14 +241,14 @@ def test_07_object_clone_and_get_properties(self):
assert new_object.solve_inside == initial_object.solve_inside
assert new_object.model == initial_object.model
assert new_object.display_wireframe == initial_object.display_wireframe
assert new_object.material_appearance == initial_object.material_appearance
assert new_object.part_coordinate_system == initial_object.part_coordinate_system
assert new_object.transparency == 0.76
assert new_object.color == initial_object.color
assert new_object.bounding_box == initial_object.bounding_box
assert len(new_object.vertices) == 8
assert len(new_object.faces) == 6
assert len(new_object.edges) == 12
assert new_object.display_wireframe == initial_object.display_wireframe
new_object.name = "Properties_Box"
assert not new_object.name == "Properties_Box"

Expand Down
6 changes: 6 additions & 0 deletions tests/system/general/test_08_Primitives3D.py
Original file line number Diff line number Diff line change
Expand Up @@ -2071,3 +2071,9 @@ def test_95_update_geometry_property(self):
self.aedtapp.modeler.update_geometry_property([box2.name], "part_coordinate_system", cs.name)
assert box2.part_coordinate_system == cs.name
assert box1.part_coordinate_system == "Global"

self.aedtapp.modeler.update_geometry_property([box1.name], "material_appearance", True)
assert box1.material_appearance

self.aedtapp.modeler.update_geometry_property([box1.name, box2.name], "material_appearance", True)
assert box2.material_appearance

0 comments on commit d5a51a0

Please sign in to comment.