Skip to content

Commit

Permalink
Merge branch 'main' into fix/create-chamfer
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuelopez-ansys authored Nov 14, 2024
2 parents 72d5fa8 + aa3f648 commit 7a13a2f
Show file tree
Hide file tree
Showing 8 changed files with 95 additions and 5 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



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
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 @@ -2057,3 +2057,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 7a13a2f

Please sign in to comment.