47
47
)
48
48
from ansys .edb .core .layer .layer_collection import LayerCollection as GrpcLayerCollection
49
49
from ansys .edb .core .layer .layer_collection import LayerTypeSet as GrpcLayerTypeSet
50
+ from ansys .edb .core .layer .stackup_layer import StackupLayer as GrpcStackupLayer
50
51
from ansys .edb .core .layout .mcad_model import McadModel as GrpcMcadModel
51
52
from ansys .edb .core .utility .transform3d import Transform3D as GrpcTransform3D
52
53
from ansys .edb .core .utility .value import Value as GrpcValue
80
81
class LayerCollection (GrpcLayerCollection ):
81
82
def __init__ (self , pedb , edb_object ):
82
83
super ().__init__ (edb_object .msg )
84
+ self ._layer_collection = edb_object
83
85
self ._pedb = pedb
84
86
85
87
def update_layout (self ):
@@ -106,12 +108,17 @@ def add_layer_top(self, name, layer_type="signal", **kwargs):
106
108
-------
107
109
108
110
"""
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
111
116
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 )
115
122
116
123
def add_layer_bottom (self , name , layer_type = "signal" , ** kwargs ):
117
124
"""Add a layer on bottom of the stackup.
@@ -128,12 +135,17 @@ def add_layer_bottom(self, name, layer_type="signal", **kwargs):
128
135
-------
129
136
130
137
"""
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
133
143
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 )
137
149
138
150
def add_layer_below (self , name , base_layer_name , layer_type = "signal" , ** kwargs ):
139
151
"""Add a layer below a layer.
@@ -152,12 +164,17 @@ def add_layer_below(self, name, base_layer_name, layer_type="signal", **kwargs):
152
164
-------
153
165
154
166
"""
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
157
172
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 )
161
178
162
179
def add_layer_above (self , name , base_layer_name , layer_type = "signal" , ** kwargs ):
163
180
"""Add a layer above a layer.
@@ -176,12 +193,17 @@ def add_layer_above(self, name, base_layer_name, layer_type="signal", **kwargs):
176
193
-------
177
194
178
195
"""
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
181
201
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 )
185
207
186
208
def add_document_layer (self , name , layer_type = "user" , ** kwargs ):
187
209
"""Add a document layer.
0 commit comments