Repository navigation
Добавлено
-
Локальный профиль станка проверяет фактически построенную траекторию по
диапазонам X/Y/Z, максимальным рабочей и быстрой подачам и оборотам
шпинделя. Профиль не входит в проект и не может быть ослаблен чужим файлом. -
Аварийное восстановление несохранённого проекта: согласованный снимок
автоматически и атомарно записывается после изменений и предлагается при
следующем запуске. Обычное сохранение или осознанный отказ от изменений
удаляет уже ненужную копию. -
Приложение работает в одном экземпляре на пользователя. Повторный запуск
активирует существующее окно, а открываемый из проводника.ygcпередаётся
ему с сохранением обычной защиты несохранённых изменений. -
Релиз содержит установщик, portable ZIP, CycloneDX SBOM, SHA-256,
аттестацию происхождения сборки и immutable release attestation. Tag и
assets после публикации нельзя заменить; локальный файл можно проверить
через GitHub CLI. -
До появления публично доверенного сертификата выпуск намеренно остаётся
unsigned и показывает неизвестного издателя. Предыдущий unsigned-инсталлятор
допускается к автоматической проверке обновления только после совпадения с
закреплённым SHA-256; signing-секреты в этот процесс не передаются. -
Проверка безопасных высот сверяет их с самой заготовкой, а не только с тем,
что это число: безопасная высота фрезерования обязана быть выше высоты
контура, высота переходов между отверстиями — выше самого высокого из них,
отвод внутри отверстия — не ниже его верха. -
Верхний предел подач, оборотов шпинделя и задержки после его пуска: рабочая
подача до 20 000 мм/мин, быстрый ход до 60 000 мм/мин, шпиндель до 60 000
об/мин, задержка до минуты. Предел ловит лишний разряд — 3000 вместо 300. -
Проект открывается двойным щелчком по файлу
.ygcв проводнике и
перетаскиванием файла в окно; связь с расширением предлагается при установке. -
Клавиши работы с документом: Ctrl+N, Ctrl+O, Ctrl+S, Ctrl+Shift+S,
Ctrl+Z, Ctrl+Y, Ctrl+G и F1. Выделенная операция удаляется клавишей Delete,
но только когда фокус находится в списке операций. -
Окно «О программе»: версия, правообладатель, лицензия, страница продукта и
путь к журналу работы с кнопкой «показать файл». -
Кнопка остановки рядом с полосой хода: построение большой программы можно
прервать, не дожидаясь конца. -
Проверка обновлений — необязательная и выключенная по умолчанию.
Единственный случай, когда программа обращается в сеть: она спрашивает
у github.com последний выпуск. Включается в настройках; кнопка «Проверить
сейчас» в окне «О программе» работает и без неё — нажатие и есть согласие.
Неудачная проверка называет причину в самом окне, а не отсылает к журналу;
исчерпанный GitHub предел числа запросов объясняется отдельно — он проходит
сам. -
Установка без прав администратора: мастер спрашивает, ставить для всех
пользователей или только для себя. Второе кладёт программу
в%LOCALAPPDATA%\Programsи не требует повышения прав — на рабочем
компьютере с ограниченной учётной записью установка стала возможна. -
Раздел «Ограничения текущей версии» в README: единицы, оси, стойки,
отсутствие постоянных циклов, смены инструмента и подпрограмм, пределы
ввода и то, что читается из чертежей DXF. Прежде обо всём этом узнавали
опытным путём, то есть у станка.
Изменено
- Построение и обновление трёхмерного предпросмотра выполняются асинхронно;
устаревшая работа отменяется и не может заменить результат новой правки. - Проект и DXF ограничены 64 МБ до чтения в память. Дополнительно ограничены
число операций, сущностей и глубина вложенных блоков DXF, число контуров,
точек и команд готовой траектории. - Установщик теперь является нативным x64-приложением и собирается Inno Setup
7.1.0. Поддерживаемая система — Windows 11 24H2 или новее. - Комментарии в программе только английские. Русское имя операции в неё не
выводится — в комментарии остаётся английское описание операции с типом и
размерами; английские имена выводятся как есть. - История отмены хранит последние 100 шагов. Шаг держит состояние операции
целиком, и у контура из чертежа это сотни килобайт. - Свойства файла продукта — издатель, продукт, правообладатель — заданы в одном
месте и совпадают в сборке, установщике и списке установленных программ.
Исправлено
NaN, бесконечность, неизвестные значения списков и переполненные числовые
поля больше не могут попасть в траекторию или текст управляющей программы.- Завершение программы сначала отдельно отводит Z выше всех реально
использованных безопасных высот, затем останавливает шпиндель и охлаждение и
лишь после этого паркует X/Y и при необходимости конечную Z. Диагональный
быстрый ход через заготовку исключён. - Управление охлаждением отделено от управления шпинделем: M8/M9 работают и
без M3/M4, а задержка разгона появляется только после фактического запуска. - Асинхронные открытие и сохранение сериализованы: более старый запрос больше
не затирает новый документ, а правка во время записи сохраняет честный
признак несохранённых изменений. - Проверка обновлений для alpha/beta/rc видит новые предвыпуски, стабильный
канал их игнорирует; открыть можно только HTTPS-ссылку на Releases этого
репозитория. - Повторный вход в слой кармана шёл быстрым ходом до дна слоя. Теперь быстрый
ход опускает инструмент только до верха обрабатываемого слоя, а всё, что
глубже, проходится подачей врезания — во всех стратегиях выборки, включая
отдельный рез параллельной линии, участок за островом и разорванный виток
спирали. - Возврат сверла в отверстие после отвода шёл быстрым ходом до самого дна.
Теперь он обрывается на полмиллиметра выше пройденного, и последний участок
сверло проходит рабочей подачей. - Причина отказа генерации показывалась по-английски. Теперь перечень проблем
собирается на языке интерфейса — с номером и именем операции, именем
параметра и тем, что с ним не так. - Сбой построения трёхмерной сцены терялся: окно оставалось пустым, журнал
молчал. Теперь причина видна на месте сцены, а исключение уходит в журнал. - Установщик завершал работающую программу принудительно, вместе с
несохранённым проектом. Теперь он просит её закрыться и ждёт ответа. - Закрытое окно операции продолжало её слушать: подписка держала окно в памяти
до конца сеанса. - Замкнутые DXF-полилинии теряли последнее ребро, CW-профиль многоугольника
повторно резал первое, а периметр скруглённого прямоугольника завышался.
Замыкание, направление обхода и расчёт наклонного входа теперь согласованы
с фактической траекторией. - Внутренний профиль отклоняет слишком крупный инструмент. Наклонный вход не
делает быстрых погружений внутри материала и для многоконтурного DXF строится
только по первому реальному контуру, без режущей связки между областями. - ZigZag и Radial не соединяют участки через сохраняемый материал вогнутого
DXF-кармана. Первая область также начинает подход с SafeZ, а чистовая
обработка только стенок не пересекает дно радиальными рабочими ходами. - Припуски стенки и дна кармана рассчитываются независимо. Планировщик глубины
задаёт точную последнюю глубину профилям, карманам и сверлению и больше не
создаёт лишний слой из-за накопленной погрешностиdouble. - Полнокруговое сверление по дуге не создаёт совпадающие первое и последнее
отверстия. Нулевая DXF-дуга игнорируется, а почти вертикальный винтовой вход
после округления не выводится как неоднозначный полный круг G2/G3. - G-code и проекты сохраняются через долговечный соседний временный файл и
атомарную замену назначения: ошибка записи не усекает предыдущий документ.
Пустой проект после удаления последней операции также можно сохранить. - Повреждённые autosave и пользовательские настройки больше не зацикливают
запуск: неисправный файл сохраняется рядом для диагностики, а приложение
пробует резервную копию или безопасные значения по умолчанию. В предложении
восстановления показываются время снимка и его путь. - DXF-дуги и эллипсы вне плоскости XY с нормалью +Z отклоняются вместо
зеркального импорта. Старый DXF, посторонний файл и чертёж без заданных единиц
получают разные локализованные сообщения с рекомендацией исправления. - Проверка обновлений отличает отсутствие подходящего выпуска от сбоя сети или
ответа. Зависший клиент второго экземпляра больше не блокирует последующие
запуски приложения. - Закрытие предпросмотра отменяет сборку сцены. Поворот и последующий Zoom
сохраняют выбранную под курсором цель камеры, а кнопка «Показать всё» заново
кадрирует фактическую траекторию. - Undo и Redo восстанавливают выделение операции. Фатальные сообщения имеют
владельца главного окна, а перед аварийным завершением фоновая ошибка делает
ограниченную по времени попытку сохранить recovery-снимок. - Окно программы не помещалось на экран при высоком масштабе интерфейса и
теперь не сжимается меньше 900×560 единиц разметки.