Skip to content

Python package

ra.anniversary

Anniversary bands - a plain band with a row of touching bezel-set stones along the top (the ArtisanAnniversary tool).

import rhinoartisan as ra

Wraps ArtisanPlugin.Scripting.AnniversaryApi.

Functions

Function
all()Anniversary handles for every object of this kind in the active document (empty when there is no document).
by_layer()Anniversary handles on the layer with the given full path (empty when the layer does not exist).
count()Number of objects of this kind in the active document.
create()Builds an anniversary band — the ArtisanAnniversary tool, headless.
find()The handle for id, or None when the id does not belong to an object of this kind.
selected()Anniversary handles for the objects of this kind currently selected in the active document.

ra.anniversary.all()

ra.anniversary.all() -> List[Anniversary]

Anniversary handles for every object of this kind in the active document (empty when there is no document).

ra.anniversary.by_layer()

ra.anniversary.by_layer(layer_name: str) -> List[Anniversary]

Anniversary handles on the layer with the given full path (empty when the layer does not exist).

ParameterType
layer_namestrrequired

ra.anniversary.count()

ra.anniversary.count() -> int

Number of objects of this kind in the active document.

ra.anniversary.create()

ra.anniversary.create(finger_diameter=None, distribution=None, size_distribution=None, shape=None, material=None, stone_size=None, center_stone_size=None, side_stone_size=None, elevation=None, drill=None, top_width=None, top_height=None, bottom_width=None, bottom_height=None, profile=None, interior=None, bezel_profile=None, bezel_gem_inside=None, plane=None, element=None) -> Anniversary

Builds an anniversary band — the ArtisanAnniversary tool, headless. Millimetres; omitting keeps the tool default (or the user’s saved defaults): top profile 1.8 x 1.6 (under the stones), bottom profile 2.0 x 1.5 (the back). finger_diameter 0 = the document’s finger size. profile picks a RING_PROFILE asset by name for both sections; interior SOLID or COMFORT (both sections). The stones sit in bezel cups that touch each other and ARE the ring there (no band under them). distribution, as Eternity: HALF (default), THREEQUARTERS (as many cups as fit in that share of the ring), FULL (all round, no band), FIVESTONES, SEVENSTONES or NINESTONES; centred on the top. size_distribution UNIFORM (default, every stone stone_size, 2.0) or GRADUATED (center_stone_size 3.0 in the middle down to side_stone_size 1.8 at both ends); centre / side sizes without a size distribution mean GRADUATED. shape ROUND (default), PRINCESS, RADIANT, OVAL or EMERALD; material a GemCompound name (Diamond default, Ruby, Sapphire…). elevation mm the stones sit above the finger (0.3, NaN keeps it; the cups always run down to the finger and are trimmed by it); drill (default True) seats every stone (it opens the end cups through the band). bezel_profile picks a BEZEL_PROFILE asset by name; bezel_gem_inside mm the lip closes over the stones (NaN keeps it). element = name of a saved Anniversary element (ra.elements.list(“Anniversary”)) to start from; explicit arguments override it. Returns the Anniversary handle.

ParameterType
finger_diameterfloatoptional — None = the tool default
distributionstroptional — None = the tool default
size_distributionstroptional — None = the tool default
shapestroptional — None = the tool default
materialstroptional — None = the tool default
stone_sizefloatoptional — None = the tool default
center_stone_sizefloatoptional — None = the tool default
side_stone_sizefloatoptional — None = the tool default
elevationfloatoptional — None = the tool default
drillOptional[bool]optional — None = the tool default
top_widthfloatoptional — None = the tool default
top_heightfloatoptional — None = the tool default
bottom_widthfloatoptional — None = the tool default
bottom_heightfloatoptional — None = the tool default
profilestroptional — None = the tool default
interiorstroptional — None = the tool default
bezel_profilestroptional — None = the tool default
bezel_gem_insidefloatoptional — None = the tool default
planeOptional[PlaneLike]optional — None = the tool default
elementstroptional — None = the tool default

ra.anniversary.find()

ra.anniversary.find(id: IdLike) -> Anniversary

The handle for id, or None when the id does not belong to an object of this kind.

ParameterType
idIdLikerequired

ra.anniversary.selected()

ra.anniversary.selected() -> List[Anniversary]

Anniversary handles for the objects of this kind currently selected in the active document.

Handles

Objects returned by the functions above. Assigning a settable property regenerates the object; the change is one undo step inside ra.transaction().

Anniversary (handle)

Anniversary band: a row of touching bezel-set stones along the top (a half eternity by default) that is the ring there, and a plain band for the rest; stones all the same size or graduated from the centre. The stones are the ring’s children and are rebuilt with it.

PropertyTypeSettable
bezelsAnniversaryBezels
bottom_profileAnniversaryProfile
layer_namestr
mother_gem_idstr
object_typestr
positionPoint3d
ring_diameter_mmfloat
ring_size_labelstr
ring_size_regionstr
stonesAnniversaryStones
top_profileAnniversaryProfile
Method
delete()
move(translation: VectorLike)
set_element(element: str)Applies a saved Anniversary element (ra.elements.list(“Anniversary”)) to this ring: its parameters replace the current ones, the ring size stays, and the ring regenerates in place (same id).

Plus what every handle has: id, delete(), update(**kwargs), parameters(), equality and hashing by id, and raw (the underlying .NET object).

AnniversaryBezels (section)

The bezel cup round every stone, sized to it from the profile’s proportions.

PropertyTypeSettable
gem_insidefloatyesmm the lip closes over the stone, signed
profile_namestrBEZEL_PROFILE asset name
Method
set_profile(asset_name: str)BEZEL_PROFILE asset by name

AnniversaryProfile (section)

One of the anniversary band’s two sections: Top (under the stones) and Bottom (the back of the ring); the band blends between them.

PropertyTypeSettable
comfortfloatyesmm, the comfort dome’s depth (used when Type is “COMFORT”)
heightfloatyesmm, radial
profile_namestrRING_PROFILE asset name, "" when unset
typestryes”SOLID” or “COMFORT”
widthfloatyesmm, along the finger
Method
set_profile(asset_name: str)RING_PROFILE asset by name

AnniversaryStones (section)

The row of stones along the top, their bezels always touching and forming the ring there (no band under them). Distribution places them as Eternity does: FULL (all round, no band), HALF, THREEQUARTERS, FIVESTONES, SEVENSTONES or NINESTONES, centred on the top. SizeDistribution UNIFORM = every stone StoneSize; GRADUATED = CenterStoneSize in the middle down to SideStoneSize at both ends, symmetric. Sizes are diameters in mm.

PropertyTypeSettable
center_stone_sizefloatmm, GRADUATED: the middle stone
countintstones the ring carries now (its children)
distributionstryes”FULL”, “HALF”, “THREEQUARTERS”, “FIVESTONES”, “SEVENSTONES” or “NINESTONES”
drillboolyesa seat drilled under every stone, through the band
elevationfloatyesmm, how high the stones sit above the finger (the cups always run down to it)
materialstryesgem material (GemCompound name: Diamond, Ruby, Sapphire…)
shapestryesgem shape: ROUND, PRINCESS, RADIANT, OVAL or EMERALD (Eternity’s)
side_stone_sizefloatmm, GRADUATED: the stones at both ends
size_distributionstryes”UNIFORM” or “GRADUATED”
stone_sizefloatyesmm, UNIFORM
Method
set_graduated_sizes(center_stone_size: float, side_stone_size: float)mm, 0.5 or more each; switches to GRADUATED