Ответсообщение недоступно
🚀 Глобальное обновление скрипта для Базис-Мебельщик: Умное и быстрое управление размерами! 📏
Мы серьёзно прокачали макрос для пакетного редактирования размерных линий (TSize3D). Теперь подгонка габаритов на чертежах стала интерактивной, удобной и невероятно быстрой. Забудьте про долгое ручное вбивание цифр!
Вот что изменилось в новой версии:
🎛 Интерактивная подгонка габаритов (Кнопки + и -)
Правее полей «Длина» и «Высота» появились компактные кнопки + и -. Одно нажатие — и размер меняется на заданный шаг.
📐 Умный логарифмический шаг
Добавлен выпадающий список Шаг ± (от 0.1 мм до 1000 мм).
🔹 Список построен на базе компонента TcxComboBox в режиме editList, что позволяет как выбирать популярные значения мышью, так и вводить любые нестандартные шаги с клавиатуры.
⚡️ On-the-fly рендеринг (Мгновенное применение)
Больше не нужно каждый раз жать «Применить»! При клике на + / - или нажатии Enter скрипт мгновенно перестраивает геометрию объекта в модели (obj.Build()). Вы видите изменения в реальном времени.
🎯 Кнопка сброса «H = 0»
Добавлена отдельная кнопка для моментального обнуления высоты размерной линии. Одно нажатие — и выносные линии выравниваются.
🎨 Компактный и эстетичный UI
Ширина формы оптимизирована до 225 пикселей. Заголовок переведён в режим toolWindow (инструментальное окно) — шапка стала узкой, аккуратной, без лишних кнопок сворачивания.
—
⚙️ Под капотом (Для гиков и разработчиков):
🛡 Защита версии API: Внедрена проверка apiVersion.AwareAndThrowIfApiVersionIsLowestThan(3). Скрипт корректно работает со всеми современными UI-компонентами Базиса.
🧮 Борьба с IEEE 754: Написан алгоритм компенсации артефактов арифметики с плавающей точкой. Выражение Math.round(newVal * 1000) / 1000 гарантирует, что при шаге 0.1 вы получите ровно 100.1, а не бесконечную дробь 100.10000000000002 в поле ввода.
🔀 Раздельная валидация осей: Функция приращения adjustField учитывает физику Базиса. Для Длины стоит жесткий блок на отрицательные числа и нули (защита от краша геометрии). А вот для Высоты уход в минус разрешен, так как это штатный способ инвертировать направление отрисовки выносных линий.
⏪ Безопасная история: Каждое изменение «на лету» бережно оборачивается в транзакции через historyOperations.RegisterObjectChanging() и CommitCurrentChanges(). Всю серию ваших кликов можно легко откатить стандартным Ctrl+Z в редакторе!
Скрипт готов к работе! Копируйте, назначайте на горячую клавишу и ускоряйте оформление документации. 🛠🔥