From 965b9c8c1a526963b05035492ec023fdc331ac09 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Wed, 25 Mar 2026 13:14:46 -0400 Subject: [PATCH] feat: change nest name format to N{YY}-{base30} for brevity and readability Uses 2-digit year + 3-char base-30 sequence (ambiguous chars 0OI1l8B excluded), supporting ~27k nests/year. E.g. N26-4E2 instead of N0325-126. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest/Forms/MainForm.cs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/OpenNest/Forms/MainForm.cs b/OpenNest/Forms/MainForm.cs index e4eb0d1..61babbc 100644 --- a/OpenNest/Forms/MainForm.cs +++ b/OpenNest/Forms/MainForm.cs @@ -78,10 +78,24 @@ namespace OpenNest.Forms private string GetNestName(DateTime date, int id) { - var month = date.Month.ToString().PadLeft(2, '0'); - var day = date.Day.ToString().PadLeft(2, '0'); + var year = (date.Year % 100).ToString("D2"); + var seq = ToBase36(id).PadLeft(3, '0'); - return string.Format("N{0}{1}-{2}", month, day, id.ToString().PadLeft(3, '0')); + return $"N{year}-{seq}"; + } + + private static string ToBase36(int value) + { + const string chars = "2345679ACDEFGHJKLMNPQRSTUVWXYZ"; + if (value == 0) return "0"; + + var result = ""; + while (value > 0) + { + result = chars[value % 36] + result; + value /= 36; + } + return result; } private void LoadNest(Nest nest, FormWindowState windowState = FormWindowState.Maximized)