Python package
ra.eternity
Eternity bands with stones all around.
import rhinoartisan as ra
Wraps ArtisanPlugin.Scripting.EternityApi.
Functions
| Function | |
|---|---|
all() | Eternity handles for every object of this kind in the active document (empty when there is no document). |
by_layer() | Eternity 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 eternity ring (the ArtisanEternity tool, headless): a band with gems all around, at the document’s finger size. |
find() | The handle for id, or None when the id does not belong to an object of this kind. |
selected() | Eternities currently selected in the active doc. |
ra.eternity.all()
ra.eternity.all() -> List[Eternity]
Eternity handles for every object of this kind in the active document (empty when there is no document).
ra.eternity.by_layer()
ra.eternity.by_layer(layer_name: str) -> List[Eternity]
Eternity handles on the layer with the given full path (empty when the layer does not exist).
| Parameter | Type | |
|---|---|---|
layer_name | str | required |
ra.eternity.count()
ra.eternity.count() -> int
Number of objects of this kind in the active document.
ra.eternity.create()
ra.eternity.create(gem_size=None, gem_shape=None, shank_width=None, shank_height=None, finger_diameter=None, profile=None, plane=None, element=None) -> Eternity
Builds an eternity ring (the ArtisanEternity tool, headless): a band with gems all around, at the document’s finger size. Standalone — no mother gem or curve needed. Millimetres; omitting keeps the tool default (or the user’s saved defaults): gem_size ~2 (round diamonds), shank_width 2.25, shank_height 1.5. gem_shape accepts GemShape names (default ROUND). finger_diameter 0 = the document’s finger size. plane omitted = world XY. profile picks a RING_PROFILE asset by name for the shank; omitted = the default profile. Returns an Eternity handle to the new ring group. element = name of a saved element (ra.elements.list) to start from; explicit arguments override it.
| Parameter | Type | |
|---|---|---|
gem_size | float | optional — None = the tool default |
gem_shape | str | optional — None = the tool default |
shank_width | float | optional — None = the tool default |
shank_height | float | optional — None = the tool default |
finger_diameter | float | optional — None = the tool default |
profile | str | optional — None = the tool default |
plane | Optional[PlaneLike] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.eternity.find()
ra.eternity.find(id: IdLike) -> Eternity
The handle for id, or None when the id does not belong to an object of this kind.
| Parameter | Type | |
|---|---|---|
id | IdLike | required |
ra.eternity.selected()
ra.eternity.selected() -> List[Eternity]
Eternities currently selected in the active doc.
Handles
Objects returned by the functions above. Assigning a settable property regenerates the object; the change is one undo step inside ra.transaction().
Eternity (handle)
Eternity ring: a band with gems all around. Multiple gems, so no single MotherGem.
| Property | Type | Settable | |
|---|---|---|---|
bezels | EternityBezels | ||
gems | EternityGems | Parameter sections — each is a live view over the ring’s stored parameters; their setters regenerate the ring in place (same Guid) and call LicenseGate.RequireValid() first. Millimetres. | |
layer_name | str | ||
mother_gem_id | str | ||
object_type | str | ||
position | Point3d | ||
prongs | EternityProngs | ||
ring_diameter_mm | float | ||
ring_size_label | str | e.g. “6”, “M” | |
ring_size_region | str | e.g. “US”, “EU” | |
shank | EternityShank |
| Method | |
|---|---|
delete() | |
move(translation: VectorLike) | |
set_element(element: str) | Applies a saved Eternity element (ra.elements.list(“Eternity”)) 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).
EternityBezels (section)
The bezel rails wrapping the stone row.
| Property | Type | Settable | |
|---|---|---|---|
bottom_rail | EternityRail | ||
profile_shape | str | yes | ”ROUND” or “SQUARE” |
rail_mode | str | yes | ”SINGLE” or “DOUBLE” |
rail_shape | str | yes | ”ROUND”, “RECTANGLE” or “OVAL” |
remove_finger | bool | yes | |
top_rail | EternityRail |
EternityGems (section)
The stones that run around the band.
| Property | Type | Settable | |
|---|---|---|---|
carat_weight | float | yes | |
distribution | str | yes | ”FULL”, “HALF”, “THREEQUARTERS”, “FIVESTONES”, “SEVENSTONES”, “NINESTONES” |
material | str | yes | ”Diamond”, “Ruby”, … |
min_distance | float | yes | minimum distance between stones, mm |
move_in_z | float | yes | radial displacement of the stone row, mm |
orientation | str | yes | ”NATURAL” or “ROTATED” |
shape | str | yes | ”ROUND”, “PRINCESS”, … |
size_x | float | mm | |
size_y | float | mm | |
size_z | float | mm |
| Method | |
|---|---|
set_size(size_x: float, size_y: float, size_z: float) |
EternityProngs (section)
The prongs holding the stones.
| Property | Type | Settable | |
|---|---|---|---|
bottom_diameter | float | yes | mm |
bottom_distance | float | yes | mm |
distribution | str | yes | ”SHARED” or “INDIVIDUAL_FOR_EACH_GEM” |
expansion_manufacturing | float | yes | mm |
height_over_girdle | float | yes | mm |
individual_bottom_distance | float | yes | mm — used when Distribution is individual |
individual_top_distance | float | yes | mm — used when Distribution is individual |
mode | str | yes | ”STRAIGHT” or “CURVED” |
top_diameter | float | yes | mm |
top_distance | float | yes | mm |
EternityShank (section)
The band: an upper and a lower half plus the caps where they meet.
| Property | Type | Settable | |
|---|---|---|---|
ending_cap | float | yes | mm |
lower | EternityShankParams | ||
starting_cap | float | yes | mm |
upper | EternityShankParams |
EternityRail (section)
One of the two rails that form the bezel around the stones.
| Property | Type | Settable | |
|---|---|---|---|
diameter | float | yes | mm |
height | float | yes | mm |
move_in_z | float | yes | mm |
thread_diameter | float | yes | mm |
thread_x | float | mm | |
thread_y | float | mm | |
width | float | yes | mm |
| Method | |
|---|---|
set_thread(x: float, y: float) |
EternityShankParams (section)
One of the two band halves (upper / lower) of an eternity ring.
| Property | Type | Settable | |
|---|---|---|---|
height | float | yes | mm |
height_comfort | float | yes | mm |
profile_name | str | RING_PROFILE asset name, "" when unset | |
profile_orientation | int | yes | 0 = Natural, 1 = Reverse |
profile_thickness | float | yes | mm |
profile_type | int | yes | |
type | str | yes | ”SOLID”, “COMFORT” or “THICKNESS” |
width | float | yes | mm |
| Method | |
|---|---|
set_profile(asset_name: str) | RING_PROFILE asset by name — list them with ra.assets.list(“RING_PROFILE”) |