Create Layout

This example creates a microstrip layout in a default technology. It adds pins to the design and prepares an RFPro simulation view. It requires that you have a workspace open with a library that does not already have a cell called “cell_lay”.

def create_layout_and_add_pins_to_design_and_run_pro_view(library: de.Library) -> None:
    from keysight.ads import de
    from keysight.ads.de import db_uu

    design = db_uu.create_layout(f"{library.name}:cell_lay:layout")
    layer_id = design.create_layer_id("cond")
    design.add_rectangle(layer_id, (0.0, 0.0), (100.0, 10.0))
    design.add_rectangle(layer_id, (0.0, 20.0), (100.0, 30.0))
    dot = design.add_dot(layer_id, (0.0, 5.0))
    net = design.find_or_add_net("P1")
    term = design.add_term(net, "P1")
    design.add_pin(term, dot)
    dot = design.add_dot(layer_id, (100.0, 5.0))
    net = design.find_or_add_net("P2")
    term = design.add_term(net, "P2")
    design.add_pin(term, dot)
    dot = design.add_dot(layer_id, (0.0, 25.0))
    net = design.find_or_add_net("P3")
    term = design.add_term(net, "P3")
    design.add_pin(term, dot)
    dot = design.add_dot(layer_id, (100.0, 25.0))
    net = design.find_or_add_net("P4")
    term = design.add_term(net, "P4")
    design.add_pin(term, dot)
    design.save_design()

    # de.experimental.create_pro_view won't work in automation mode but will work while running inside ADS
    if de.is_pde_app():
        de.experimental.create_pro_view(
            db_uu.LCVName(f"{library.name}", "cell_lay", "rfpro"),
            "rfpro",
            db_uu.LCVName(f"{library.name}", "cell_lay", "layout"),
            "tech",
        )
On this page