@@ -281,17 +281,26 @@ def create_regular_polygon(
281
281
return self ._create_object (new_object_name , ** kwargs )
282
282
283
283
@pyaedt_function_handler ()
284
- def create_region (self , pad_percent = 300 , is_percentage = True ):
284
+ def create_region (self , pad_value = 300 , pad_type = "Percentage Offset" , region_name = "Region" , ** kwarg ):
285
285
"""Create an air region.
286
286
287
287
Parameters
288
288
----------
289
- pad_percent : float, str, list of floats or list of str, optional
290
- Same padding is applied if not a list. The default is ``300``.
291
- If a list of floats or strings, interpret as adding ``["+X", "+Y", "-X", "-Y"]`` for XY geometry mode,
292
- and ``["+R", "+Z", "-Z"]`` for RZ geometry mode.
293
- is_percentage : bool, optional
294
- Whether the region definition is a percentage or absolute value. The default is `True``.
289
+ pad_value : float, str, list of floats or list of str, optional
290
+ Padding values to apply. If a list is not provided, the same
291
+ value is applied to all padding directions. If a list of floats
292
+ or strings is provided, the values are
293
+ interpreted as padding for ``["+X", "-X", "+Y", "-Y", "+Z", "-Z"]``.
294
+ pad_type : str, optional
295
+ Padding definition. The default is ``"Percentage Offset"``.
296
+ Options are ``"Absolute Offset"``,
297
+ ``"Absolute Position"``, ``"Percentage Offset"``, and
298
+ ``"Transverse Percentage Offset"``. When using a list,
299
+ different padding types can be provided for different
300
+ directions.
301
+ region_name : str, optional
302
+ Region name. The default is ``None``, in which case the name
303
+ is generated automatically.
295
304
296
305
Returns
297
306
-------
@@ -303,19 +312,35 @@ def create_region(self, pad_percent=300, is_percentage=True):
303
312
304
313
>>> oEditor.CreateRegion
305
314
"""
306
- if not isinstance (pad_percent , list ):
307
- pad_percent = [pad_percent ] * 4
315
+ # backward compatibility
316
+ if kwarg :
317
+ if "is_percentage" in kwarg .keys ():
318
+ is_percentage = kwarg ["is_percentage" ]
319
+ else :
320
+ is_percentage = True
321
+ if kwarg .get ("pad_percent" , False ):
322
+ pad_percent = kwarg ["pad_percent" ]
323
+ pad_value = pad_percent
324
+ if isinstance (pad_value , list ) and len (pad_value ) < 6 :
325
+ pad_value = [pad_value [i // 2 + 3 * (i % 2 )] for i in range (6 )]
326
+ pad_type = ["Absolute Offset" , "Percentage Offset" ][int (is_percentage )]
327
+
328
+ if isinstance (pad_type , bool ):
329
+ pad_type = ["Absolute Offset" , "Percentage Offset" ][int (pad_type )]
330
+
331
+ if not isinstance (pad_value , list ):
332
+ pad_value = [pad_value ] * 4
308
333
if self ._app .design_type == "2D Extractor" or (
309
334
self ._app .design_type == "Maxwell 2D" and self ._app .odesign .GetGeometryMode () == "XY"
310
335
):
311
- if len (pad_percent ) != 4 :
336
+ if len (pad_value ) != 4 :
312
337
self .logger .error ("Wrong padding list provided. Four values have to be provided." )
313
338
return False
314
- pad_percent = [pad_percent [0 ], pad_percent [2 ], pad_percent [1 ], pad_percent [3 ], 0 , 0 ]
339
+ pad_value = [pad_value [0 ], pad_value [2 ], pad_value [1 ], pad_value [3 ], 0 , 0 ]
315
340
else :
316
- if len (pad_percent ) < 3 :
341
+ if len (pad_value ) < 3 :
317
342
self .logger .error ("Wrong padding list provided. Three values have to be provided for RZ geometry." )
318
343
return False
319
- pad_percent = [pad_percent [0 ], 0 , 0 , 0 , pad_percent [1 ], pad_percent [2 ]]
344
+ pad_value = [pad_value [0 ], 0 , 0 , 0 , pad_value [1 ], pad_value [2 ]]
320
345
321
- return self ._create_region (pad_percent , [ "Absolute Offset" , "Percentage Offset" ][ int ( is_percentage )] )
346
+ return self ._create_region (pad_value , pad_type , region_name , region_type = "Region" )
0 commit comments