Skip to content

Commit

Permalink
test #69 done
Browse files Browse the repository at this point in the history
  • Loading branch information
svandenb-dev committed Oct 24, 2024
1 parent 4595b24 commit 55a0ed5
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 22 deletions.
19 changes: 16 additions & 3 deletions src/pyedb/grpc/edb_core/modeler.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,11 @@ def get_primitive_by_layer_and_point(self, point=None, layer=None, nets=None):
list of :class:`pyedb.dotnet.edb_core.edb_data.primitives_data.Primitive`
List of primitives, polygons, paths and rectangles.
"""
from ansys.edb.core.primitive.primitive import Circle as GrpcCircle
from ansys.edb.core.primitive.primitive import Path as GrpcPath
from ansys.edb.core.primitive.primitive import Polygon as GrpcPolygon
from ansys.edb.core.primitive.primitive import Rectangle as GrpcRectangle

if isinstance(layer, str) and layer not in list(self._pedb.stackup.signal_layers.keys()):
layer = None
if not isinstance(point, list) and len(point) == 2:
Expand All @@ -331,14 +336,22 @@ def get_primitive_by_layer_and_point(self, point=None, layer=None, nets=None):
_nets.append(self._pedb.nets[net])
if _nets:
nets = _nets
if not isinstance(layer, list) and layer:
layer = [layer]
_obj_instances = self._pedb.layout_instance.query_layout_obj_instances(
layer_filter=layer, net_filter=nets, spatial_filter=pt
)
returned_obj = []
for inst in _obj_instances:
inst.layout_obj.cast()
if isinstance(inst, Path) or isinstance(inst, Polygon) or isinstance(inst, Rectangle):
returned_obj.append(inst.layout_obj)
primitive = inst.layout_obj.cast()
if isinstance(primitive, GrpcPath):
returned_obj.append(Path(self._pedb, primitive))
elif isinstance(primitive, GrpcPolygon):
returned_obj.append(Polygon(self._pedb, primitive))
elif isinstance(primitive, GrpcRectangle):
returned_obj.append(Rectangle(self._pedb, primitive))
elif isinstance(primitive, GrpcCircle):
returned_obj.append(Circle(self._pedb, primitive))
return returned_obj

@staticmethod
Expand Down
29 changes: 10 additions & 19 deletions tests/grpc/system/test_edb_modeler.py
Original file line number Diff line number Diff line change
Expand Up @@ -533,35 +533,26 @@ def test_287_circuit_ports(self, edb_examples):
assert edbapp.padstacks.pins
edbapp.close()

def rlc_component_302(self):
example_folder = os.path.join(local_path, "example_models", test_subfolder)
source_path_edb = os.path.join(example_folder, "ANSYS-HSD_V1.aedb")
target_path_edb = os.path.join(self.local_scratch.path, "test_create_polygon", "test.aedb")
self.local_scratch.copyfolder(source_path_edb, target_path_edb)
edbapp = Edb(target_path_edb, desktop_version)
def test_rlc_component_302(self, edb_examples):
# TODO bug #451 fixed waiting PR to test
edbapp = edb_examples.get_si_verse()
pins = edbapp.components.get_pin_from_component("C31")
assert edbapp.components.create_rlc_component([pins[0], pins[1]], r_value=0, component_name="TEST")
assert edbapp.siwave.create_rlc_component([pins[0], pins[1]])
assert edbapp.components.create([pins[0], pins[1]], r_value=0, component_name="TEST")
assert edbapp.siwave.create([pins[0], pins[1]])
pl = edbapp.components.get_pin_from_component("B1")
pins = [pl[0], pl[1], pl[2], pl[3]]
assert edbapp.siwave.create_rlc_component(pins, component_name="random")
edbapp.close()

def get_primitives_by_point_layer_and_nets(self):
example_folder = os.path.join(local_path, "example_models", test_subfolder)
source_path_edb = os.path.join(example_folder, "ANSYS-HSD_V1.aedb")
target_path_edb = os.path.join(self.local_scratch.path, "test_create_polygon", "test.aedb")
self.local_scratch.copyfolder(source_path_edb, target_path_edb)
edbapp = Edb(target_path_edb, desktop_version)
primitives = edbapp.modeler.get_primitive_by_layer_and_point(layer="Inner6(GND2)", point=[20e-3, 30e-3])
def test_get_primitives_by_point_layer_and_nets(self, edb_examples):
# Done
edbapp = edb_examples.get_si_verse()
primitives = edbapp.modeler.get_primitive_by_layer_and_point(layer="Inner1(GND1)", point=[20e-3, 30e-3])
assert primitives
assert len(primitives) == 1
assert primitives[0].type == "Polygon"
assert primitives[0].type == "polygon"
primitives = edbapp.modeler.get_primitive_by_layer_and_point(point=[20e-3, 30e-3])
assert len(primitives) == 3
primitives = edbapp.modeler.get_primitive_by_layer_and_point(layer="Inner3(Sig1)", point=[109e3, 16.5e-3])
assert primitives
assert primitives[0].type == "Path"
edbapp.close()

def arbitrary_wave_ports(self):
Expand Down

0 comments on commit 55a0ed5

Please sign in to comment.