Skip to content

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:

MemberMeaning
RingSizeLabel / RingSizeRegionRing size as label + region
RingDiameterMmInner diameter, mm
ShankThe band, arms and bridge — IBypassShank
GemsThe 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.

MemberMeaning
ProfileNameRING_PROFILE asset name, "" when unset
UseStationsBuild from Stations instead of the top/bottom gradient
SharedProfileEvery station uses the same profile asset
StationsThe per-station sections — IBypassStation each
TopWidth / TopHeight / BottomWidth / BottomHeightBand sections, mm
ArmAngledegrees
ArmWidth / ArmHeight / ArmTangent / CapDistanceThe arms, mm
TipRotationRoll of the tip about the rail tangent, degrees (signed)
DisplacementHow far the arms pass each other, mm
DisplacementStartRail point where the displacement starts
BridgeEnabled / BridgeAngle / BridgeWidth / BridgeThickness / BridgeDiameterThe 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 / SetBottomHeightmm
SetArmAngle / SetArmWidth / SetArmHeight / SetArmTangent / SetCapDistance
SetTipRotation / SetDisplacement / SetDisplacementStart
SetBridgeEnabled / SetBridgeAngle / SetBridgeWidth / SetBridgeThickness / SetBridgeDiameter

A station (IBypassStation)

MemberMeaning
Position0 = arm tip, 1 = ring bottom
Width / HeightSection at that position, mm
ProfileNameRING_PROFILE asset name, "" when unset

Gems row (IBypassGems)

MemberMeaning
EnabledWhether the row is built
GemShape / GemSizeThe stone template
AngleArc covered by the row from each tip, degrees
MinDistance / Margin / InnerMargin / Vertical / GemInsidePlacement, mm
InnerWidth / InnerHeight / BrightCutInner channel, mm
Gradient / GradientPoints / GradientMiddlePositionStone-size gradient along the row
GemSizeStart / GemSizeMiddle / GemSizeEndGradient sizes, mm
ProngType / ProngHeight"NONE", "SHARED" or "SCALLOPED"
AutomaticProngDiameter / ProngDiameter / ProngGrow / ProngMinDiameterProng sizing, mm
EndProngCount / ProngSpacing / ProngDistanceProng layout
DrillEnabled / DrillType / DrillWidth / DrillHeight / DrillVisible / DrillAllowIntersectionDrills
ExtensionForManufacturingmm
DoubleProngSetting / ScallopRemoveChannelScalloped-setting switches
ScallopGemWidthScallopProngHeightScalloped proportions (percentages, not mm)
SetEnabled, SetGemShape, SetGemSize, SetAngleThe row itself
SetMinDistance, SetMargin, SetInnerMargin, SetVertical, SetGemInsidePlacement
SetInnerWidth, SetInnerHeight, SetBrightCutChannel
SetGradient, SetGradientPoints, SetGradientMiddlePosition, SetGemSizeGradient(start, middle, end)The gradient
SetProngType, SetProngHeight, SetAutomaticProngDiameter, SetProngDiameter, SetProngGrow, SetProngMinDiameter, SetEndProngCount, SetProngSpacing, SetProngDistanceProngs
SetDrillEnabled, SetDrillType, SetDrillWidth, SetDrillHeight, SetDrillVisible, SetDrillAllowIntersectionDrills
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.