Руководство по размещению окон и дверей

From FreeCAD Documentation
This page is a translated version of the page Tutorial custom placing of windows and doors and the translation is 90% complete.
Outdated translations are marked like this.
Other languages:
Руководство
Тема
Архитектура
Уровень
Средний
Время для завершения
60 минут
Авторы
vocx
FreeCAD версия
0.18 или выше
Примеры файлов
нет
Смотрите также
None

Введение

Этот учебник покажет как поместить спроектированное пользователем окна и двери в модели здания. Он использует верстаки Draft, Arch, и Sketcher.

Используются следующие инструменты: Draft Grid, Draft Snap, Draft Wire, Arch Wall, Arch Window, и Sketcher NewSketch. Пользователь должен быть знаком с установкой ограничений в эскизах.

Этот учебник был вдохновлён учебниками, написанными jpg87 на форумах FreeCAD.

Посмотрите, пожалуйста, следующую ветку для дополнительной информации о позиционировании окон и дверей.

Посмотрите так же следующую страницу ради некоторых видео о том, как выравнять окна.

Установка

1. Откройте FreeCAD, создайте новый пустой документ, и переключитесь на Верстак Arch.

2. Убедитесь, что единицы измерения установлены в меню Правка → Настройки → Основные → Единицы измерения правильно. Например, МКС (м/кг/с/градус) хороши для работы с расстояниями в типичных строениях; и установите число знаков после запятой на 4, чтобы учитывать малейшие доли метра.

3. Используйте кнопку Показывать сетку для показа сетки с достаточным разрешением. Вы можете изменить вид сетки в меню Правка → Настройки → Draft → Сетка и привязка → Сетка. Установите линии через каждые 50 mm, с главными линиями каждые 20 линий (каждый метр), и 1000 линий всего (сетка покрывает площадь 50 x 50 метров).

4. Отодвиньте трёхмерный вид, если сетка слишком близка.

Теперь мы готовы сделать простейшую стену, где мы установим окна и двери.

Установка стены

5. Используйте инструмент Draft Wire для создания полилинии. Ведите её против часовой стрелки.

5.1. Первая точка в (0, 4, 0); в диалоге введите 0 m Enter, 4 m Enter, 0 m Enter.
5.2. Вторая точка в (2, 0, 0); в диалоге введите 2 m Enter, 0 m Enter, 0 m Enter.
5.3. Третья точка в (4, 0, 0); в диалоге введите 4 m Enter, 0 m Enter, 0 m Enter.
5.4. Четвёртая точка в (6, 2, 0); в диалоге введите 6 m Enter, 2 m Enter, 0 m Enter.
5.4. Пятая точка в (6, 5, 0); в диалоге введите 6 m Enter, 5 m Enter, 0 m Enter.
5.5. На клавиатуре нажмите A для завершения полилинии.
5.6. На клавиатуре нажмите 0 для получения аксонометрического вида модели.
Примечание: убедитесь, что чекбокс Относительно (R) не отмечен, когда вводите абсолютные координаты.
Примечание 2: точки могут быть определены указателем мыши по точкам сетки, с помощью панели Draft Snap и метода Draft Grid.
Примечание 3: вы можете создать формы программированием на Python. Учтите, что большинство функций ожидают ввод в миллиметрах.
import FreeCAD
import Draft

p = [FreeCAD.Vector(0.0, 4000.0, 0),
FreeCAD.Vector(2000.0, 0.0, 0.0),
FreeCAD.Vector(4000.0, 0.0, 0.0),
FreeCAD.Vector(6000.0, 2000.0, 0.0),
FreeCAD.Vector(6000.0, 5000.0, 0.0)]

w = Draft.makeWire(p, closed=False)

6. Выделите DWire и кликните инструмент Arch Wall; появится стена с шириной (толщиной) по умолчанию 0,2 м и высотой 3 м.

Базовая линия для стены

Стена, полученная из полилинии

Установка стандартных дверей и окон

7. Кликните инструмент Arch Window; в ниспадающем списке Preset выделите Simple door, и установите высоту в 2 м.

7.1. Установите привязку на Draft Midpoint, и попробуйте выделить нижнюю грань передней стены; поверните standard view как требуется, чтобы зацепить грань, а не поверхность стены; когда активна средняя точка, кликните для установки двери.
7.2. Кликните снова инструмент Arch Window, и установите другую дверь, на сей раз в средней точке крайней правой стены; поворачивайте standard view по необходимости.

