Skip to content

Python package

ra.three_stones

The classic three-stone layout.

import rhinoartisan as ra

Wraps ArtisanPlugin.Scripting.ThreeStonesApi.

Functions

Function
create()Creates the editable Three Stones group.
edit()Edits an existing Three Stones set parametrically, like reopening it in the ArtisanThreeStones panel: object_id is any of its gems (or its finger circle).

ra.three_stones.create()

ra.three_stones.create(center_shape: str, center_carats: float, side_shape: str, side_carats: float, center_material=None, side_material=None, center_distance=None, center_rotation=None, side_distance=None, side_angle=None, side_rotation=None, side_rotation_y=None, finger_diameter=None) -> List[str]

Creates the editable Three Stones group. The center stone sits at the top of the finger size; the side stones mirror each other at side_angle 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. finger_diameter 0 = the document’s finger size. Returns the gem ids as [center, side A, side B] (the group also carries the finger reference circle).

ParameterType
center_shapestrrequired
center_caratsfloatrequired
side_shapestrrequired
side_caratsfloatrequired
center_materialstroptional — None = the tool default
side_materialstroptional — None = the tool default
center_distancefloatoptional — None = the tool default
center_rotationfloatoptional — None = the tool default
side_distancefloatoptional — None = the tool default
side_anglefloatoptional — None = the tool default
side_rotationfloatoptional — None = the tool default
side_rotation_yfloatoptional — None = the tool default
finger_diameterfloatoptional — None = the tool default

ra.three_stones.edit()

ra.three_stones.edit(object_id: IdLike, center_distance=None, side_distance=None, side_angle=None, center_rotation=None, side_rotation=None, side_rotation_y=None, center_shape=None, center_carats=None, center_material=None, side_shape=None, side_carats=None, side_material=None, finger_diameter=None) -> List[str]

Edits an existing Three Stones set parametrically, like reopening it in the ArtisanThreeStones panel: object_id is any of its gems (or its finger circle). Pass only what changes — NaN / None 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).

ParameterType
object_idIdLikerequired
center_distancefloatoptional — None = the tool default
side_distancefloatoptional — None = the tool default
side_anglefloatoptional — None = the tool default
center_rotationfloatoptional — None = the tool default
side_rotationfloatoptional — None = the tool default
side_rotation_yfloatoptional — None = the tool default
center_shapestroptional — None = the tool default
center_caratsfloatoptional — None = the tool default
center_materialstroptional — None = the tool default
side_shapestroptional — None = the tool default
side_caratsfloatoptional — None = the tool default
side_materialstroptional — None = the tool default
finger_diameterfloatoptional — None = the tool default