RouteAnchors

class RouteAnchors(design, name: str | None = None, options: Dict | None = None, type: str = 'CPW', **kwargs)[source]

Creates and connects a series of anchors through which the Route passes.

QRoute Default Options:
  • pin_inputs: Dict
    • start_pin: Dict – Component and pin string pair. Define which pin to start from
      • component: ‘’ – Name of component to start from, which has a pin

      • pin: ‘’ – Name of pin used for pin_start

    • end_pin=Dict – Component and pin string pair. Define which pin to start from
      • component: ‘’ – Name of component to end on, which has a pin

      • pin: ‘’ – Name of pin used for pin_end

  • fillet: ‘0’

  • lead: Dict
    • start_straight: ‘0mm’ – Lead-in, defined as the straight segment extension from start_pin. Defaults to 0.1um.

    • end_straight: ‘0mm’ – Lead-out, defined as the straight segment extension from end_pin. Defaults to 0.1um.

    • start_jogged_extension: ‘’ – Lead-in, jogged extension of lead-in. Described as list of tuples

    • end_jogged_extension: ‘’ – Lead-out, jogged extension of lead-out. Described as list of tuples

  • total_length: ‘7mm’

  • trace_width: ‘cpw_width’ – Defines the width of the line. Defaults to ‘cpw_width’.

Default Options:
  • anchors: OrderedDict – Intermediate anchors only; doesn’t include endpoints

  • advanced: Dict
    • avoid_collision: ‘false’ – true/false, defines if the route needs to avoid collisions. Defaults to ‘false’.

Initializes all Routes.

Calls the QComponent __init__() to create a new Metal component. Before that, it adds the variables that are needed to support routing.

Parameters:
  • design (QDesign) – The parent design.

  • name (str) – Name of the component. Auto-named if possible.

  • options (dict) – User options that will override the defaults. Defaults to None.

  • type (string) – Supports Route (single layer trace) and CPW (adds the gap around it). Defaults to “CPW”.

Attributes

RouteAnchors.TOOLTIP

RouteAnchors.class_name

the full module name with the class name.

RouteAnchors.component_metadata

Component metadata

RouteAnchors.default_options

Default options

RouteAnchors.design

Return a reference to the parent design object.

RouteAnchors.id

The unique id of component within a design.

RouteAnchors.length

Sum of all segments length, including the head.

RouteAnchors.logger

The Qiskit Metal Logger.

RouteAnchors.name

Name of the component.

RouteAnchors.options

A dictionary of the component-designer-defined options.

RouteAnchors.pin_names

The names of the pins.

RouteAnchors.qgeometry_types

Get a list of the names of the element tables.

RouteAnchors.pins

Dictionary of pins.

RouteAnchors.metadata

Metadata allows a designer to store extra information or analysis results.

RouteAnchors.status

Stores the latest status of the component.

Methods

RouteAnchors.add_dependency(parent, child)

Add a dependency between one component and another.

RouteAnchors.add_pin(name, points, width[, ...])

Adds a pin from two points which are normal/tangent to the intended plane of the pin.

RouteAnchors.add_qgeometry(kind, geometry[, ...])

Add QGeometry.

RouteAnchors.assign_direction_to_anchor(...)

Method to assign a direction to a point.

RouteAnchors.connect_components_already_in_design(...)

WARNING: Do NOT use this method during generation of component instance.

RouteAnchors.connect_simple(start_pt, end_pt)

Try connecting start and end with single or 2-segment/S-shaped CPWs if possible.

RouteAnchors.del_colinear_points(inarray)

Delete colinear points from the given array.

RouteAnchors.delete()

Delete the QComponent.

RouteAnchors.free_manhattan_length_anchors()

Computes the free-flight manhattan distance between start_pt and end_pt passing through all of the given anchor points.

RouteAnchors.get_pin(name)

Interface for components to get pin data.

RouteAnchors.get_points()

Assembles the list of points for the route by concatenating: head_pts + intermediate_pts, tail_pts.

RouteAnchors.get_template_options(design[, ...])

Creates template options for the Metal Component class required for the class to function, based on the design template; i.e., be created, made, and rendered.

RouteAnchors.get_tip()

Access the last element in the QRouteLead.

RouteAnchors.get_unit_vectors(start, end[, snap])

Return the unit and target vector in which the CPW should process as its coordinate sys.

RouteAnchors.length_excess_corner_rounding(points)

Computes how much length to deduce for compensating the fillet settings.

RouteAnchors.make()

Generates path from start pin to end pin.

RouteAnchors.make_elements(pts)

Turns the CPW points into design elements, and add them to the design object.

RouteAnchors.parse_options([options])

Parse the options, converting string into interpreted values.

RouteAnchors.parse_value(value)

Parse a string, mappable (dict, Dict), iterable (list, tuple) to account for units conversion, some basic arithmetic, and design variables.

RouteAnchors.populate_to_track_table_usage()

Use the element_handler to get a list of all the table names used in QGeometry.

RouteAnchors.qgeometry_bounds()

Fetched the component bound dict_value.

RouteAnchors.qgeometry_dict(element_type)

Returns a dict of element qgeometry (shapely geometry) of the component as a python dict, where the dict keys are the names of the qgeometry and the corresponding values are the shapely geometries.

RouteAnchors.qgeometry_list([element_type])

Returns a list of element qgeometry (shapely geometry) of the component as a python list of shapely geometries.

RouteAnchors.qgeometry_plot([ax, plot_kw])

Draw all the qgeometry of the component (polys and path etc.)

RouteAnchors.qgeometry_table(element_type)

Returns the entire element table for the component.

RouteAnchors.rebuild()

Builds the QComponent.

RouteAnchors.set_lead(name)

Defines the lead_extension by adding a point to the self.head/tail.

RouteAnchors.set_lead_extension(name)

Defines the jogged lead_extension by adding a series of turns to the self.head/tail.

RouteAnchors.set_pin(name)

Defines the CPW pins and returns the pin coordinates and normal direction vector.

RouteAnchors.to_script([thin, is_part_of_chip])

param thin:

If true then any key in the QComponent's options whose value

RouteAnchors.trim_pts()

Crops the sequence of points to concatenate.

RouteAnchors.unary_union(geoms)

Returns the union of a sequence of geometries

RouteAnchors.unobstructed(segment)

Check that no component's bounding box in self.design intersects or overlaps a given segment.

RouteAnchors.unobstructed_close_up(segment, ...)

Checks whether the given component's perimeter intersects or overlaps a given segment.