Skip to content

.NET API

ThreeStonesApi

Three Stones ring top (the ArtisanThreeStones tool, headless): one center stone plus two symmetric side stones placed around a finger size — the classic trilogy engagement layout.

from ArtisanPlugin.Scripting import ThreeStonesApi

See also the Python package, ra.three_stones.

Methods

Method
CreateCreates the editable Three Stones group.
EditEdits an existing Three Stones set parametrically, like reopening it in the ArtisanThreeStones panel: objectId is any of its gems (or its finger circle).

Create

IReadOnlyList<Guid> ThreeStonesApi.Create(
    string centerShape,
    double centerCarats,
    string sideShape,
    double sideCarats,
    string centerMaterial = "Diamond",
    string sideMaterial = "Diamond",
    double centerDistance = 4,
    double centerRotation = 0,
    double sideDistance = 3.2,
    double sideAngle = 28,
    double sideRotation = 0,
    double sideRotationY = 25,
    double fingerDiameter = 0)

Creates the editable Three Stones group. The center stone sits at the top of the finger size; the side stones mirror each other at sideAngle degrees to each side, optionally leaning toward the center (sideRotationY). The stones always come from the arguments; the placement starts from the user’s saved Three Stones defaults when there are any (an argument left at its signature default keeps the saved value), otherwise from the tool’s own. fingerDiameter 0 = the document’s finger size. Returns the gem ids as [center, side A, side B] (the group also carries the finger reference circle).

ParameterTypeDefault
centerShapestringrequired
centerCaratsdoublerequired
sideShapestringrequired
sideCaratsdoublerequired
centerMaterialstring"Diamond"
sideMaterialstring"Diamond"
centerDistancedouble4
centerRotationdouble0
sideDistancedouble3.2
sideAngledouble28
sideRotationdouble0
sideRotationYdouble25
fingerDiameterdouble0

Returns IReadOnlyList<Guid>.

Edit

IReadOnlyList<Guid> ThreeStonesApi.Edit(
    Guid objectId,
    double centerDistance = double.NaN,
    double sideDistance = double.NaN,
    double sideAngle = double.NaN,
    double centerRotation = double.NaN,
    double sideRotation = double.NaN,
    double sideRotationY = double.NaN,
    string centerShape = null,
    double centerCarats = double.NaN,
    string centerMaterial = null,
    string sideShape = null,
    double sideCarats = double.NaN,
    string sideMaterial = null,
    double fingerDiameter = double.NaN)

Edits an existing Three Stones set parametrically, like reopening it in the ArtisanThreeStones panel: objectId is any of its gems (or its finger circle). Pass only what changes — NaN / null keep the stored value. The distances are each stone’s height above the ring (“Distance above ring” in the panel): change them to raise or lower the stones, never move the gems directly. A new shape or material keeps the carats unless they are given too. The set is rebaked around the finger size with NEW gem ids, returned as [center, side A, side B]; settings built on the stones (a trilogy, a basket…) are re-pointed to them and flagged for regeneration (coral in the outliner, rebuilt on Refresh).

ParameterTypeDefault
objectIdGuidrequired
centerDistancedoubledouble.NaN
sideDistancedoubledouble.NaN
sideAngledoubledouble.NaN
centerRotationdoubledouble.NaN
sideRotationdoubledouble.NaN
sideRotationYdoubledouble.NaN
centerShapestringnull
centerCaratsdoubledouble.NaN
centerMaterialstringnull
sideShapestringnull
sideCaratsdoubledouble.NaN
sideMaterialstringnull
fingerDiameterdoubledouble.NaN

Returns IReadOnlyList<Guid>.