Захват по средней точке нижней грани стены для установки двери

Примечание: Sill height это дистанция от пола до нижнего края элемента. Для дверей Sill height обычно 0 m, поскольку двери обычно на уровне пола; с другой стороны, окна обычно отделяет от пола от 0.5 до 1.5 m. Sill height может быть установлен только при создании окна или двери из заготовки. Когда окно или двери вставлены, корректируйте их размещение редактированием вектора ДанныеPosition [x, y, z] базового эскиза (Sketch).

Создание пользовательских дверей и окон

8. Переключитесь на верстак Sketcher; выделите часть стены справа, где нет двери; кликните на Новый эскиз; выделите FlatFace как метод прикрепления. Если существующая геометрия заслоняет ваш вид, кликните Обзор эскиза чтобы спрятать её.

9. Нарисуйте милый эскиз с тремя замкнутыми полилиниями. Убедитесь в наличии ограничений для всех полилиний.

9.1. Внешняя полилиния - наибольшая, определяет главный размер оконного объекта и размер выреза в стене при внедрении окна в Arch Wall. Убедитесь, что размеры подходяще названы, например Width и Height. Ограничения так же определяют curvature of the outer wire; дайте им подходящее имя, вроде HeightCurve.
9.2. Следующая полилиния это смещение от внешней полилинии, и вместе с ней определяет ширину замоноличиваемой в стену оконной коробки. Назовите смещение соответствующе, например, FrameFixedOffset. Он будет использован как для вертикального, так и горизонтального смещения. Нижнее смещение, при установке в ноль приведёт к касанию оконной коробкой низа окна, это можно использовать для моделирования двери вместо окна. Дайте ей подходящее имя, вроде FrameFixedBottom.
9.3. Третья, внутренняя полилиния это смещение от второй полилинии и вместе с ней определяет подвижную раму окна. Внутренняя полилиния так же определяет размер стекла. Ещё раз, дайте этим смещениям говорящие имена, например, FrameInnerOffset и FrameInnerBottom.
9.4. Чтобы успешно построить эскиз, используйте горизонтальные (Sketcher ConstrainHorizontal) вертикальные (Sketcher ConstrainVertical) ограничения для непосредственных сторон; используйте дополнительную конструктивную геометрию (Sketcher ToggleConstruction) и тангенциальные ограничения (Sketcher ConstrainTangent) для корректного размещения дуг наверху. Поскольку сейчас окно симметрично, не забывайте, когда нужно, ограничения равенства (Sketcher ConstrainEqual), симметрии (Sketcher ConstrainSymmetric) и точки на объекте (Sketcher ConstrainPointOnObject).

Ограничения для внешних полилиний эскиза, формирующих окно

Ограничения для внутренних полилиний эскиза, формирующих окно

10. Когда эскиз полностью зафиксирован, нажмите Close для выхода из эскиза (Sketcher LeaveSketch).

10.1. Поскольку лицевая поверхность стены выбирается при начальных шагах создания эскиза, эскиз параллелен с ней, однако он может быть в неверной позиции, вне стены. В этом случае подстройте ДанныеPosition внутри ДанныеAttachment Offset. Установите ДанныеPosition в [4 m, 1 m, 0 m], так что эскиз будет центрирован по стене в одном метре от пола.
10.2. Вы можете видеть именованные ограничения эскиза в ДанныеConstraints. Значения могут меняться с немедленным визуальным контролем изменений эскиза.

Эскиз окна движется к желательной позиции на стене

Именованные ограничения эскиза, которые могут меняться без углубления в эскиз

11. Переключитесь обратно на верстак Arch и примените Arch Window к выбранному новому Sketch002. Будет создано окно, и отверстие под него в стене. Окно сделано из пользовательского эскиза, а не стандартной заготовки, так что ему требуется редактирование для корректного отображения его компонентов, то есть неподвижной рамы, внутренней рамы, и стекла.

Пользовательское окно, созданное из эскиза, у него пока нет правильной рамы или стекла

Настройка пользовательского окна

12. В древе проекта под Window выделите Sketch002, и нажмите Space, или измените свойство ВидVisibility на true.

13. Дважды кликните на Window в древе проекта для начала его редактирования.

