Skip to content

Commit c4acd38

Browse files
FEATURE: Add support for applying primitive snapping to multiple layers
1 parent e5b1354 commit c4acd38

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

src/ansys/edb/core/inner/messages.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,12 @@
113113
)
114114
from ansys.api.edb.v1.polygon_data_pb2 import * # noqa
115115
from ansys.api.edb.v1.port_post_processing_prop_pb2 import PortPostProcessingPropMessage
116-
from ansys.api.edb.v1.refs_pb2 import LayerRefMessage, LayerRefPropertyMessage, NetRefMessage
116+
from ansys.api.edb.v1.refs_pb2 import (
117+
LayerRefMessage,
118+
LayerRefPropertyMessage,
119+
LayerRefsPropertyMessage,
120+
NetRefMessage,
121+
)
117122
from ansys.api.edb.v1.rlc_pb2 import RlcMessage
118123
from ansys.api.edb.v1.simulation_setup_pb2 import MatrixConvergenceEntryMessage
119124
from ansys.api.edb.v1.sparameter_model_pb2 import SParameterModelMessage
@@ -914,6 +919,16 @@ def layer_ref_message(layer):
914919
return LayerRefMessage(id=edb_obj_message(layer.msg))
915920

916921

922+
def layer_refs_message(layer):
923+
"""Convert to a ``LayerRefsMessage`` object."""
924+
if layer is None:
925+
return None
926+
elif isinstance(layer, list):
927+
return [layer_ref_message(l) for l in layer]
928+
else:
929+
return [layer_ref_message(layer)]
930+
931+
917932
def net_ref_message(net):
918933
"""Convert to a ``NetRefMessage`` object."""
919934
if type(net) == str:
@@ -1065,6 +1080,11 @@ def layer_ref_property_message(edb_obj, layer_ref):
10651080
return LayerRefPropertyMessage(edb_obj=edb_obj.msg, layer_ref=layer_ref_message(layer_ref))
10661081

10671082

1083+
def layer_refs_property_message(edb_obj, layer_refs):
1084+
"""Convert to a ``LayerRefsPropertyMessage`` object."""
1085+
return LayerRefsPropertyMessage(edb_obj=edb_obj.msg, layer_refs=layer_refs_message(layer_refs))
1086+
1087+
10681088
def double_property_message(edb_obj, double):
10691089
"""Convert to a ``DoublePropertyMessage`` object."""
10701090
return DoublePropertyMessage(target=edb_obj.msg, value=double)

src/ansys/edb/core/layout/layout.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
def _geometry_simplifications_settings_msg(layout, layer, tol):
1616
"""Create a GeometrySimplificationSettingsMessage."""
1717
return layout_pb2.GeometrySimplificationSettingsMessage(
18-
layout_layer=messages.layer_ref_property_message(layout, layer),
18+
layout_layers=messages.layer_refs_property_message(layout, layer),
1919
tolerance=messages.value_message(tol),
2020
)
2121

@@ -443,7 +443,7 @@ def snap_primitives(self, layer, tol="0.05um", check_connectivity=True):
443443
444444
Parameters
445445
----------
446-
layer : str or :class:`.Layer`
446+
layer : str, :obj:`list` of str or :class:`.Layer`, :obj:`list` of :class:`.Layer`
447447
Layer containing the primitives to be snapped.
448448
tol : :term:`ValueLike`
449449
Tolerance for snapping primitives.

0 commit comments

Comments
 (0)