Скетчер Вспомогательные ограничения
Обзор

Вспомогательные ограничения - это обычные ограничения скетчера, которые необходимы как часть более сложных ограничений, но выставляются в пользовательском интерфейсе, чтобы помочь справиться с избыточностью. Например, для ограничения Закон Снелля две линии, представляющие лучи света, должны быть соединены (Ограничением Совпадения), а их соединение должно лежать на границе раздела сред с (Ограничением точки на объекте).
Вспомогательные ограничения будут добавлены автоматически, когда они понадобятся. Решение о том, нужны ли они, в настоящее время принимается путём оценки погрешности вспомогательных ограничений для текущего состояния геометрии (это может измениться в будущих версиях). Если ошибка достаточно мала, ограничение считается ненужным, и оно не будет добавлено. В некоторых случаях такая логика может привести к ошибкам (ограничение может быть выполнено случайно, что легко может произойти при включенной привязке к сетке Скетчера).
Если это произойдёт (вспомогательное ограничение отсутствует, а необходимые условия не выполняются), сложное ограничение будет нарушено. Оно будет что-то делать, но фактическое поведение не будет определено. Такое сломанное ограничение можно исправить, добавив недостающее вспомогательное ограничение вручную.
Вспомогательные ограничения в настоящее время требуются для:
- Ограничить касательную или коллинеарность (в режиме касательной через точку необходимы два ограничения Точки на объекте)
- Ограничение перпендикулярности (в режиме перпендикуляра через точку необходимы два ограничения Точки на объекте)
- Ограничение Угла (в режиме угол через точку необходимы два ограничения Точки на объекте)
- Ограничение преломления (Закон Снеллиуса) (Необходимо ограничение совпадения и ограничение Точка на объекте)
Написание скриптов
Когда ограничения, требующие вспомогательных элементов, добавлены из Python, вспомогательные ограничения автоматически не будут добавлены. Автоматическое принятие решений командами пользовательского интерфейса можно воспроизвести в сценарии, протестировав следующие функции, которые были добавлены специально для этой цели и используются в процедурах пользовательского интерфейса:
Sketch.isPointOnCurve(icurve,x,y)
isPointOnCurve проверяет, виртуальную точку, заданная координатами эскиза x,y (значения float), удовлетворяет-ли ограничению виртуальной точки на объекте - т.е. лежит на кривой, заданной индексом кривой icurve. Возвращает True, если точка лежит на кривой, и False, если нет.
Sketch.calculateConstraintError(iconstr)
calculateConstraintError оценивает функцию ошибки ограничения, указанного индексом iconstr в эскизе. Если в ограничении есть только одна функция ошибки, то возвращаемое значение - это знаковое возвращаемое значение функции ошибки. Если с ограничением связано более одной функции ошибки (т.е. ограничение устраняет более одной степени свободы), то возвращаемое значение - среднеквадратичное значение всех функций ошибки (всегда положительное).
- Основные: Создать эскиз, Редактировать эскиз, Прикрепите эскиз, Переориентировать эскиз, Проверить эскиз, Объединить эскизы, Отразить эскиз зеркально, Покинуть эскиз, Просмотр эскиза, Просмотр сечения, Переключить сетку, Переключить привязку, Настройка порядка прорисовки, Остановить операцию
- Геометрия Скетчера: Создать точку, Создать линию по точкам (полилинию), Создать отрезок, Создать дугу от центра, Создать дугу по 3 точкам, Создать эллиптическую дугу, Создать гиперболическую дугу, Создать параболическую дугу, Создать круг по центру, Создать круг по 3 точкам, Создать эллипс от центра, Создать эллипс по 3 точкам, Прямоугольник, Центрированный прямоугольник, Скруглённый прямоугольник, Треугольник, Квадрат, Пятиугольник, Шестиугольник, Семиугольник, Восьмиугольник, Правильный многоугольник, Создать паз, Создать дуговой слот, B-сплайн по контрольным точкам, Периодический B-сплайн по контрольным точкам, B-сплайн по узлам, Периодический B-сплайн по узлам, Переключить вспомогательную геометрию
- Ограничения в Скетчере:
- Размерные ограничения: Размер, Ограничение расстояния по горизонтали, Ограничение расстояния по вертикали, Ограничение Расстояния, Ограничение радиуса/диаметра автоматически, Ограничение Радиуса, Ограничение Диаметра, Ограничение Угла, Ограничение положения
- Геометрические ограничения: Ограничение наложения точек, Ограничение Совпадения точек, Ограничение Точки на объекте, Ограничить горизонтальность/вертикальность, Ограничить горизонталь, Ограничить вертикаль, Ограничение Параллельности, Ограничение перпендикулярности, Ограничить касательную или коллинеарность, Ограничение эквивалентностью, Ограничить симметричность, Ограничение перемещения
- Другие ограничения: Ограничение преломления (Закон Снеллиуса)
- Инструменты ограничений: Переключить ограничения в построительные/основные, Вкл/выкл ограничение
- Инструменты Скетчера: Создать скругление, Создать Фаску, Обрезать ребро, Разделить ребро, Продлить ребро, Внешняя геометрия, Структурная копия, Выбрать начало координат, Выбрать горизонтальную ось, Выбрать вертикальную ось, Переместить / линейный массив, Повернуть / круговой массив, Масштабировать, Сместить геометрию, Симметрия, Удалить выравнивание по осям, Удалить всю геометрию, Удалить все ограничения
- Инструменты для B-сплайн Скетчера: Преобразовать геометрию в B-сплайн, Увеличить степень B-сплайна, Уменьшить степень B-сплайна, Увеличить кратность узла, Уменьшить кратность узла, Вставить узел, Объединить кривые
- Визуализация в Эскизе: Выбрать недостаточно ограниченные элементы, Выделить наложенные ограничения, Выделить ограничиваемую геометрию, Выделить избыточные ограничения, Выделить конфликтующие ограничения, Показать/скрыть вспомогательную окружность для дуг, Показать/Скрыть степень B-сплайна, Показать/Скрыть полигон управления B-сплайном, Показать/скрыть гребень кривизны B-сплайна, Показать/скрыть кратность узлов В-сплайна, Показать/скрыть вес контрольных точек B-сплайна, Показать/скрыть внутреннюю геометрию, Переключить виртуальное пространство
- Дополнительно: Диалоговое окно Скетчера, Настройки, Написание скриптов в Скетчер
- Начинающим
- Установка: Загрузка, Windows, Linux, Mac, Дополнительных компонентов, Docker, AppImage, Ubuntu Snap
- Базовая: О FreeCAD, Интерфейс, Навигация мыши, Методы выделения, Имя объекта, Настройки, Верстаки, Структура документа, Свойства, Помоги FreeCAD, Пожертвования
- Помощь: Учебники, Видео учебники
- Верстаки: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework