place_in_layout#

Stackup.place_in_layout(edb, angle=0.0, offset_x=0.0, offset_y=0.0, flipped_stackup=True, place_on_top=True)[source]#

Place current Cell into another cell using layer placement method. Flip the current layer stackup of a layout if requested. Transform parameters currently not supported.

Parameters:
edbEdb

Cell on which to place the current layout. If None the Cell will be applied on an empty new Cell.

angledouble, optional

The rotation angle applied on the design.

offset_xdouble, optional

The x offset value.

offset_ydouble, optional

The y offset value.

flipped_stackupbool, optional

Either if the current layout is inverted. If True and place_on_top is True the stackup will be flipped before the merge.

place_on_topbool, optional

Either if place the current layout on Top or Bottom of destination Layout.

Returns:
bool

True when succeed False if not.

Examples

>>> edb1 = Edb(edbpath=targetfile1,  edbversion="2021.2")
>>> edb2 = Edb(edbpath=targetfile2, edbversion="2021.2")
>>> hosting_cmp = edb1.components.get_component_by_name("U100")
>>> mounted_cmp = edb2.components.get_component_by_name("BGA")
>>> vector, rotation, solder_ball_height = edb1.components.get_component_placement_vector(
...                                                     mounted_component=mounted_cmp,
...                                                     hosting_component=hosting_cmp,
...                                                     mounted_component_pin1="A12",
...                                                     mounted_component_pin2="A14",
...                                                     hosting_component_pin1="A12",
...                                                     hosting_component_pin2="A14")
>>> edb2.stackup.place_in_layout(edb1.active_cell, angle=0.0, offset_x=vector[0],
...                              offset_y=vector[1], flipped_stackup=False, place_on_top=True,
...                              )