Modeler#
- class pyedb.grpc.database.modeler.Modeler(p_edb)#
Bases:
objectManages EDB methods for primitives management accessible from Edb.modeler.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", edbversion="2021.2") >>> edb_layout = edbapp.modeler
Overview#
Delete a batch of primitives and update caches. |
|
Retrieve primitive by ID. |
|
Retrieve polygons by layer. |
|
Get primitive at specified point on layer. |
|
Parametrize polygon points based on another polygon. |
|
Create trace path. |
|
Create polygon primitive. |
|
Create rectangle primitive. |
|
Create circle primitive. |
|
Delete primitives by net name(s). |
|
Get primitives with filtering. |
|
Fix circle void clipping issues. |
|
Parametrize trace width. |
|
Unite polygons on layer. |
|
Defeature polygon. |
|
Get layout statistics. |
|
Create bondwire. |
|
Create pin group. |
|
Insert a layout instance into the active layout. |
|
Insert a 3D component placement into the active layout. |
|
Insert a 3D component placement into the active layout. |
|
Insert a layout instance into the active layout. |
Return all primitives indexed first by layer, then by net. |
|
Database object. |
|
Dictionary of layers. |
|
Primitives organized by layer names. |
|
All rectangle primitives. |
|
All circle primitives. |
|
All path primitives. |
|
All polygon primitives. |
Get bounding box of polygon. |
|
Get points defining a polygon. |
|
Add void to shape. |
Get a primitive by name or ID. |
Import detail#
from pyedb.grpc.database.modeler import Modeler
Property detail#
- property Modeler.primitives: list[pyedb.grpc.database.primitive.primitive.Primitive]#
- property Modeler.primitives_by_name#
- property Modeler.primitives_by_net#
- property Modeler.primitives_by_layer#
- property Modeler.primitives_by_layer_and_net: Dict[str, Dict[str, List[pyedb.grpc.database.primitive.primitive.Primitive]]]#
Return all primitives indexed first by layer, then by net.
- Returns:
dictNested dictionary: layer -> net -> list[Primitive]
- property Modeler.db: Any#
Database object.
- Returns:
ansys.edb.core.database.DatabaseDatabase object.
- property Modeler.layers: Dict[str, object]#
Dictionary of layers.
- Returns:
dictDictionary of layers with layer names as keys.
- property Modeler.polygons_by_layer: Dict[str, List[pyedb.grpc.database.primitive.primitive.Primitive]]#
Primitives organized by layer names.
- Returns:
dictDictionary where keys are layer names and values are lists of polygons.
- property Modeler.rectangles: List[pyedb.grpc.database.primitive.rectangle.Rectangle]#
All rectangle primitives.
- Returns:
listList of
pyedb.dotnet.database.edb_data.primitives_data.Rectangleobjects.
- property Modeler.circles: List[pyedb.grpc.database.primitive.circle.Circle]#
All circle primitives.
- Returns:
listList of
pyedb.dotnet.database.edb_data.primitives_data.Circleobjects.
- property Modeler.paths: List[pyedb.grpc.database.primitive.path.Path]#
All path primitives.
- Returns:
listList of
pyedb.dotnet.database.edb_data.primitives_data.Pathobjects.
- property Modeler.polygons: List[pyedb.grpc.database.primitive.polygon.Polygon]#
All polygon primitives.
- Returns:
listList of
pyedb.dotnet.database.edb_data.primitives_data.Polygonobjects.
Method detail#
- Modeler.__getitem__(name: str | int) pyedb.grpc.database.primitive.primitive.Primitive#
Get a primitive by name or ID.
- Parameters:
- Returns:
pyedb.grpc.database.primitive.primitive.PrimitivePrimitive instance if found, None otherwise.
- Raises:
TypeErrorIf name is not str or int.
- Modeler.delete_batch_primitives(prim_list: List[pyedb.grpc.database.primitive.primitive.Primitive]) None#
Delete a batch of primitives and update caches.
- Parameters:
- prim_list
list List of primitive objects to delete.
- prim_list
- Modeler.get_primitive(primitive_id: int, edb_uid=True) pyedb.grpc.database.primitive.primitive.Primitive | None#
Retrieve primitive by ID.
- Modeler.get_polygons_by_layer(layer_name: str, net_list: List[str] | None = None) List[pyedb.grpc.database.primitive.primitive.Primitive]#
Retrieve polygons by layer.
- Modeler.get_primitive_by_layer_and_point(point: List[float] | None = None, layer: str | List[str] | None = None, nets: str | List[str] | None = None) List[pyedb.grpc.database.primitive.primitive.Primitive]#
Get primitive at specified point on layer.
- static Modeler.get_polygon_bounding_box(polygon: pyedb.grpc.database.primitive.primitive.Primitive) List[float]#
Get bounding box of polygon.
- Parameters:
- polygon
pyedb.dotnet.database.edb_data.primitives_data.Primitive Polygon primitive.
- polygon
- Returns:
listBounding box coordinates [min_x, min_y, max_x, max_y].
- static Modeler.get_polygon_points(polygon) List[List[float]]#
Get points defining a polygon.
- Parameters:
- polygon
pyedb.dotnet.database.edb_data.primitives_data.Primitive Polygon primitive.
- polygon
- Returns:
listList of point coordinates.
- Modeler.parametrize_polygon(polygon, selection_polygon, offset_name='offsetx', origin=None) bool#
Parametrize polygon points based on another polygon.
- Parameters:
- polygon
pyedb.dotnet.database.edb_data.primitives_data.Primitive Polygon to parametrize.
- selection_polygon
pyedb.dotnet.database.edb_data.primitives_data.Primitive Polygon used for selection.
- offset_name
str,optional Name of offset parameter.
- origin
list,optional [x, y] origin point for vector calculation.
- polygon
- Returns:
- bool
True if successful, False otherwise.
- Modeler.create_trace(path_list: Iterable[float] | ansys.edb.core.geometry.polygon_data.PolygonData, layer_name: str, width: float = 1, net_name: str = '', start_cap_style: str = 'Round', end_cap_style: str = 'Round', corner_style: str = 'Round') pyedb.grpc.database.primitive.primitive.Primitive | None#
Create trace path.
- Parameters:
- path_list
Iterable List of points [x,y] or [[x, y], …] or [(x, y)…].
- layer_name
str Layer name.
- width
float,optional Trace width.
- net_name
str,optional Associated net name.
- start_cap_style
str,optional Start cap style (“Round”, “Extended”, “Flat”).
- end_cap_style
str,optional End cap style (“Round”, “Extended”, “Flat”).
- corner_style
str,optional Corner style (“Round”, “Sharp”, “Mitered”).
- path_list
- Returns:
pyedb.dotnet.database.edb_data.primitives_data.Pathor boolPath object if created, False otherwise.
- Modeler.create_polygon(points: List[List[float]] | ansys.edb.core.geometry.polygon_data.PolygonData, layer_name: str, voids: List[Any] | None = [], net_name: str = '') pyedb.grpc.database.primitive.primitive.Primitive | None#
Create polygon primitive.
- Parameters:
- Returns:
pyedb.dotnet.database.edb_data.primitives_data.Polygonor boolPolygon object if created, False otherwise.
- Modeler.create_rectangle(layer_name: str, net_name: str = '', lower_left_point: str = '', upper_right_point: str = '', center_point: str = '', width: str | float = '', height: str | float = '', representation_type: str = 'lower_left_upper_right', corner_radius: str = '0mm', rotation: str = '0deg') pyedb.grpc.database.primitive.primitive.Primitive | None#
Create rectangle primitive.
- Parameters:
- layer_name
str Layer name.
- net_name
str,optional Associated net name.
- lower_left_point
list,optional [x,y] lower left point.
- upper_right_point
list,optional [x,y] upper right point.
- center_point
list,optional [x,y] center point.
- width
strorfloat,optional Rectangle width.
- height
strorfloat,optional Rectangle height.
- representation_type
str,optional “lower_left_upper_right” or “center_width_height”.
- corner_radius
str,optional Corner radius with units.
- rotation
str,optional Rotation angle with units.
- layer_name
- Returns:
pyedb.dotnet.database.edb_data.primitives_data.Rectangleor boolRectangle object if created, False otherwise.
- Modeler.create_circle(layer_name: str, x: float | str, y: float | str, radius: float | str, net_name: str = '') pyedb.grpc.database.primitive.primitive.Primitive | None#
Create circle primitive.
- Modeler.get_primitives(net_name: str | None = None, layer_name: str | None = None, prim_type: str | None = None, is_void: bool = False) List[pyedb.grpc.database.primitive.primitive.Primitive]#
Get primitives with filtering.
- Modeler.fix_circle_void_for_clipping() bool#
Fix circle void clipping issues.
- Returns:
- bool
True if changes made, False otherwise.
- Modeler.parametrize_trace_width(nets_name: str | List[str], layers_name: str | List[str] | None = None, parameter_name: str = 'trace_width', variable_value: float | str | None = None) bool#
Parametrize trace width.
- Modeler.unite_polygons_on_layer(layer_name: str | List[str] | None = None, delete_padstack_gemometries: bool = False, net_names_list: List[str] | None = None) bool#
Unite polygons on layer.
- Modeler.defeature_polygon(poly: pyedb.grpc.database.primitive.polygon.Polygon, tolerance: float = 0.001) bool#
Defeature polygon.
- Modeler.get_layout_statistics(evaluate_area: bool = False, net_list: List[str] | None = None) pyedb.grpc.database.utility.layout_statistics.LayoutStatistics#
Get layout statistics.
- Modeler.create_bondwire(definition_name: str, placement_layer: str, width: float | str, material: str, start_layer_name: str, start_x: float | str, start_y: float | str, end_layer_name: str, end_x: float | str, end_y: float | str, net: str, start_cell_instance_name: str | None = None, end_cell_instance_name: str | None = None, bondwire_type: str = 'jedec4') pyedb.grpc.database.primitive.primitive.Primitive | None#
Create bondwire.
- Parameters:
- definition_name
str Bondwire definition name.
- placement_layer
str Placement layer name.
- width
floatorstr Bondwire width.
- material
str Material name.
- start_layer_name
str Start layer name.
- start_x
floatorstr Start x-coordinate.
- start_y
floatorstr Start y-coordinate.
- end_layer_name
str End layer name.
- end_x
floatorstr End x-coordinate.
- end_y
floatorstr End y-coordinate.
- net
str Associated net name.
- start_cell_instance_name
str,optional Start cell instance name.
- end_cell_instance_name
str,optional End cell instance name.
- bondwire_type
str,optional Bondwire type (“jedec4”, “jedec5”, “apd”).
- definition_name
- Returns:
pyedb.dotnet.database.edb_data.primitives_data.Bondwireor boolBondwire object if created, False otherwise.
- Modeler.create_pin_group(name: str, pins_by_id: List[int] | None = None, pins_by_aedt_name: List[str] | None = None, pins_by_name: List[str] | None = None) bool#
Create pin group.
- static Modeler.add_void(shape: pyedb.grpc.database.primitive.primitive.Primitive, void_shape: pyedb.grpc.database.primitive.primitive.Primitive | List[pyedb.grpc.database.primitive.primitive.Primitive]) bool#
Add void to shape.
- Modeler.insert_layout_instance_on_layer(cell_name: str, placement_layer: str, rotation: float | str = 0, x: float | str = 0, y: float | str = 0, place_on_bottom: bool = False, local_origin_x: float | str | None = 0, local_origin_y: float | str | None = 0) Any#
Insert a layout instance into the active layout.
- Parameters:
- cell_name: str
Name of the layout to insert.
- placement_layer: str
Placement Layer.
- scaling
float Scale parameter.
- rotation
floatorstr Rotation angle, specified counter-clockwise in radians.
- mirrorbool
Mirror about Y-axis.
- x
floatorstr X offset.
- y
floatorstr Y offset.
- place_on_bottombool
Whether to place the layout instance on the bottom of the layer.
- local_origin_x: float or str
Local origin X coordinate.
- local_origin_y: float or str
Local origin Y coordinate.
- Modeler.insert_layout_instance_placement_3d(cell_name: str | pyedb.grpc.database.primitive.path.Path, x: float | str = 0.0, y: float | str = 0.0, z: float | str = 0.0, rotation_x: float | str = 0.0, rotation_y: float | str = 0.0, rotation_z: float | str = 0.0, local_origin_x: float | str = 0.0, local_origin_y: float | str = 0.0, local_origin_z: float | str = 0.0) Any#
Insert a 3D component placement into the active layout.
- Parameters:
- cell_name: str
Name of the layout to insert.
- x: float or str
X coordinate.
- y: float or str
Y coordinate.
- z: float or str
Z coordinate.
- rotation_x: float or str
Rotation angle around X-axis, specified counter-clockwise in radians.
- rotation_y: float or str
Rotation angle around Y-axis, specified counter-clockwise in radians.
- rotation_z: float or str
Rotation angle around Z-axis, specified counter-clockwise in radians.
- local_origin_x: float or str
Local origin X coordinate.
- local_origin_y: float or str
Local origin Y coordinate.
- local_origin_z: float or str
Local origin Z coordinate.
- Modeler.insert_3d_component_placement_3d(a3dcomp_path: str | pyedb.grpc.database.primitive.path.Path, x: float | str = 0.0, y: float | str = 0.0, z: float | str = 0.0, rotation_x: float | str = 0.0, rotation_y: float | str = 0.0, rotation_z: float | str = 0.0, local_origin_x: float | str = 0.0, local_origin_y: float | str = 0.0, local_origin_z: float | str = 0.0) Any#
Insert a 3D component placement into the active layout.
- Parameters:
- a3dcomp_path: str or Path
File path to the 3D component.
- x: float or str
X coordinate.
- y: float or str
Y coordinate.
- z: float or str
Z coordinate.
- rotation_x: float or str
Rotation angle around X-axis, specified counter-clockwise in radians.
- rotation_y: float or str
Rotation angle around Y-axis, specified counter-clockwise in radians.
- rotation_z: float or str
Rotation angle around Z-axis, specified counter-clockwise in radians.
- local_origin_x: float or str
Local origin X coordinate.
- local_origin_y: float or str
Local origin Y coordinate.
- local_origin_z: float or str
Local origin Z coordinate.
- Modeler.insert_3d_component_on_layer(a3dcomp_path: str | pyedb.grpc.database.primitive.path.Path, placement_layer: str, rotation: float | str = 0, x: float | str = 0, y: float | str = 0, place_on_bottom: bool = False, local_origin_x: float | str | None = 0, local_origin_y: float | str | None = 0, local_origin_z: float | str | None = 0) Any#
Insert a layout instance into the active layout.
- Parameters:
- a3dcomp_path: str or Path
File path to the 3D component.
- placement_layer: str
Placement Layer.
- rotation
floatorstr Rotation angle, specified counter-clockwise in radians.
- x
floatorstr X offset.
- y
floatorstr Y offset.
- place_on_bottombool
Whether to place the layout instance on the bottom of the layer.
- local_origin_x: float or str
Local origin X coordinate.
- local_origin_y: float or str
Local origin Y coordinate.
- local_origin_z: float or str
Local origin Z coordinate.