Faceting Setup
Welcome to Part 2: Faceting. While Part 1 focused on abstract geometry, Part 2 applies these concepts to the specific workflow of gemstone design.
Configuration
A faceting design always starts with the machine configuration.
Gear(96) // Set the index gear (96, 80, 64, etc.)
RI(1.76) // Set Refractive Index (e.g., Corundum)
Modes
Calling Gear(n) automatically switches the system to "index" mode.
- Angle: 0 to 90 degrees (elevation).
- 0° = Pole (Table)
- 90° = Equator (Girdle)
- Index: 0 to Gear Size (azimuth).
Note: This differs from standard math spherical coordinates used in Part 1.
The Faceting Coordinate System
When Gear is set, the Normal constructor adapts:
Normal(elevation_angle, gear_index)
// A facet on the table (top)
table = Normal(0, 0)
// A facet on the girdle at index 96 (or 0)
girdle_main = Normal(90, 96)
// A pavilion facet at 42 degrees, index 3
pavilion = Normal(42, 3)
Preforms
Before cutting facets, you usually establish a rough shape or "Preform".
Cylinder (Girdle)
A basic 16-sided cylinder preform.
// Define indices: 96 / 16 = 6
indices = (0..15) |> (i) => i * 6
// Create vertical planes (90 degrees) at distance 10
cylinder = indices |> (idx) => Normal(90, idx) -> 10
_ := cylinder
Cone (Pavilion)
Cutting a cone to establish a center point (CP).
// Cut cone at 42 degrees
cone = indices |> (idx) => Normal(42, idx) -> Point(0,0,0)
_ := cone
Symmetry helpers
In faceting, we often repeat cuts around the stone. While |> with Rotate works, standard loops and arrays are common.
// Standard 8-fold symmetry function
sym8 = (idx) => (0..7) |> (i) => (idx + i * (96/8)) % 96
// Generate all 8 indices for index 3
indices_3 = sym8(3)
// [3, 15, 27, 39, 51, 63, 75, 87]