Scripting API
IClassic
Returned by ClassicApi — the classic comfort-fit ring shank. Multiple gems possible, so no single mother gem (MotherGemId is empty). Adds to IParametricObject:
| Member | Meaning |
|---|---|
RingSizeLabel | Ring size label, e.g. "54" |
RingSizeRegion | Ring size region, e.g. "EUROPE" |
RingDiameterMm | Inner diameter, mm |
TopProfile / MidProfile / BottomProfile | The three section profiles — IClassicProfile each |
ExternalProfile | The outside-face profile — IClassicExternalProfile |
Advanced | The band opening — IClassicAdvanced |
Gems | The gems row — IClassicGems |
SetWidth(width) / SetHeight(height) | Shortcuts for the two most common edits — same as TopProfile.SetWidth / TopProfile.SetHeight |
The six section members are live views over the shank’s stored parameters: their getters read the current values and every setter regenerates the shank in place (same Guid), gems and prongs included.
from ArtisanPlugin.Scripting import ClassicApi as classic, Transaction
ring = classic.Selected()[0]
with Transaction.Begin("Slimmer band with a gem row"):
ring.TopProfile.SetWidth(2.2)
ring.Gems.SetEnabled(True)
ring.Gems.SetGemSize(1.5)
ring.Gems.SetAngle(200)
Section profiles (IClassicProfile)
TopProfile, MidProfile and BottomProfile share this surface. The top profile is always enabled (calling its SetEnabled raises); mid and bottom are optional extra sections:
| Member | Meaning |
|---|---|
Enabled | Whether this section is built (always true for the top profile) |
ProfileName | Name of the RING_PROFILE asset, "" when unset |
Type | How the open profile curve is closed: "SOLID", "COMFORT" or "THICKNESS" |
Height / Width | Band section, mm |
Thickness | Wall thickness, mm — used when Type is "THICKNESS" |
Comfort | Comfort depth, mm — used when Type is "COMFORT" |
Rotation | Profile rotation, degrees |
Displacement | Profile displacement, mm |
Orientation | 0 = Natural, 1 = Reverse (flips the profile curve) |
SetEnabled(enabled) | Enable/disable the section (mid and bottom only) |
SetProfile(assetName) | Swap the profile — a RING_PROFILE asset by name |
SetType(type) | "SOLID", "COMFORT" or "THICKNESS" |
SetHeight(height) / SetWidth(width) | Band section, mm |
SetThickness(thickness) / SetComfort(comfort) | mm |
SetRotation(degrees) / SetDisplacement(displacement) | Rotate / displace the profile |
SetOrientation(orientation) | 0 or 1 |
External profile (IClassicExternalProfile)
The optional profile carved on the shank’s outside face:
| Member | Meaning |
|---|---|
Enabled | Whether the external profile is applied |
ProfileName | Name of the EXTERNAL_RING_PROFILE asset, "" when unset |
Top / Mid / Bottom | External height at each zone, mm |
SetEnabled(enabled) | Turn the external profile on/off |
SetProfile(assetName) | Swap the profile — an EXTERNAL_RING_PROFILE asset by name |
SetTop(height) / SetMid(height) / SetBottom(height) | mm |
Opening (IClassicAdvanced)
The opening at the bottom of the band:
| Member | Meaning |
|---|---|
OpeningType | "NONE", "CUT" or "STRANGLE" |
CutLength / CutBumping | Cut opening parameters, mm — used when "CUT" |
StrangleOpening | Opening width, mm — used when "STRANGLE" |
StrangleBaseX / StrangleBaseY / StrangleBaseZ | Strangle base section, mm |
SetOpeningType(openingType) | "NONE", "CUT" or "STRANGLE" |
SetCutLength(length) / SetCutBumping(bumping) | mm |
SetStrangleOpening(opening) | mm |
SetStrangleBase(x, y, z) | The three base dimensions in one call, mm |
Gems row (IClassicGems)
The row of gems the shank can carry around its band. Enabling or editing it re-bakes the gems and prongs as child objects:
| Member | Meaning |
|---|---|
Enabled | Whether the gems row is built |
GemShape | "ROUND", "PRINCESS", … |
GemSize | Gem size, mm |
Angle | Degrees of the band covered by gems (180 = top half) |
MinDistance | Minimum distance between gems, mm |
Margin | Side margin, mm |
Vertical | Vertical displacement of the row, mm |
GemInside | How deep the gems sit inside, mm |
InnerWidth / InnerHeight | Inner channel section, mm |
BrightCut | Bright-cut width, mm |
ProngType | "NONE", "SHARED" or "SCALLOPED" |
ProngHeight / ProngMoveInZ | Prong height and Z displacement, mm |
AutomaticProngDiameter / ProngDiameter | Automatic diameter, or the explicit one in mm |
DrillType | "NONE", "ROUND" or "QUAD" |
DrillWidth / DrillHeight | Drill section, mm |
DrillAllowIntersection | Whether drills may intersect |
ExtensionForManufacturing | Manufacturing extension, mm |
SetEnabled(enabled) | Turn the gems row on/off |
SetGemShape(shape) / SetGemSize(size) | The gem template |
SetAngle(degrees) | > 0 and <= 360 |
SetMinDistance(distance) / SetMargin(margin) / SetVertical(vertical) / SetGemInside(gemInside) | Placement, mm |
SetInnerWidth(width) / SetInnerHeight(height) / SetBrightCut(brightCut) | Channel, mm |
SetProngType(prongType) / SetProngHeight(height) / SetProngMoveInZ(move) | Prongs |
SetAutomaticProngDiameter(automatic) / SetProngDiameter(diameter) | Prong diameter |
SetDrillType(drillType) / SetDrillWidth(width) / SetDrillHeight(height) / SetDrillAllowIntersection(allow) | Drills |
SetExtensionForManufacturing(extension) | mm |
String parameters are case-insensitive and tolerate dashes/spaces; an unknown value raises a clear error listing the valid ones.