13.1. Внутри диалога Window elements имеется две панели, Wires и Components. Там будет три полилинии, Wire0, Wire1 и Wire2, и один компонент, Default. Полилинии указывают на замкнутые кривые, нарисованные на эскизе; компоненты определяют области на эскизе, которые будут выдавлены для создания рамы или стеклянной панели с реальной толщиной, эти области разделяются полилиниями. Окно, созданное из заготовки, уже имеет два компонента, OuterFrame и Glass. Пользовательское окно нужно редактировать для получения такой структуры.

Диалог редактирования окна или двери

13.2. Кликните на Default, потом на кнопке Remove чтобы убрать его.
13.3. Кликните Add; что покажет параметры нового компонента вроде Name, Type, Wires, Thickness, Offset, Hinge, и Opening mode. Дайте имя, вроде OuterFrame, выделите Frame для типа Type, и кликните на Wire0 и Wire1; они будут подсвечены в окне трёхмерного вида. Добавьте небольшое значение для Thickness, 15 mm, и отметьте чекбокс для установки значения по умолчанию. Это значение по умолчанию будет длинной, назначенной параметру ДанныеFrame; подобное умолчание может быть назначено для параметра ДанныеOffset. Кликните на кнопке +Create/update componentдля завершения редактирования компонента.
13.4. Кликните Add; дайте другое имя, вроде InnerFrame, укажите Frame для Type и кликните на Wire1 и Wire2. Добавьте подходящего размера Thickness, 60 mm, и Offset, 15 mm. Затем кликните кнопку +Create/update component.
13.5. Кликните Add; дайте другое имя, вроде Glass, выберите Glass panel для Type, и кликните Wire2. Добавьте подходящего размера Thickness, 10 mm и Offset, 40 mm. Затем кликните кнопку +Create/update component. Если любой из трёх компонентов нуждается в модификации, выделите его и нажмите Edit; модификация сохранится только после нажатия кнопки +Create/update component.

Редактирование ранее определённого компонента окна или двери

13.6. Если всё установлено, кликните Close для завершения редактирования окна. Эскиз вновь станет не виден, но окно покажет различимые элементы для OuterFrame, для InnerFrame, и Glass. Задайте для ДанныеFrame значение 100 mm для толщины по умолчанию, которое будет добавлено к значению, определённому в компоненте OuterFrame.

Вид параметров окна для добавления значений по умолчанию для Frame length, Offset length и других опций

Итоговое окно с соответствующими компонентами, внедрёнными в стену

Размножение пользовательского окна

14. В древе проектов выделите Window и нижележащий Sketch002. Затем выполните Edit → Duplicate selection, и при запросе ответьте No для дублирования невыбранных зависимостей. Новые Window001 и Sketch003 появятся там же, где оригинальные элементы.

15. Выделите новый Sketch003. Перейдите к параметру ДанныеMap Mode и кликните на эллипсе возле значения FlatFace. В окне трёхмерного вида выделите левую сторону стены без каких-либо элементов; поверните standard view куда надо. Измените Attachment offset на [-1 m, 0 m, 0 m] для центрирования окна, и кликните OK. Эскиз и окно появятся на новой позиции.

Примечание: операция назначения так же может быть выполнена переключением на верстак Part и использованием меню Part → Attachment.

Диалог редактирования привязки плоскости эскиза

16. Вы можете настроить размеры нового окна изменением именованных параметров в Sketch003 в ДанныеConstraints, например, установив Height на 2 m, и Frame Fixed Bottom на 0 m. Затем нажмите Ctrl+R для пересчёта модели. Если окно не показывает увеличенного проёма под новое окно, выделите стену в древе проекта, кликните правой кнопкой и выберите Mark to recompute, затем снова нажмите Ctrl+R.

17. Эти операции меняют позиции нового окна, но проём в окне не выглядит правильно. Оно наклонено, то есть, проём не перпендикулярен поверхности стены, и может даже вырезать другие части стены. Проблема в том, что Window001 сохранила информацию о ДанныеNormal из оригинального Window.

Неправильный проём в стене из-за ошибочной нормали (Normal) окна

Нормали дверей и окон

18. Каждый объект Arch Window определяет выдавливание его тела, а так же отверстие, создаваемое в носящей его стене посредством ДанныеNormal.

Нормаль - это вектор [x, y, z], указывающий направление, перпендикулярное стене. Если заготовка окна или двери создаётся инструментом Arch Window прямо поверх стены, нормаль вычисляется автоматически, корректно выставляя получившееся окно или дверь. Так были созданы первые два объекта, Door и Door001.

