techCreateWaveguideDef
techCreateWaveguideDef(
d_techFileId
t_name (tx_layer tx_purpose)
l_derivedShapeSpecs
[?minWidth n_minWidth]
[?minBendRadius n_minBendRadius]
[?modeProperties l_modeProperties]
[?maxTaperAngle f_maxTaperAngle]
)
=> d_waveguideDefId / nil
Description
(Virtuoso Photonics Option) Creates a waveguideDef object in the specified technology file and returns the database ID of the object.
Arguments
|
d_techFileId
|
The database ID of the technology file in which the waveguideDef object is to be created.
|
|
t_name
|
The unique name of the new waveguideDef object.
|
|
tx_layer tx_purpose
|
|
|
The layer-purpose pair (LPP) on which the waveguideDef object is to be created.
You can specify the LPP as a list of strings enclosed in double quotes and separated by a space:
list("t_layerName" "t_purposeName")
Alternatively, you can specify a list of integers separated by a space:
list(x_layerNumber x_purposeNumber)
|
|
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.
|
|
?minWidth n_minWidth
|
|
|
The minimum width of the object.
|
|
?minBendRadius n_minBendRadius
|
|
|
The minimum bend radius of the object.
|
|
l_modeProperties
|
The mode properties of the waveguide object as a list in the following format:
list(t_functionName list(t_mode n_index)...)
Here:
-
t_functionName: The name of a SKILL function that returns the mode properties of the waveguide.
-
t_mode
n_index: One of a series of tuples representing modes. Each tuple must be unique in the series and must include a name (a string) and an index (an integer greater than zero).
|
|
f_maxTaperAngle
|
The maximum angle that can be used when tapering a wave guide. A value of 0 indicates that tapering is not allowed. A value of 90 indicates that tapering can be done at a straight angle.
|
Value Returned
|
d_waveguideDefId
|
The database ID of the new waveguideDef object.
|
|
nil
|
The waveguideDef object could not be created, possibly because the technology file does not exist or the specified LPP is invalid.
|
Example
wgDef = techCreateWaveguideDef(tf
"wgDefName"
list("wgLayer" "drawing")
'(
(("NWell" "drawing") enclosure 0.8)
("Active" offset side "both" inner 0.1 outer "outerEnvValue+10")
)
?minWidth 0.6
?minBendRadius 0.2
?modeProperties '("modeFunction" (("mode1" 1) ("mode2" 2)))
)
Creates a waveguideDef object by the name wgDefName on the wgLayer/drawing LPP. The object has a minimum width of 0.6 and a minimum bend radius of 0.2. The mode properties for the waveguide will be returned by the SKILL function named modeFunction. There are two modes, mode1 and mode2, with indexes 1 and 2.
It specifies the following shapes relative to the master shape on the wgLayer/drawing LPP:
-
On the
NWell/drawing LPP, with an enclosure of 0.8. -
On the
Active/drawing LPP, with an offset on both sides. The inner offset is specified as a fixed value and the outer offset as an expression.
Return to top