Scripting API
IBypass
Returned by BypassApi — the bypass shank: two arms that cross past each other instead of meeting. Multiple gems, so no single mother gem. Adds to IParametricObject:
| Member | Meaning |
|---|---|
RingSizeLabel / RingSizeRegion | Ring size as label + region |
RingDiameterMm | Inner diameter, mm |
Shank | The band, arms and bridge — IBypassShank |
Gems | The gems row — IBypassGems |
Both sections are live views over the shank’s stored parameters: their getters read the current values and every setter regenerates the shank in place (same Guid), gems and prongs included.
Band and arms (IBypassShank)
The band can be driven two ways: by the top/bottom gradient, or — with UseStations on — by a list of stations that each set their own section.
| Member | Meaning |
|---|---|
ProfileName | RING_PROFILE asset name, "" when unset |
UseStations | Build from Stations instead of the top/bottom gradient |
SharedProfile | Every station uses the same profile asset |
Stations | The per-station sections — IBypassStation each |
TopWidth / TopHeight / BottomWidth / BottomHeight | Band sections, mm |
ArmAngle | degrees |
ArmWidth / ArmHeight / ArmTangent / CapDistance | The arms, mm |
TipRotation | Roll of the tip about the rail tangent, degrees (signed) |
Displacement | How far the arms pass each other, mm |
DisplacementStart | Rail point where the displacement starts |
BridgeEnabled / BridgeAngle / BridgeWidth / BridgeThickness / BridgeDiameter | The bridge |
SetProfile(assetName) | RING_PROFILE asset by name |
SetUseStations / SetSharedProfile | |
SetStations(stations) | Replace the whole list (at least 2); turns UseStations on |
SetStation(index, position, width, height, profileName=None) | Edit one station in place |
SetTopWidth / SetTopHeight / SetBottomWidth / SetBottomHeight | mm |
SetArmAngle / SetArmWidth / SetArmHeight / SetArmTangent / SetCapDistance | |
SetTipRotation / SetDisplacement / SetDisplacementStart | |
SetBridgeEnabled / SetBridgeAngle / SetBridgeWidth / SetBridgeThickness / SetBridgeDiameter |
A station (IBypassStation)
| Member | Meaning |
|---|---|
Position | 0 = arm tip, 1 = ring bottom |
Width / Height | Section at that position, mm |
ProfileName | RING_PROFILE asset name, "" when unset |
Gems row (IBypassGems)
| Member | Meaning |
|---|---|
Enabled | Whether the row is built |
GemShape / GemSize | The stone template |
Angle | Arc covered by the row from each tip, degrees |
MinDistance / Margin / InnerMargin / Vertical / GemInside | Placement, mm |
InnerWidth / InnerHeight / BrightCut | Inner channel, mm |
Gradient / GradientPoints / GradientMiddlePosition | Stone-size gradient along the row |
GemSizeStart / GemSizeMiddle / GemSizeEnd | Gradient sizes, mm |
ProngType / ProngHeight | "NONE", "SHARED" or "SCALLOPED" |
AutomaticProngDiameter / ProngDiameter / ProngGrow / ProngMinDiameter | Prong sizing, mm |
EndProngCount / ProngSpacing / ProngDistance | Prong layout |
DrillEnabled / DrillType / DrillWidth / DrillHeight / DrillVisible / DrillAllowIntersection | Drills |
ExtensionForManufacturing | mm |
DoubleProngSetting / ScallopRemoveChannel | Scalloped-setting switches |
ScallopGemWidth … ScallopProngHeight | Scalloped proportions (percentages, not mm) |
SetEnabled, SetGemShape, SetGemSize, SetAngle | The row itself |
SetMinDistance, SetMargin, SetInnerMargin, SetVertical, SetGemInside | Placement |
SetInnerWidth, SetInnerHeight, SetBrightCut | Channel |
SetGradient, SetGradientPoints, SetGradientMiddlePosition, SetGemSizeGradient(start, middle, end) | The gradient |
SetProngType, SetProngHeight, SetAutomaticProngDiameter, SetProngDiameter, SetProngGrow, SetProngMinDiameter, SetEndProngCount, SetProngSpacing, SetProngDistance | Prongs |
SetDrillEnabled, SetDrillType, SetDrillWidth, SetDrillHeight, SetDrillVisible, SetDrillAllowIntersection | Drills |
SetExtensionForManufacturing, SetDoubleProngSetting, SetScallopRemoveChannel | |
SetScallopGem(w, h) / SetScallopRail(w, h) / SetScallopProng(w, h) | Scalloped proportions |
String parameters are case-insensitive and tolerate dashes/spaces; an unknown value raises a clear error listing the valid ones.