Skip to content

Python package

ra.classic

Classic ring shanks: comfort-fit bands at the document finger size, optionally with a stone row.

import rhinoartisan as ra

Wraps ArtisanPlugin.Scripting.ClassicApi.

Functions

Function
all()Classic handles for every object of this kind in the active document (empty when there is no document).
by_layer()Classic 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 classic ring shank (the ArtisanClassic tool, headless): a comfort-fit band at the document’s finger size, optionally with a row of gems around the top.
find()The handle for id, or None when the id does not belong to an object of this kind.
selected()Classics currently selected in the active doc.

ra.classic.all()

ra.classic.all() -> List[Classic]

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

ra.classic.by_layer()

ra.classic.by_layer(layer_name: str) -> List[Classic]

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

ParameterType
layer_namestrrequired

ra.classic.count()

ra.classic.count() -> int

Number of objects of this kind in the active document.

ra.classic.create()

ra.classic.create(width=None, height=None, finger_diameter=None, with_gems=None, gem_size=None, gems_angle=None, profile=None, plane=None, element=None, gems_count=None) -> Classic

Builds a classic ring shank (the ArtisanClassic tool, headless): a comfort-fit band at the document’s finger size, optionally with a row of gems around the top. This is the scriptable way to give a design its ring body. Millimetres; omitting keeps the tool default (or the user’s saved defaults): width 3, height 2. finger_diameter 0 = the document’s configured finger size. with_gems True enables the gem row (gem_size default 1.2 mm, gems_angle default 180 degrees of the shank covered). profile picks a RING_PROFILE asset by name; omitted = the default profile. plane omitted = world XY. Returns an Classic handle to the new shank. element = name of a saved Classic element (ra.elements.list(“Classic”)) to start from instead of the tool defaults; explicit arguments override it. gems_count > 0 = exactly that many gems (per side when the band has an opening, the whole row when it has none; implies with_gems; the angle is derived and gems_angle is ignored).

ParameterType
widthfloatoptional — None = the tool default
heightfloatoptional — None = the tool default
finger_diameterfloatoptional — None = the tool default
with_gemsbooloptional — None = the tool default
gem_sizefloatoptional — None = the tool default
gems_anglefloatoptional — None = the tool default
profilestroptional — None = the tool default
planeOptional[PlaneLike]optional — None = the tool default
elementstroptional — None = the tool default
gems_countintoptional — None = the tool default

ra.classic.find()

ra.classic.find(id: IdLike) -> Classic

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

ParameterType
idIdLikerequired

ra.classic.selected()

ra.classic.selected() -> List[Classic]

Classics 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().

Classic (handle)

Classic ring shank (multiple gems possible) — no single MotherGem.

PropertyTypeSettable
advancedClassicAdvanced
bottom_profileClassicProfile
drill_cutterDrillCutterThe ROUND drill (Gems.DrillType ROUND): a cutter shaped on each stone. Classic only.
external_profileClassicExternalProfile
gemsClassicGems
layer_namestr
mid_profileClassicProfile
mother_gem_idstr
object_typestr
positionPoint3d
remove_channelboolyesGems.ProngType SHARED and SCALLOPED: True drops the channel under the stones (FLUSH never has it). Classic only: Two Rows and Pavé share the gems section but not this.
ring_diameter_mmfloat
ring_size_labelstr
ring_size_regionstr
top_profileClassicProfileParameter sections — each is a live view over the shank’s stored parameters; their setters regenerate the shank in place (same Guid) and call LicenseGate.RequireValid() first. Millimetres.
Method
delete()
move(translation: VectorLike)
set_element(element: str)Applies a saved Classic element (ra.elements.list(“Classic”)) to this shank: its parameters replace the current ones, the ring size stays, and the shank regenerates in place (same id).
set_height(height: float)
set_width(width: float)Shortcuts for the two most common edits — same effect as TopProfile.SetWidth / TopProfile.SetHeight.

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

