Scripting API
IMatchingShank
Returned by MatchingShankApi — a band shaped to sit against an existing ring (the “mother”), so the pair stacks without a gap. Multiple gems, so no single mother gem; the rings it was fitted to are in MotherRingIds. Adds to IParametricObject:
| Member | Meaning |
|---|---|
RingSizeLabel / RingSizeRegion / RingDiameterMm | Ring size |
MotherRingIds | The ring(s) this shank was fitted against |
RingCurveId | The rail it follows, Guid.Empty when built from the ring size |
CurveFromRingSize | Rail generated from the ring size instead of a picked curve |
Metal | e.g. "GOLD_YELLOW_18" |
ProfileName | RING_PROFILE asset name, "" when unset |
ProfileWidth / ProfileHeight | Band section at the top, mm |
BottomWidth / BottomHeight | Band section at the bottom, mm — 0 = same as the top |
NumberOfPoints | Sections used to follow the mother — always even |
Clearance | Gap kept against the mother, mm |
Distance | Axial gap; negative presses the band into the mother, mm |
TopDistance | Extra axial gap at the ring top, fading to 0 at 90 degrees, mm |
InteriorType | "SOLID" or "COMFORT" |
Comfort | mm — used when InteriorType is "COMFORT" |
FlipSide / BothSides | Which side of the mother to build on |
SectionDeltas | Your per-section adjustment, mm |
SectionContactOffsets | What the last computation measured — read-only output |
Gems | The gems row — IMatchingShankGems |
SetProfile(assetName) | RING_PROFILE asset by name |
SetProfileWidth / SetProfileHeight / SetBottomWidth / SetBottomHeight | Band sections, mm |
SetNumberOfPoints(points) | Must be even and >= 2 |
SetClearance / SetDistance / SetTopDistance | The fit, mm |
SetInteriorType / SetComfort | |
SetFlipSide / SetBothSides | |
SetSectionDeltas(deltas) | One value per section, mm |
Every setter regenerates the shank in place (same Guid), re-baking its gems and prongs — and, with BothSides on, both bands.
Gems row (IMatchingShankGems)
| Member | Meaning |
|---|---|
Enabled | Whether the row is built |
GemShape / GemSize | The stone template |
Distribution | "FULL", "SIDE" or "TOP" |
StartAngle / EndAngle | Degrees from the top — used with "SIDE" |
TopAngle | Total arc in degrees — used with "TOP" |
Angle / RowOffset | Row placement |
MinDistance / Margin / InnerMargin / Vertical / GemInside | Placement, mm |
InnerWidth / InnerHeight | Inner channel at the top, mm |
BottomInnerWidth / BottomInnerHeight | At the bottom, mm — 0 = same as the top |
BrightCut | mm |
Gradient / GradientPoints / GradientMiddlePosition | Stone-size gradient |
GemSizeStart / GemSizeMiddle / GemSizeEnd | Gradient sizes, mm |
ProngType / ProngHeight | "NONE", "SHARED" or "SCALLOPED" |
AutomaticProngDiameter / ProngDiameter | Prong sizing |
ProngTopDiameter | mm — 0 = automatic |
ProngBottomDiameter | mm — 0 = same as the top |
ProngGrow / ProngMinDiameter / 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, SetRowOffset | The row itself |
SetDistribution, SetSideAngles(start, end), SetTopAngle | Where the row runs |
SetMinDistance, SetMargin, SetInnerMargin, SetVertical, SetGemInside | Placement |
SetInnerWidth, SetInnerHeight, SetBottomInnerWidth, SetBottomInnerHeight, SetBrightCut | Channel |
SetGradient, SetGradientPoints, SetGradientMiddlePosition, SetGemSizeGradient(start, middle, end) | The gradient |
SetProngType, SetProngHeight, SetAutomaticProngDiameter, SetProngDiameter, SetProngTopDiameter, SetProngBottomDiameter, 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.