Product Documentation
Virtuoso Studio Design Environment SKILL Reference
Product Version IC23.1, November 2023

phoGenWaveguide

phoGenWaveguide(
o_path
[ ?excludeLayers l_excludeLayers ]
[ ?derivedShapeSpecs l_derivedShapeSpecs ]
)
=> l_paths / nil

Description

(Virtuoso Photonics Option) Generates a list of derived ccShapes for the specified ccPath, using the waveguide definition of the layer-purpose pair of the specified ccPath. The derived shapes on the layers listed in excludeLayers are skipped during the generation. For derived shapes of type offset with inner value, the inner edge of the generated derived shape is coincident with the centerline of the path.

Currently, this function cannot generate derived shapes if at the same time path has variable width and offset or enclosure values in the waveguide definition are not constant.

Arguments

o_path

ID of a ccPath.

l_excludeLayers

List of waveguide layer names to exclude.

list(s_layer...)

l_derivedShapeSpecs

The object shape to be derived from the master shape. A derived shape definition list has the following format:

list((tx_layer | (tx_layer tx_purpose) {['enclosure tn_enclosure] | ['offset ['side "both" | "right" | "left"] ['inner tn_inner] ['outer tn_outer]]}…)

Here:

  • tx_layer: The layer of the derived shape.
  • tx_purpose: The corresponding purpose for the layer. If not specified, the value is set as drawing.
  • The type of the derived shape can be one of the following:
    • enclosure: Centers the shape around the master shape based on the tn_enclosure value specified. By default, the value is nil.
    • offset: Offsets the shape from the master shape. The specification includes one or more of these attributes: side (direction as both, right, or left), inner (offset of the inner edge of the derived shape from the centerline of the master shape), and outer (offset of the outer edge of the derived shape from the edge of the master shape). The default values are both, nil, and nil.

Value Returned

l_shapes

List of the generated ccShape IDs.

list(o_shape...)

nil

An error occurred.

Example

Create a ccPath

arc = ccCreatePath(
    cv "waveguide"
    list(list(ccCreateCurve("cos(t)" "sin(t)" -3.14159265:3.14159265)
              list(0:0 0)
              "0.01")))
=> cc@0x209363e0

Generate a list of ccShapes using the waveguide definition of the waveguide layer. Additionally, exclude the metal layer while generating the list of ccPaths.

phoGenWaveguide(arc ?excludeLayers '("metal"))
=> (cc@0x208b2bc0 cc@0x25c99690)

Related Topics

waveguideTemplates

Photonics Flow Functions


Return to top
 ⠀
X