Skip to content

Python package

ra.hidden_halo

A hidden halo under the centre stone.

import rhinoartisan as ra

Wraps ArtisanPlugin.Scripting.HiddenHaloApi.

Functions

Function
all()HiddenHalo handles for every object of this kind in the active document (empty when there is no document).
by_layer()HiddenHalo 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 a hidden halo — a ring of small stones tucked UNDER an existing gem, facing outward — the ArtisanHiddenHalo tool, headless.
find()The handle for id, or None when the id does not belong to an object of this kind.
for_gem()HiddenHalo handles whose mother gem is gem_id (empty for None).
selected()Hidden halos currently selected in the active doc.

ra.hidden_halo.all()

ra.hidden_halo.all() -> List[HiddenHalo]

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

ra.hidden_halo.by_layer()

ra.hidden_halo.by_layer(layer_name: str) -> List[HiddenHalo]

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

ParameterType
layer_namestrrequired

ra.hidden_halo.count()

ra.hidden_halo.count() -> int

Number of objects of this kind in the active document.

ra.hidden_halo.create()

ra.hidden_halo.create(gem_id: IdLike, stone_size=None, stone_distance=None, channel_width=None, channel_height=None, rail_shape=None, prong_type=None, profile=None, rail_x_length=None, rail_y_length=None, stone_shape=None, distance_to_gem=None, channel_position_z=None, channel_rotation=None, prong_distance=None, force_even_number=None, second_channel=None, second_channel_width=None, second_channel_height=None, second_channel_distance_to_gem=None, second_channel_position_z=None, second_channel_rotation=None, second_channel_profile=None) -> HiddenHalo

Builds a hidden halo — a ring of small stones tucked UNDER an existing gem, facing outward — the ArtisanHiddenHalo tool, headless. gem_id must be a gem in the active document; any center-gem shape works (the rail is parametric, chosen by rail_shape, and does not follow the gem’s outline). Millimetres; omitting keeps the tool default (or the user’s saved defaults): stone_size 1.3, stone_distance 0.15, channel_width 1.4, channel_height 1.5. rail_shape is CIRCLE (default), SQUARE (opens at 5.50 x 5.50) or OVAL (5.50 x 8.70). prong_type is NONE (default), SHARED or SCALLOPED. profile picks a CHANNEL_PROFILE asset by name; omitted = the tool’s “014” channel profile (falling back to the type default). Double hidden halo: second_channel True builds a second channel under the first (same stones and setting, no centre prongs), one channel height lower by default; the second_channel* values size and place it (0 / NaN / None keep the defaults) and any of them implies second_channel True. second_channel False keeps a single channel even when the saved defaults have two. Returns an HiddenHalo handle to the new hidden halo group.

ParameterType
gem_idIdLikerequired
stone_sizefloatoptional — None = the tool default
stone_distancefloatoptional — None = the tool default
channel_widthfloatoptional — None = the tool default
channel_heightfloatoptional — None = the tool default
rail_shapestroptional — None = the tool default
prong_typestroptional — None = the tool default
profilestroptional — None = the tool default
rail_x_lengthfloatoptional — None = the tool default
rail_y_lengthfloatoptional — None = the tool default
stone_shapestroptional — None = the tool default
distance_to_gemfloatoptional — None = the tool default
channel_position_zfloatoptional — None = the tool default
channel_rotationfloatoptional — None = the tool default
prong_distancefloatoptional — None = the tool default
force_even_numberOptional[bool]optional — None = the tool default
second_channelOptional[bool]optional — None = the tool default
second_channel_widthfloatoptional — None = the tool default
second_channel_heightfloatoptional — None = the tool default
second_channel_distance_to_gemfloatoptional — None = the tool default
second_channel_position_zfloatoptional — None = the tool default
second_channel_rotationfloatoptional — None = the tool default
second_channel_profilestroptional — None = the tool default

ra.hidden_halo.find()

ra.hidden_halo.find(id: IdLike) -> HiddenHalo

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

ParameterType
idIdLikerequired

ra.hidden_halo.for_gem()

ra.hidden_halo.for_gem(gem_id: IdLike) -> List[HiddenHalo]

HiddenHalo handles whose mother gem is gem_id (empty for None).

ParameterType
gem_idIdLikerequired

ra.hidden_halo.selected()

ra.hidden_halo.selected() -> List[HiddenHalo]

Hidden halos 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().

HiddenHalo (handle)

PropertyTypeSettable
channel_distance_to_gemfloatyes
channel_heightfloatyes
channel_position_zfloatyessigned
channel_rotationfloatyesdegrees, signed
channel_widthfloatyesThe rail section. Rotation defaults to 90 and PositionZ to 3.4 (positive lowers the halo): together they are what makes the halo “hidden”.
gem_carat_weightfloat
gem_materialstr
gem_shapestr
layer_namestr
mother_gem_idstr
object_typestr
positionPoint3d
prong_distancefloatyes
rail_shapestryesRing shape of the hidden halo rail: “CIRCLE”, “SQUARE” or “OVAL”.
rail_x_lengthfloatExtents of the SQUARE / OVAL rail (ignored by CIRCLE), millimetres.
rail_y_lengthfloat
second_channelboolyesSecond channel under the first (double hidden halo): whether it is built, and its section. Same stones and setting as the first channel, no centre prongs.
second_channel_distance_to_gemfloatyes
second_channel_heightfloatyes
second_channel_position_zfloatyessigned; positive lowers it
second_channel_rotationfloatyesdegrees, signed
second_channel_widthfloatyes
stone_countintSmall stones forming the hidden ring (under the center gem)
stone_settingstryes”NONE” | “SHARED” | “SCALLOPED”
stone_shapestryes”ROUND” | “PRINCESS”
stone_sizefloatyes
stone_weightfloat
total_stone_weightfloat
Method
delete()
move(translation: VectorLike)
set_channel_bright_cut(bright_cut: float)
set_channel_inner_height(height: float)
set_channel_inner_width(width: float)
set_channel_profile(asset_name: str)CHANNEL_PROFILE asset
set_force_even_number(force_even: bool)
set_prong_height(height: float)
set_rail_size(x_length: float, y_length: float)SQUARE / OVAL only
set_second_channel_bright_cut(bright_cut: float)
set_second_channel_inner_height(height: float)
set_second_channel_inner_width(width: float)
set_second_channel_profile(asset_name: str)CHANNEL_PROFILE asset
set_stone_distance(stone_distance: float)
set_stone_gem_inside(gem_inside: float)signed
set_stone_vertical(vertical: float)signed

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