Таким же образом, когда эскиз создаётся выделением плоскости, он ориентирован по этой плоскости. Затем, когда используется инструмент Arch Window, окно использует как нормаль перпендикулярное направление к эскизу. Это было в случае с третьим объектом, пользовательским Window.

Если окно уже есть и его нужно передвинуть, как в случае с дублированным объектом Window001, эскиз требуется перепривязать к другой плоскости. Это сдвигает и эскиз и окно, но в дальнейшем его нормаль автоматически не обновляется, поскольку имеет некорректную информацию выдавливания. Нормаль нуждается в ручном пересчёте и записи в ДанныеNormal.

Три значения вектора нормали высчитываются следующим образом.

x = -sin(angle)
y = cos(angle)
z = 0

Где angle - угол локальной оси Z эскиза относительно глобальной оси Y.

Когда создаётся эскиз, у него всегда две оси: локальная X (красная), и локальная Y (зелёная). Если эскиз привязан к глобальной рабочей плоскости XY, то эти оси выровнены, но если эскиз привязан к глобальным осям XZ или YZ, как это обычно бывает для окон и дверей (эскизы стоят вертикально), то локальная ось Z (голубая) составляет угол с глобальной осью Y, этот угол меняется от -180 до 180 градусов. Угол считается положительным, если он открывается против часовой стрелки, и отрицательный, если по часовой, начиная с глобальной оси Y.

Локальные координаты вертикально стоящего эскиза, то есть сопоставлен с глобальной плоскостью XZ

Намеченные направления нормалей для каждой двери и окна

Если мы посмотрим на до сих пор сделанную геометрию, мы увидим следующие нормали.

Door
Локальное Z выравнено с глобальным Y, значит, angle равен нулю. Нормальный вектор
x = -sin(0) = 0
y = cos(0) = 1
z = 0

или ДанныеNormal соответствует [0, 1, 0].

Door001
Локальное Z повёрнуто на 90 градусов относительно глобальной Y, значит, angle равен 90 (положительно, поскольку открыт против часовой стрелки). Вектор нормали равен
x = -sin(90) = -1
y = cos(90) = 0
z = 0

или ДанныеNormal равен [-1, 0, 0].

Window
Локальное Z повёрнуто на 45 градусов от глобальной Y, значит angle равен 45 (положительный, поскольку открывается против часовой стрелки). Нормальный вектор равен
x = -sin(45) = -0.7071
y = cos(45) = 0.7071
z = 0

или ДанныеNormal равен [-0.7071, 0.7071, 0].

Window001
Направление локального Z находится использованием инструмента Draft Dimension и измерением угла, который направляющая стены (Wire) составляет с глобальной осью Y, или любая линия, выровненная по ней. Этот угол равен 26.57; требуемый угол является дополнительным к этому, так что 90 - 26.57 = 63.43.

Это означает, что локальная ось Z повёрнута на 63.43 градусов от глобальной Y, значит, angle соответствует -63.46 (отрицательный, поскольку открывается по часовой стрелке). Вектор нормали

x = -sin(-63.43) = 0.8943
y = cos(-63.43) = 0.4472
z = 0

Значит, ДанныеNormal должен быть установлен в [0.8943, 0.4472, 0].

После выполнения изменений пересчитайте модель нажатием Ctrl+R. Если стена не обновит отверстие, выделите его в древе проекта, и по клику правой кнопки мыши выделите Mark to recompute, затем нажмите Ctrl+R вновь.

19. Ориентация выдавливания окна решена, вместе с отверстием в стене.

Корректный проём в стене в соответствии с нормалью окна

Конечные замечания

20. Как показано, Arch Window очень важно. Пользователь должен либо

  • Использовать инструмент Arch Window для вставки автоматического выравнивания заготовки в стену, или
  • привязать эскиз к желаемой стене и построить окно на нём.

Если окно уже существует, и его надо подвинуть, базовый эскиз должен быть перепривязан к новой плоскости, и ДанныеNormal окна надо будет пересчитать.

Направление новой нормали может быть получено измерением angle новой стены относительно оси Y, учитывая, является ли этот угол положительным (против часовой стрелки) или отрицательным (по часовой стрелке), и использованием простой формулы.

x = -sin(angle)
y = cos(angle)
z = 0

Для проверки корректности операции, абсолютная величина вектора нормали должна быть равна единице. То есть:

abs(N) = 1 = sqrt(x^2 + y^2 + z^2)
abs(N) = 1 = sqrt(sin^2(angle) + cos^2(angle) + z^2)