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

ccCreateConnectorWidthExpressionList

ccCreateConnectorWidthExpressionList(
n_startWidth
n_endWidth
S_taperStyle
o_polyCurve
[ ?startClamp n_startClampLength ]
[ ?endClamp n_endClampLength ]
)
=> l_segmentsWidths

Description

(Virtuoso Photonics Option) Creates a list of curved segments with the corresponding width expressions defining a tapered connector path of the specified tapering style with the specified start and end width around the centerline specified by the input polyCurve.
The segments of the input polyCurve are assumed to be parametrized by the arc length in the same way as the segments created by the connector generation functions ccBendConnector, ccCurveConnector, and ccWaypointConnector.
The tapering width function can optionally be clamped to have zero derivative at either or both the ends of the connector with the length of the clamping regions specified by the specified clamp lengths.

The width function w(t) of the connector is represented by the following equation:

w(t) = f(t) + g(t)

where,

The following is the plot of the function w(t), which is the width of the connector as a function of the arc length:

Arguments

n_startWidth

The start width of the connector.

n_endWidth

The end width of the connector.

S_taperStyle

The taper style of the connector.

Valid values: 'linear, 'exp, 'parabolic, and 'log.

o_polyCurve

A polyCurve specifying the centerline of the connector with the segments parametrized by the arc length.

n_startClampLength

  

Length of the clamping region at the start of the connector.

n_endClampLength

Length of the clamping region at the end of the connector.

Value Returned

l_segmentsWidths

List of polyCurve segments, including the width expressions, defining a tapered connector path of the specified tapering style in the following format:

((o_curve l_transform) t_width))  

where,

o_curve is the ID of a ccCurve object.

l_transform is a transformation object in the following format:

((n_offsetX n_offsetY) n_angle)

where:

n_offsetX and n_offsetY determine the offsets of the X-axis and Y-axis respectively in the format (0,0).

n_angle is the rotation angle.

t_width is the width expression specifying the width of the segment.

Example

c = ccBendConnector('(nil xy (0 0) facet (nil angle 30)) 50 120 20 0.5)
> (nil connector cc@0xda456df6 message "Length=116.804672 MinRadius=37.180082")
s = ccCreateConnectorWidthExpressionList(5 20 'exp c->connector ?startClamp 3.0 ?endClamp 3.0)
> ((cc@0xb1fb573d 
      ((-7.105427e-15 -3.552714e-15) -60.0) "5*exp((0.01186848385793852)*(1*t+(0)))+(0.2021274047854202)*exp(-t/(3))+(-9.0738813184265e-18)*exp(t/(3))+(-0.2021274047854202)+(0.008033382305447485)*t"
    ) 
    (cc@0x722f07af 
      ((43.30127 2.724799) -120.0) "5*exp((0.01186848385793852)*(1*t+(38.93489058117659)))+(4.66898511029175e-07)*exp(-t/(3))+(-3.928220028334695e-12)*exp(t/(3))+(0.1106514562739377)+(0.008033382305447485)*t"
    ) 
    (cc@0xa0bb9ee6 
      ((86.60254 -1.776357e-14) 60.0) "5*exp((0.01186848385793852)*(-1*t+(116.8046717435298)))+(2.49124859626004e-18)*exp(-t/(-3))+(-0.7362091783926537)*exp(t/(-3))+(0.7362091783926537)+(-0.008033382305447485)*t"
    )
 )
ccGenFigs(ccCreatePath(cv "y1" s))
> (db:0x21d0d49b)

Related Topics

ccBendConnector

ccCurveConnector

ccWaypointConnector

Curvy Core Connector Functions


Return to top
 ⠀
X