Python package
ra.trilogy
Three-stone families: trellis, halo, individual, bezel set, east-west.
import rhinoartisan as ra
Wraps ArtisanPlugin.Scripting.TrilogyApi.
Functions
| Function | |
|---|---|
all() | Trilogy handles for every object of this kind in the active document (empty when there is no document). |
by_layer() | Trilogy 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_bezel_set() | Three bezels on a Three Stones (ArtisanTrilogyBezelSet, headless): one bezel per gem, the two sides sharing the center’s parameters unless side_edition (or any side* argument) splits them. |
create_east_west() | Three advanced baskets on a Three Stones (ArtisanTrilogyEastWest, headless). |
create_halo() | Three halos on a Three Stones (ArtisanTrilogyHalo, headless): the side halos share the center’s parameters unless side_edition (or a side* argument) splits them; cut_sides_with_center (default on) fuses the sides into the center halo, cut_by_ring_size trims them flush with the ring. |
create_individual() | One setting per slot on a Three Stones (ArtisanTrilogyIndividual, headless): center_setting / side_setting are TULIP, MARTINI or ADVANCED_BASKET (defaults: tulip in the center, advanced basket — a single rail — on the sides). |
create_trellis() | Trellis gemset on a Three Stones (ArtisanTrilogyTrellis, headless): 4 shank prongs from the side gems down to the ring curve, 4 cross prongs over the center stone and three under-girdle rails. |
find() | The handle for id, or None when the id does not belong to an object of this kind. |
for_gem() | Trilogy handles whose mother gem is gem_id (empty for None). |
selected() | Trilogy handles for the objects of this kind currently selected in the active document. |
ra.trilogy.all()
ra.trilogy.all() -> List[Trilogy]
Trilogy handles for every object of this kind in the active document (empty when there is no document).
ra.trilogy.by_layer()
ra.trilogy.by_layer(layer_name: str) -> List[Trilogy]
Trilogy handles on the layer with the given full path (empty when the layer does not exist).
| Parameter | Type | |
|---|---|---|
layer_name | str | required |
ra.trilogy.count()
ra.trilogy.count() -> int
Number of objects of this kind in the active document.
ra.trilogy.create_bezel_set()
ra.trilogy.create_bezel_set(gem_id=None, gem_ids=None, height=None, width=None, girdle_height=None, girdle_width=None, gem_inside=None, profile=None, support_count=None, side_edition=None, side_height=None, side_width=None, side_girdle_height=None, side_girdle_width=None, cut_by_ring_size=None, cut_by_ring_size_sides=None, element=None) -> TrilogyResult
Three bezels on a Three Stones (ArtisanTrilogyBezelSet, headless): one bezel per gem, the two sides sharing the center’s parameters unless side_edition (or any side* argument) splits them. mm; 0 = the tool/saved default (height 3.8, width 1.5, girdle 0.3 x 1.5). profile names a BEZEL_PROFILE asset; cut_by_ring_size trims the bezels flush with the ring size. Returns the TrilogyResult (ids).
| Parameter | Type | |
|---|---|---|
gem_id | Optional[IdLike] | optional — None = the tool default |
gem_ids | Sequence[IdLike] | optional — None = the tool default |
height | float | optional — None = the tool default |
width | float | optional — None = the tool default |
girdle_height | float | optional — None = the tool default |
girdle_width | float | optional — None = the tool default |
gem_inside | float | optional — None = the tool default |
profile | str | optional — None = the tool default |
support_count | int | optional — None = the tool default |
side_edition | Optional[bool] | optional — None = the tool default |
side_height | float | optional — None = the tool default |
side_width | float | optional — None = the tool default |
side_girdle_height | float | optional — None = the tool default |
side_girdle_width | float | optional — None = the tool default |
cut_by_ring_size | Optional[bool] | optional — None = the tool default |
cut_by_ring_size_sides | Optional[bool] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.trilogy.create_east_west()
ra.trilogy.create_east_west(gem_id=None, gem_ids=None, preset=None, side_preset=None, prong_mode=None, prong_diameter=None, prong_height=None, rail_width=None, rail_height=None, rail_profile=None, side_edition=None, element=None) -> TrilogyResult
Three advanced baskets on a Three Stones (ArtisanTrilogyEastWest, headless). Each basket takes its gem shape’s default prong layout (emerald -> 4 corners, trillion -> 3 vertices…) unless preset / side_preset name another one (ra.advanced_basket.presets names, e.g. PRONG_ROUND_6, or a 1-based index). Sides share the center’s basket when both shapes match; different shapes (or side_edition) give them their own. mm; None = the default. Returns the TrilogyResult.
| Parameter | Type | |
|---|---|---|
gem_id | Optional[IdLike] | optional — None = the tool default |
gem_ids | Sequence[IdLike] | optional — None = the tool default |
preset | str | optional — None = the tool default |
side_preset | str | optional — None = the tool default |
prong_mode | str | optional — None = the tool default |
prong_diameter | float | optional — None = the tool default |
prong_height | float | optional — None = the tool default |
rail_width | float | optional — None = the tool default |
rail_height | float | optional — None = the tool default |
rail_profile | str | optional — None = the tool default |
side_edition | Optional[bool] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.trilogy.create_halo()
ra.trilogy.create_halo(gem_id=None, gem_ids=None, stone_size=None, stone_distance=None, distance_to_gem=None, channel_width=None, channel_height=None, prong_type=None, profile=None, cut_by_ring_size=None, cut_sides_with_center=None, side_edition=None, side_stone_size=None, side_stone_distance=None, side_channel_width=None, side_channel_height=None, ring_curve_id=None, element=None) -> TrilogyResult
Three halos on a Three Stones (ArtisanTrilogyHalo, headless): the side halos share the center’s parameters unless side_edition (or a side* argument) splits them; cut_sides_with_center (default on) fuses the sides into the center halo, cut_by_ring_size trims them flush with the ring. Gems must be halo-friendly (ROUND, CUSHION, EMERALD, OVAL, RADIANT, ASSCHER, PEAR). mm; None = the default (stone 1.2, distance 0.2, channel 1.8 x 1.5). profile = CHANNEL_PROFILE asset. Returns the TrilogyResult (halo stones in StoneIds).
| Parameter | Type | |
|---|---|---|
gem_id | Optional[IdLike] | optional — None = the tool default |
gem_ids | Sequence[IdLike] | optional — None = the tool default |
stone_size | float | optional — None = the tool default |
stone_distance | float | optional — None = the tool default |
distance_to_gem | float | optional — None = the tool default |
channel_width | float | optional — None = the tool default |
channel_height | float | optional — None = the tool default |
prong_type | str | optional — None = the tool default |
profile | str | optional — None = the tool default |
cut_by_ring_size | Optional[bool] | optional — None = the tool default |
cut_sides_with_center | Optional[bool] | optional — None = the tool default |
side_edition | Optional[bool] | optional — None = the tool default |
side_stone_size | float | optional — None = the tool default |
side_stone_distance | float | optional — None = the tool default |
side_channel_width | float | optional — None = the tool default |
side_channel_height | float | optional — None = the tool default |
ring_curve_id | Optional[IdLike] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.trilogy.create_individual()
ra.trilogy.create_individual(gem_id=None, gem_ids=None, center_setting=None, side_setting=None, center_rotation=None, side_rotation=None, tulip_prongs=None, rail_profile=None, scale_setting_to_gem=None, ring_curve_id=None, element=None) -> TrilogyResult
One setting per slot on a Three Stones (ArtisanTrilogyIndividual, headless): center_setting / side_setting are TULIP, MARTINI or ADVANCED_BASKET (defaults: tulip in the center, advanced basket — a single rail — on the sides). center_rotation / side_rotation spin each setting about its gem (degrees; default 45 for a ROUND center, 0 otherwise); tulip_prongs 4 or 6. Returns the TrilogyResult.
| Parameter | Type | |
|---|---|---|
gem_id | Optional[IdLike] | optional — None = the tool default |
gem_ids | Sequence[IdLike] | optional — None = the tool default |
center_setting | str | optional — None = the tool default |
side_setting | str | optional — None = the tool default |
center_rotation | float | optional — None = the tool default |
side_rotation | float | optional — None = the tool default |
tulip_prongs | int | optional — None = the tool default |
rail_profile | str | optional — None = the tool default |
scale_setting_to_gem | Optional[bool] | optional — None = the tool default |
ring_curve_id | Optional[IdLike] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.trilogy.create_trellis()
ra.trilogy.create_trellis(gem_id=None, gem_ids=None, shank_prong_diameter=None, cross_prong_diameter=None, rail_width=None, rail_height=None, rail_under_girdle=None, center_rail=None, side_rails=None, curve_vertical_separation=None, side_rail_edition=None, side_rail_width=None, side_rail_height=None, ring_curve_id=None, element=None) -> TrilogyResult
Trellis gemset on a Three Stones (ArtisanTrilogyTrellis, headless): 4 shank prongs from the side gems down to the ring curve, 4 cross prongs over the center stone and three under-girdle rails. The ring curve is the set’s finger circle, ring_curve_id (must sit below the gems) or a circle at the document size. mm; None = the default (prongs 1.05, rail 1.0 x 0.9, under girdle 1.45). Returns the TrilogyResult.
| Parameter | Type | |
|---|---|---|
gem_id | Optional[IdLike] | optional — None = the tool default |
gem_ids | Sequence[IdLike] | optional — None = the tool default |
shank_prong_diameter | float | optional — None = the tool default |
cross_prong_diameter | float | optional — None = the tool default |
rail_width | float | optional — None = the tool default |
rail_height | float | optional — None = the tool default |
rail_under_girdle | float | optional — None = the tool default |
center_rail | Optional[bool] | optional — None = the tool default |
side_rails | Optional[bool] | optional — None = the tool default |
curve_vertical_separation | float | optional — None = the tool default |
side_rail_edition | Optional[bool] | optional — None = the tool default |
side_rail_width | float | optional — None = the tool default |
side_rail_height | float | optional — None = the tool default |
ring_curve_id | Optional[IdLike] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.trilogy.find()
ra.trilogy.find(id: IdLike) -> Trilogy
The handle for id, or None when the id does not belong to an object of this kind.
| Parameter | Type | |
|---|---|---|
id | IdLike | required |
ra.trilogy.for_gem()
ra.trilogy.for_gem(gem_id: IdLike) -> List[Trilogy]
Trilogy handles whose mother gem is gem_id (empty for None).
| Parameter | Type | |
|---|---|---|
gem_id | IdLike | required |
ra.trilogy.selected()
ra.trilogy.selected() -> List[Trilogy]
Trilogy 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().
Trilogy (handle)
The five Trilogy settings (bezel set, east-west, halo, individual, trellis) dressed over a Three Stones.
| Property | Type | Settable | |
|---|---|---|---|
center_gem_id | str | ||
layer_name | str | ||
member_count | int | Rhino objects in the group | |
mother_gem_id | str | ||
object_type | str | ||
parameters_json | str | the kernel model, as stored in the group | |
position | Point3d | ||
ring_curve_id | str | ||
side_a_gem_id | str | ||
side_b_gem_id | str | ||
style | str | BEZEL_SET | EAST_WEST | HALO | INDIVIDUAL | TRELLIS |
| Method | |
|---|---|
delete() | |
get_parameter(path: str) -> str | dotted JSON path; None when absent |
move(translation: VectorLike) | |
regenerate() | |
set_element(element: str) | Applies a saved element of this trilogy’s own style (ra.elements.list (“TrilogyHalo”) for a HALO…) in place: the gems stay, a preset of another style is rejected, and the trilogy regenerates (same id). |
set_parameter(path: str, value: str) | 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).