Skip to content

Commit 2bd0885

Browse files
committed
test #133
1 parent 63da3c3 commit 2bd0885

File tree

2 files changed

+43
-20
lines changed

2 files changed

+43
-20
lines changed

src/pyedb/grpc/database/stackup.py

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
)
4848
from ansys.edb.core.layer.layer_collection import LayerCollection as GrpcLayerCollection
4949
from ansys.edb.core.layer.layer_collection import LayerTypeSet as GrpcLayerTypeSet
50+
from ansys.edb.core.layer.stackup_layer import StackupLayer as GrpcStackupLayer
5051
from ansys.edb.core.layout.mcad_model import McadModel as GrpcMcadModel
5152
from ansys.edb.core.utility.transform3d import Transform3D as GrpcTransform3D
5253
from ansys.edb.core.utility.value import Value as GrpcValue
@@ -80,6 +81,7 @@
8081
class LayerCollection(GrpcLayerCollection):
8182
def __init__(self, pedb, edb_object):
8283
super().__init__(edb_object.msg)
84+
self._layer_collection = edb_object
8385
self._pedb = pedb
8486

8587
def update_layout(self):
@@ -106,12 +108,17 @@ def add_layer_top(self, name, layer_type="signal", **kwargs):
106108
-------
107109
108110
"""
109-
added_layer = self.add_layer_top(name)
110-
added_layer.type = GrpcLayerType.SIGNAL_LAYER
111+
thickness = GrpcValue(0.0)
112+
if "thickness" in kwargs:
113+
thickness = GrpcValue(kwargs["thickness"])
114+
elevation = GrpcValue(0.0)
115+
_layer_type = GrpcLayerType.SIGNAL_LAYER
111116
if layer_type.lower() == "dielectric":
112-
added_layer.type = GrpcLayerType.DIELECTRIC_LAYER
113-
added_layer.name = name
114-
return added_layer
117+
_layer_type = GrpcLayerType.DIELECTRIC_LAYER
118+
layer = GrpcStackupLayer.create(
119+
name=name, layer_type=_layer_type, thickness=thickness, material="copper", elevation=elevation
120+
)
121+
return self._layer_collection.add_layer_top(layer)
115122

116123
def add_layer_bottom(self, name, layer_type="signal", **kwargs):
117124
"""Add a layer on bottom of the stackup.
@@ -128,12 +135,17 @@ def add_layer_bottom(self, name, layer_type="signal", **kwargs):
128135
-------
129136
130137
"""
131-
added_layer = self.add_layer_bottom(name)
132-
added_layer.type = GrpcLayerType.SIGNAL_LAYER
138+
thickness = GrpcValue(0.0)
139+
if "thickness" in kwargs:
140+
thickness = GrpcValue(kwargs["thickness"])
141+
elevation = GrpcValue(0.0)
142+
_layer_type = GrpcLayerType.SIGNAL_LAYER
133143
if layer_type.lower() == "dielectric":
134-
added_layer.type = GrpcLayerType.DIELECTRIC_LAYER
135-
added_layer.name = name
136-
return added_layer
144+
_layer_type = GrpcLayerType.DIELECTRIC_LAYER
145+
layer = GrpcStackupLayer.create(
146+
name=name, layer_type=_layer_type, thickness=thickness, material="copper", elevation=elevation
147+
)
148+
return self._layer_collection.add_layer_bottom(layer)
137149

138150
def add_layer_below(self, name, base_layer_name, layer_type="signal", **kwargs):
139151
"""Add a layer below a layer.
@@ -152,12 +164,17 @@ def add_layer_below(self, name, base_layer_name, layer_type="signal", **kwargs):
152164
-------
153165
154166
"""
155-
added_layer = self.add_layer_below(name, base_layer_name)
156-
added_layer.type = GrpcLayerType.SIGNAL_LAYER
167+
thickness = GrpcValue(0.0)
168+
if "thickness" in kwargs:
169+
thickness = GrpcValue(kwargs["thickness"])
170+
elevation = GrpcValue(0.0)
171+
_layer_type = GrpcLayerType.SIGNAL_LAYER
157172
if layer_type.lower() == "dielectric":
158-
added_layer.type = GrpcLayerType.DIELECTRIC_LAYER
159-
added_layer.name = name
160-
return added_layer
173+
_layer_type = GrpcLayerType.DIELECTRIC_LAYER
174+
layer = GrpcStackupLayer.create(
175+
name=name, layer_type=_layer_type, thickness=thickness, material="copper", elevation=elevation
176+
)
177+
return self._layer_collection.add_layer_below(layer, base_layer_name)
161178

162179
def add_layer_above(self, name, base_layer_name, layer_type="signal", **kwargs):
163180
"""Add a layer above a layer.
@@ -176,12 +193,17 @@ def add_layer_above(self, name, base_layer_name, layer_type="signal", **kwargs):
176193
-------
177194
178195
"""
179-
added_layer = self.add_layer_above(name, base_layer_name)
180-
added_layer.type = GrpcLayerType.SIGNAL_LAYER
196+
thickness = GrpcValue(0.0)
197+
if "thickness" in kwargs:
198+
thickness = GrpcValue(kwargs["thickness"])
199+
elevation = GrpcValue(0.0)
200+
_layer_type = GrpcLayerType.SIGNAL_LAYER
181201
if layer_type.lower() == "dielectric":
182-
added_layer.type = GrpcLayerType.DIELECTRIC_LAYER
183-
added_layer.name = name
184-
return added_layer
202+
_layer_type = GrpcLayerType.DIELECTRIC_LAYER
203+
layer = GrpcStackupLayer.create(
204+
name=name, layer_type=_layer_type, thickness=thickness, material="copper", elevation=elevation
205+
)
206+
return self._layer_collection.add_layer_above(layer, base_layer_name)
185207

186208
def add_document_layer(self, name, layer_type="user", **kwargs):
187209
"""Add a document layer.

tests/grpc/system/test_edb_stackup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,3 +1117,4 @@ def test_19(self, edb_examples):
11171117
base_layer = edbapp.stackup.layers["1_Top"]
11181118
l_id = edbapp.stackup.layers_by_id.index([base_layer.id, base_layer.name])
11191119
assert edbapp.stackup.layers_by_id[l_id - 1][1] == "add_layer_above"
1120+
edbapp.close()

0 commit comments

Comments
 (0)