Python package
ra.pave_shank
Pave shanks: automatic rows of stones across a one-profile band.
import rhinoartisan as ra
Wraps ArtisanPlugin.Scripting.PaveShankApi, ArtisanPlugin.Scripting.PaveShankBuilderApi.
Functions
| Function | |
|---|---|
all() | PaveShank handles for every object of this kind in the active document (empty when there is no document). |
by_layer() | PaveShank 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. |
find() | The handle for id, or None when the id does not belong to an object of this kind. |
selected() | PaveShank handles for the objects of this kind currently selected in the active document. |
create() | Builds a multi-row pavé shank (the Pavé Shank tool, ArtisanPaveShank, headless): a classic band with ONE profile and ONE size carrying rows automatic rows of round pavé stones on its outer surface, held by bead prongs. |
ra.pave_shank.all()
ra.pave_shank.all() -> List[PaveShank]
PaveShank handles for every object of this kind in the active document (empty when there is no document).
ra.pave_shank.by_layer()
ra.pave_shank.by_layer(layer_name: str) -> List[PaveShank]
PaveShank handles on the layer with the given full path (empty when the layer does not exist).
| Parameter | Type | |
|---|---|---|
layer_name | str | required |
ra.pave_shank.count()
ra.pave_shank.count() -> int
Number of objects of this kind in the active document.
ra.pave_shank.find()
ra.pave_shank.find(id: IdLike) -> PaveShank
The handle for id, or None when the id does not belong to an object of this kind.
| Parameter | Type | |
|---|---|---|
id | IdLike | required |
ra.pave_shank.selected()
ra.pave_shank.selected() -> List[PaveShank]
PaveShank handles for the objects of this kind currently selected in the active document.
ra.pave_shank.create()
ra.pave_shank.create(width=None, height=None, finger_diameter=None, profile=None, opening=None, layout_mode=None, top_angle=None, start_angle=None, end_angle=None, rows=None, row_distance=None, gem_size=None, lateral_gem_size=None, min_distance=None, prong_diameter=None, with_gems=None, with_cutters=None, plane=None, element=None) -> PaveShank
Builds a multi-row pavé shank (the Pavé Shank tool, ArtisanPaveShank, headless): a classic band with ONE profile and ONE size carrying rows automatic rows of round pavé stones on its outer surface, held by bead prongs. With 3+ rows the two outermost rows use lateral_gem_size and the inner rows gem_size; the row pitch is automatic (half of each neighbouring stone size + row_distance). Millimetres; omitting keeps the tool default (or the user’s saved defaults): width 3, height 2 (band section), rows 3, row_distance 0.1, gem_size 1.6 (central), lateral_gem_size 1.3, min_distance 0.1 (gap along the row), prong_diameter 0.8 (every bead shares one size). layout_mode “FULL” (all round the ring; the tool default) | “SIDE_ANGLE” (uses start_angle / end_angle, defaults 30-150) | “TOP_ANGLE” (uses top_angle, default 120). opening “NONE” (default) | “STRANGLE” | “CUT” — the classic band opening. with_gems False bakes the band alone; with_cutters adds a parametric drill cutter under every stone, like the panel does. finger_diameter 0 = the document’s finger size; profile picks a RING_PROFILE asset by name (omitted = the oval profile the command starts from, or the default one); plane omitted = world XY. element = name of a saved MultiRowShank element (ra.elements.list(“MultiRowShank”)) to start from; explicit arguments override it (its finger size is always replaced). The bead offsets (Prong.SetEdgeOffset / SetEndOffset) are handle setters. Returns the PaveShank handle of the new shank (stones, cutters and prongs are its children).
| Parameter | Type | |
|---|---|---|
width | float | optional — None = the tool default |
height | float | optional — None = the tool default |
finger_diameter | float | optional — None = the tool default |
profile | str | optional — None = the tool default |
opening | str | optional — None = the tool default |
layout_mode | str | optional — None = the tool default |
top_angle | float | optional — None = the tool default |
start_angle | float | optional — None = the tool default |
end_angle | float | optional — None = the tool default |
rows | int | optional — None = the tool default |
row_distance | float | optional — None = the tool default |
gem_size | float | optional — None = the tool default |
lateral_gem_size | float | optional — None = the tool default |
min_distance | float | optional — None = the tool default |
prong_diameter | float | optional — None = the tool default |
with_gems | bool | optional — None = the tool default |
with_cutters | bool | optional — None = the tool default |
plane | Optional[PlaneLike] | optional — None = the tool default |
element | str | optional — None = the tool default |
Handles
Objects returned by the functions above. Assigning a settable property regenerates the object; the change is one undo step inside ra.transaction().
PaveShank (handle)
Multi-row pavé shank: a classic band with ONE profile and ONE size carrying N automatic rows of round pavé stones on its outer surface. Multiple gems, so no single MotherGem.
| Property | Type | Settable | |
|---|---|---|---|
advanced | ClassicAdvanced | ||
cutters_enabled | bool | yes | |
gems | ClassicGems | The stones (GemSize = CENTRAL size, MinDistance, Vertical) and the bead options (TypeProng NONE/SHARED, ProngHeight = bead length, ProngMoveInZ = how far the bead top sits above the girdle, GemInside, ExtensionForManufacturing). AutomaticProngDiameter and ProngDiameter are ignored here: the bead size is Prong.Diameter. | |
gems_enabled | bool | yes | |
layer_name | str | ||
mother_gem_id | str | ||
object_type | str | ||
position | Point3d | ||
prong | PaveShankProng | ||
ring_diameter_mm | float | ||
ring_size_label | str | ||
ring_size_region | str | ||
rows | PaveShankRows | Multi-row specifics. | |
top_profile | ClassicProfile | The band: its one profile (asset, width, height, type…) and the classic opening (NONE / STRANGLE / CUT). |
| Method | |
|---|---|
delete() | |
move(translation: VectorLike) | |
set_element(element: str) | Applies a saved MultiRowShank element (ra.elements.list(“MultiRowShank”)) to this shank: its band, rows and gems replace the current ones, the ring size stays, and the shank 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).
ClassicAdvanced (section)
The classic shank’s Advanced section: the opening at the bottom of the band.
| Property | Type | Settable | |
|---|---|---|---|
cut_bumping | float | yes | mm — used when OpeningType is “CUT” |
cut_length | float | yes | mm — used when OpeningType is “CUT” |
opening_type | str | yes | ”NONE”, “CUT” or “STRANGLE” |
strangle_base_x | float | mm | |
strangle_base_y | float | mm | |
strangle_base_z | float | mm | |
strangle_opening | float | yes | mm — used when OpeningType is “STRANGLE” |
| Method | |
|---|---|
set_strangle_base(x: float, y: float, z: float) |
ClassicGems (section)
The gems row a shank can carry around its band.
| Property | Type | Settable | |
|---|---|---|---|
angle | float | yes | degrees of the band covered by gems (180 = top half) |
automatic_prong_diameter | bool | yes | |
bright_cut | float | yes | bright-cut width, mm |
count | int | yes | number of gems in “COUNT” mode: per side when the band has an opening (Cut / Strangle), the whole row when it has none |
drill_allow_intersection | bool | yes | |
drill_height | float | yes | mm |
drill_type | str | yes | ”NONE”, “ROUND” or “QUAD” |
drill_width | float | yes | mm |
enabled | bool | yes | |
extension_for_manufacturing | float | yes | mm |
gem_inside | float | yes | how deep the gems sit inside, mm |
gem_shape | str | yes | ”ROUND”, “PRINCESS”, … |
gem_size | float | yes | mm |
inner_height | float | yes | inner channel height, mm |
inner_width | float | yes | inner channel width, mm |
margin | float | yes | side margin, mm |
min_distance | float | yes | minimum distance between gems, mm |
mode | str | yes | ”ANGLE” (the gems cover Angle, the count follows) or “COUNT” (exactly Count gems, the angle follows) |
prong_diameter | float | yes | mm — used when AutomaticProngDiameter is False |
prong_height | float | yes | mm |
prong_move_in_z | float | yes | mm |
prong_type | str | yes | ”NONE” (channel), “SHARED” or “SCALLOPED”; the Classic also “FLUSH” (no channel) |
vertical | float | yes | vertical displacement of the row, mm |
PaveShankProng (section)
The bead prongs of a multi-row pavé shank. Every bead shares one diameter; the beads between rows sit centred in their hollows, the beads on the band edges and at the row ends are placed for a reference radius and moved by the two offsets.
| Property | Type | Settable | |
|---|---|---|---|
diameter | float | yes | diameter of every bead, mm |
edge_offset | float | yes | edge offset, mm: how far the beads on the band edges (outer sides of the outermost rows) are pushed outward; negative pulls them in |
end_offset | float | yes | end offset, mm: how far the bead past the last stone of each row end is moved along the row; negative pulls it in over the stone |
PaveShankRows (section)
The rows of a multi-row pavé shank: how many, how far apart, the lateral stone size and how far around the ring they run.
| Property | Type | Settable | |
|---|---|---|---|
count | int | yes | number of rows across the band (1..9); with 3+ the two outermost rows are LATERAL, the rest CENTRAL |
distance | float | yes | gap between the stones of two adjacent rows, mm (edge to edge); the row pitch is automatic |
end_angle | float | degrees — used when LayoutMode is “SIDE_ANGLE” | |
lateral_gem_size | float | yes | stone size of the two outermost rows, mm (only with 3+ rows) |
layout_mode | str | yes | ”FULL”, “SIDE_ANGLE” or “TOP_ANGLE” |
start_angle | float | degrees — used when LayoutMode is “SIDE_ANGLE” | |
top_angle | float | yes | total arc in degrees — used when LayoutMode is “TOP_ANGLE” |
| Method | |
|---|---|
set_side_angles(start_angle: float, end_angle: 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.
| Property | Type | Settable | |
|---|---|---|---|
comfort | float | yes | mm — used when Type is “COMFORT” |
displacement | float | yes | mm |
enabled | bool | yes | |
height | float | yes | mm |
orientation | int | yes | 0 = Natural, 1 = Reverse (flips the profile curve) |
profile_name | str | RING_PROFILE asset name, "" when unset | |
rotation | float | yes | degrees |
thickness | float | yes | mm — used when Type is “THICKNESS” |
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”) |