Accelerate ornamental modeling by mastering ArrayCrv and Polar Array (ArrayPolar). These two commands turn a single “seed” object into rich, repeatable patterns on rails, rings, balustrades, and medallions with precise control over spacing, rotation, and alignment.
ArrayCrv: distribute along a path
- Prepare the seed: model one clean, well-oriented element and place its base point at a logical pivot (e.g., the edge that should touch the rail). Consider making it a Block for easy global edits later.
- Prep the path: use a single, clean curve. For closed paths, move the seam (CrvSeam) to control the array’s starting point. Use Dir to confirm path direction before arraying.
- Run ArrayCrv: choose Number for count-based distribution, or Distance for even spacing along any curve length. Toggle Align items to orient per tangent, or disable for fixed orientation. Flip alignment when needed.
- Fine-tune: use Preview to verify collisions and end alignment. If spacing must be exact at both ends, adjust the curve length (Scale1D) or switch between Number/Distance modes.
- Edge cases: for very tight curves or small motifs, reduce seed size slightly or rebuild the path (Rebuild) to even out curvature spikes that cause piling.
Polar Array (ArrayPolar): distribute around a center
- Set the center: snap to a precise point (e.g., ring center, column axis, CPlane origin). Use a reference CPlane if the design isn’t orthogonal.
- Angle to fill: default is 360 for full radial patterns; for arcs or partial medallions, input a custom span (e.g., 120 degrees).
- Rotate items: Yes keeps elements tangential; No preserves original orientation (useful for radial engravings that must “face” one direction).
- Levels/vertical step: create stacked radial rings in one go (useful for rosettes or layered grilles). Keep step values parametric in notes for repeatability.
- Check overlap: use Gumball to nudge the seed’s pivot if elements clip at specific angles; adjust object scale or count to eliminate conflicts.
Pro tips for flawless decorative arrays
- Blocks first: convert the seed to a Block before arraying. Edit the Block definition later to update every instance instantly—clean and efficient for design iteration and file size.
- Smart snapping: enable Osnap (End, Cen, Near) and SmartTrack to lock pivots and reference axes reliably during center/path picks.
- Curve quality: simplify busy guides. Use Rebuild or FitCrv to reduce control points, ensuring smoother tangent changes and cleaner ArrayCrv alignment.
- Preview density: when exploring pattern density, array a simple proxy (box or low-detail version) first, then swap the Block to the high-detail object.
- Downstream thickening: if offsets/fillets follow, keep the seed slightly conservative; it’s easier to add detail after you know spacing works.
Workflow hygiene
- Layers: place seeds, guides, and results on separate layers. Lock the path curve to prevent accidental edits post-array.
- Named selections: store selections of array results for quick global transforms or material changes.
- Analysis: use Zebra/Curvature on the guide surface/rail if the decorative logic depends on smooth continuity.
Upgrade your toolkit and plug-ins for Rhino at NOVEDGE. Looking for the latest Rhino licenses and add-ons? Explore Rhino at NOVEDGE for expert support, competitive pricing, and fast delivery.






