Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CAM Outlines

The Centerpoint–Angle Method (CAM) starts the build with a shallow pavilion preform. You cut down to a temporary culet, flatten the girdle from that reference, and only then worry about the crown. It is the fastest way to block in outlines that would otherwise need dozens of exploratory facets.

ProFacet exposes CAM-friendly helpers as macros so you can sketch a girdle in a single line and refine the angles later. The following outlines are ready today:

  • Rectangle — the straight rectangle via $Rect.
  • Truncated rectangle — available through $RectTr.
  • Truncated square — available through $SquareTr.
  • Double-truncated rectangle — available through $RectDblTr.
  • Truncated triangle — available through $TriTr.
  • Cushioned truncated square — available through $SquareCushTr.
  • Cushioned truncated triangle — available through $TriCushTr.
  • Cushioned truncated pentagonPlaceholder. Depends on 5-fold CAM helpers.
  • EllipsePlaceholder. Elliptical CAM requires variable index spacing; watch the release notes.

Rectangle

set name "CAM Rectangle"
set gear 96

$Rect(lwr = 1.6, angle = 45)
PF1PF2
CAM rectangle viewed from the pavilion

Truncated rectangle macro

Use $RectTr to block in a classic competition outline: pick a length-to-width ratio, the pavilion angle for the long face, and an optional truncation ratio for the corners.

set name "CAM Truncated Rectangle"
set gear 96

$RectTr(lwr = 1.6, angle = 45, truncation = 0.30, offset = 5)
PF1PF2PF3
CAM truncated rectangle viewed from the pavilion

The macro generates the shallow preform (tiers PF1PF3) and a finished girdle loop (G1G3). Tweak truncation toward 0.0 for squarer corners or up toward 1.0 for aggressive chamfers. offset is optional and rotates the corner facets if you want the long edge aligned to a different index.

Truncated square macro

$SquareTr mirrors the same control scheme on 4-fold symmetry. It cuts four identical long facets, then trims each corner using the truncation ratio. Keep truncation between 0.0 and 1.0 for light chamfers, or push it toward 2.0 when you deliberately want octagonal outlines.

set name "CAM Truncated Square"
set gear 96

$SquareTr(angle = 45, truncation = 0.35, offset = 4)

The optional offset rotates the square if you need the long flats aligned to an existing index. Because the macro expects a gear divisible by four it runs cleanly on 64-, 80-, 96-, or 120-tooth laps.

Cushioned truncated square macro

$SquareCushTr builds a softened square outline by offsetting the four primary girdle facets and trimming the corners with a controllable cushion ratio. Use cushion to steer the amount of cushioning, set the pavilion angle for those primary facets, and dial truncation between 0.0 (sharp corners) and about 1.0.

set name "CAM Cushioned Square"
set gear 96

$SquareCushTr(angle = 45, cushion = 2, truncation = 0.40)
PF1PF2
CAM cushioned truncated square viewed from the pavilion

The macro mirrors the pavilion cuts using xx4 symmetry so the cushion stays balanced even if you rotate the starting index. Lower offset keeps the flats on the 0 index; bump it higher to align the flats with any pre-existing tier. Use the girdle percentage or follow-up tiers to stretch the outline without rewriting the macro call.

Double-truncated rectangle macro

$RectDblTr stacks two corner trims so you can rough-in competition octagons that still polish down to razor corners. The first_truncation parameter sets the outer chamfer exactly like $RectTr. second_truncation carves an additional facet inside that first chamfer and accepts values up to roughly 2.0.

set name "CAM Double Trunc"
set gear 96

$RectDblTr(lwr = 1.6, angle = 45, first_truncation = 0.30, second_truncation = 0.25, offset = 5)

Both truncation settings must stay non-negative, and lwr must be greater than zero—violations now fail fast during interpretation instead of collapsing the girdle geometry.

Truncated triangle macro

$TriTr blocks in a three-fold outline with controllable corner trims. Pass the pavilion angle for the primary girdle facets and adjust truncation between 0.0 (sharp points) and roughly 1.5 (heavy chamfers). The macro assumes a standard 0.7 girdle radius and uses mp(...) so the corners stay aligned.

set name "CAM Truncated Triangle"
set gear 96

$TriTr(angle = 44, truncation = 0.35)
PF1PF2
CAM truncated triangle viewed from the pavilion

Cushioned truncated triangle macro

$TriCushTr mirrors the same workflow but lets you offset the long side by tweaking the optional cushion index. Use it when you need a slightly rounded triangle that still lands on three repeatable meetpoints. The macro shares the same truncation and angle controls as $TriTr, so you can swap between the two without rewriting your design.

set name "CAM Cushioned Triangle"
set gear 96

$TriCushTr(angle = 44, truncation = 0.30, cushion = 2)
PF1PF2
CAM cushioned truncated triangle viewed from the pavilion