WireRibWireWaveguideTransitionFromPortLinear
- class picazzo3.traces.rib_wg.WireRibWireWaveguideTransitionFromPortLinear
- Transition from/to wire (deep etched) to/from ribwire (two-step etched) waveguides. - You can provide a start_port and end_trace_template. - Parameters:
- modified_start_wg_template: PCell and _TraceTemplate
- Modified start waveguide template (using the end_trace_template, but with the dimensions of the start_trace_template) 
- start_port: _PortInterface
- the port on which to extract trace template, position and angle 
- end_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, RibWireWaveguideTemplate
- start_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, RibWireWaveguideTemplate
- name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
- The unique name of the pcell 
 
- Other Parameters:
- reverse_templates: locked
- When True, treat start_trace_template as end_trace_template and vice versa. To use the correct templates, use the _{start/stop}_trace_template properties. This should not be set manually, but calculated by the transition itself. 
 
 - Views - class Layout
- Parameters:
- straight_extension: Coord2 and number >= 0
- tuple: straight extension at start and end of transition 
- length: float and int, float, integer, floating and number >= 0
- length of the transition 
- end_position: Coord2
- end position of the transition 
- start_position: Coord2
- start position of the transition 
- view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.
- The name of the view 
 
 - Examples - """This example shows how to append a transition onto a component. The component has a port, which is associated with a WireWaveguideTemplate, and we want to taper to a RibWireWaveguideTemplate. """ import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from picazzo3.traces.wire_wg import WireWaveguideTemplate from picazzo3.traces.rib_wg import RibWireWaveguideTemplate from picazzo3.traces.rib_wg import WireRibWireWaveguideTransitionFromPortLinear wg_start = WireWaveguideTemplate() wg_start.Layout(core_width=0.45, cladding_width=0.45 + 2 * i3.TECH.WG.TRENCH_WIDTH) wg_end = RibWireWaveguideTemplate() wg_end.Layout(core_width=0.9, strip_width=1.5, cladding_width=0.9 + 2 * i3.TECH.WG.TRENCH_WIDTH) class P(i3.PCell): out_trace_template = i3.TraceTemplateProperty() class Layout(i3.LayoutView): def _generate_ports(self, ports): return i3.OpticalPort(name="out", position=(3.0, 3.0), angle=10.0, trace_template=wg_start) p = P(out_trace_template=wg_start) p.Layout() t = WireRibWireWaveguideTransitionFromPortLinear(start_port=(p, "out"), end_trace_template=wg_end) t_lay = t.Layout(length=15.0, straight_extension=(0.0, 0.2)) t_lay.visualize(annotate=True) 