Source code for qiskit_metal.qlibrary.terminations.open_to_ground
# -*- coding: utf-8 -*-# This code is part of Qiskit.## (C) Copyright IBM 2017, 2021.## This code is licensed under the Apache License, Version 2.0. You may# obtain a copy of this license in the LICENSE.txt file in the root directory# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.## Any modifications or derivative works of this code must retain this# copyright notice, and modified files need to carry a notice indicating# that they have been altered from the originals.fromqiskit_metalimportdraw,Dictfromqiskit_metal.qlibrary.coreimportQComponent
[docs]classOpenToGround(QComponent):"""A sample_shapes open to ground termination. Functions as a pin for auto drawing. Inherits `QComponent` class. .. image:: OpenToGround.png .. meta:: :description: Open to Ground Default Options: * width: '10um' -- The width of the 'cpw' terminating to ground (this is merely for the purpose of generating a value to pass to the pin) * gap: '6um' -- The gap of the 'cpw' * termination_gap: '6um' -- The length of dielectric from the end of the cpw center trace to the ground. Values (unless noted) are strings with units included, (e.g., '30um') """component_metadata=Dict(short_name='term',_qgeometry_table_poly='True')"""Component metadata"""default_options=Dict(width='10um',gap='6um',termination_gap='6um')"""Default connector options"""TOOLTIP="""A basic open to ground termination. """
[docs]defmake(self):"""Build the component."""p=self.p# p for parsed parameters. Access to the parsed options.port_line=draw.LineString([(0,-p.width/2),(0,p.width/2)])open_termination=draw.box(0,-(p.width/2+p.gap),p.termination_gap,(p.width/2+p.gap))# Rotates and translates the connector polygons (and temporary port_line)polys=[open_termination,port_line]polys=draw.rotate(polys,p.orientation,origin=(0,0))polys=draw.translate(polys,p.pos_x,p.pos_y)[open_termination,port_line]=polys# Subtracts out ground plane on the layer its onself.add_qgeometry('poly',{'open_to_ground':open_termination},subtract=True,layer=p.layer)# Generates the pinsself.add_pin('open',port_line.coords,p.width)