ClassicAdvanced (section)

The classic shank’s Advanced section: the opening at the bottom of the band.

PropertyTypeSettable
cut_bumpingfloatyesmm — used when OpeningType is “CUT”
cut_lengthfloatyesmm — used when OpeningType is “CUT”
opening_typestryes”NONE”, “CUT” or “STRANGLE”
strangle_base_xfloatmm
strangle_base_yfloatmm
strangle_base_zfloatmm
strangle_openingfloatyesmm — used when OpeningType is “STRANGLE”
Method
set_strangle_base(x: float, y: float, z: float)

ClassicProfile (section)

One of the shank’s three section profiles (top / mid / bottom). The top profile is always enabled; mid and bottom are optional.

PropertyTypeSettable
comfortfloatyesmm — used when Type is “COMFORT”
displacementfloatyesmm
enabledboolyes
heightfloatyesmm
orientationintyes0 = Natural, 1 = Reverse (flips the profile curve)
profile_namestrRING_PROFILE asset name, "" when unset
rotationfloatyesdegrees
thicknessfloatyesmm — used when Type is “THICKNESS”
typestryes”SOLID”, “COMFORT” or “THICKNESS”
widthfloatyesmm
Method
set_profile(asset_name: str)RING_PROFILE asset by name — list them with ra.assets.list(“RING_PROFILE”)

DrillCutter (section)

The ROUND drill of a halo: a cutter shaped on each stone, the Cathedral’s drill. Sizes and heights are PERCENTAGES of the stone, GemInside is millimetres; 0 is legal for all of them. Each setter regenerates the owner in place.

PropertyTypeSettable
drill_typeintyes0 gem shape, 1 round, 2 square, 3 hexagon
gem_insidefloatyesmm, signed
height_crownfloatyes
height_drillfloatyes
height_girdlefloatyes
height_pavilionfloatyes
height_topfloatyes
size_bottomfloatyes
size_drillfloatyes
size_topfloatyes

ClassicExternalProfile (section)

The optional external profile carved on the shank’s outside face.

PropertyTypeSettable
bottomfloatyesexternal height at the bottom, mm
enabledboolyes
midfloatyesexternal height at the middle, mm
profile_namestrEXTERNAL_RING_PROFILE asset name, "" when unset
topfloatyesexternal height at the top, mm
Method
set_profile(asset_name: str)EXTERNAL_RING_PROFILE asset by name — list them with ra.assets.list(“EXTERNAL_RING_PROFILE”)

ClassicGems (section)

The gems row a shank can carry around its band.

PropertyTypeSettable
anglefloatyesdegrees of the band covered by gems (180 = top half)
automatic_prong_diameterboolyes
bright_cutfloatyesbright-cut width, mm
countintyesnumber of gems in “COUNT” mode: per side when the band has an opening (Cut / Strangle), the whole row when it has none
drill_allow_intersectionboolyes
drill_heightfloatyesmm
drill_typestryes”NONE”, “ROUND” or “QUAD”
drill_widthfloatyesmm
enabledboolyes
extension_for_manufacturingfloatyesmm
gem_insidefloatyeshow deep the gems sit inside, mm
gem_shapestryes”ROUND”, “PRINCESS”, …
gem_sizefloatyesmm
inner_heightfloatyesinner channel height, mm
inner_widthfloatyesinner channel width, mm
marginfloatyesside margin, mm
min_distancefloatyesminimum distance between gems, mm
modestryes”ANGLE” (the gems cover Angle, the count follows) or “COUNT” (exactly Count gems, the angle follows)
prong_diameterfloatyesmm — used when AutomaticProngDiameter is False
prong_heightfloatyesmm
prong_move_in_zfloatyesmm
prong_typestryes”NONE” (channel), “SHARED” or “SCALLOPED”; the Classic also “FLUSH” (no channel)
verticalfloatyesvertical displacement of the row, mm