Ну вот, я кажется сделал:
https://chemcraftprog.com/files/Chemcra ... _win64.zip
Просьба скачать и протестировать.
Сейчас у меня такой алгоритм выбора латтисных векторов по миллеровским индексам (вектору C):
1) Перебираются все варианты векторов A и B в целых числах;
2) Определяются варианты векторов A и B, такие что они оба перпендикулярны C, и не параллельны друг другу;
3) Программа всегда старается найти варианты A и B такие, чтобы максимальная цифра x,y,z в них по модулю была как можно меньше;
4) Если эта цифра одинаковая, программа старается найти такие варианты A и B, при которых площадь параллелограмма AB минимальная;
5) Если площади одинаковые, программа также пытается найти вектора A и B с углами между ними, максимально близкими к прямому.
Может быть, надо добавить опцию поменять варианты латтисных векторов, и может быть показать список вариантов, которые нашла программа?