Tutorial custom placing of windows and doors/ru: Difference between revisions
(Created page with "4. Отодвиньте трёхмерный вид, если сетка слишком близка.") |
No edit summary |
||
(99 intermediate revisions by 3 users not shown) | |||
Line 9: | Line 9: | ||
}} |
}} |
||
<span id="Introduction"></span> |
|||
==Введение== |
==Введение== |
||
Этот учебник покажет как поместить спроектированное пользователем [[Arch Window/ru|окна]] и [[Arch Door/ru|двери]] в модели здания. Он использует верстаки [[Draft Workbench/ru|Draft]], [[Arch Workbench/ru|Arch]], и [[Sketcher Workbench/ru|Sketcher]]. |
Этот учебник покажет как поместить спроектированное пользователем [[Arch Window/ru|окна]] и [[Arch Door/ru|двери]] в модели здания. Он использует верстаки [[Draft Workbench/ru|Draft]], [[Arch Workbench/ru|Arch]], и [[Sketcher Workbench/ru|Sketcher]]. |
||
<div class="mw-translate-fuzzy"> |
|||
Используются следующие инструменты: [[Draft Grid/ru|Draft Grid]], [[Draft Snap/ru|Draft Snap]], [[Draft Wire/ru|Draft Wire]], [[Arch Wall/ru|Arch Wall]], [[Arch Window/ru|Arch Window]], и [[Sketcher NewSketch/ru|Sketcher NewSketch]]. Пользователь должен быть знаком с установкой ограничений в эскизах. |
|||
Используются следующие инструменты: [[Draft_Snap_Grid/ru|Draft Grid]], [[Draft Snap/ru|Draft Snap]], [[Draft Wire/ru|Draft Wire]], [[Arch Wall/ru|Arch Wall]], [[Arch Window/ru|Arch Window]], и [[Sketcher NewSketch/ru|Sketcher NewSketch]]. Пользователь должен быть знаком с установкой ограничений в эскизах. |
|||
</div> |
|||
Этот учебник был вдохновлён учебниками, написанными jpg87 на [https://forum.freecadweb.org/viewforum.php?f=36 форумах FreeCAD]. |
Этот учебник был вдохновлён учебниками, написанными jpg87 на [https://forum.freecadweb.org/viewforum.php?f=36 форумах FreeCAD]. |
||
Line 19: | Line 22: | ||
* [https://forum.freecadweb.org/viewtopic.php?f=36&t=32982 Arch : How to use your custom Window] |
* [https://forum.freecadweb.org/viewtopic.php?f=36&t=32982 Arch : How to use your custom Window] |
||
Посмотрите, пожалуйста, следующую ветку для дополнительной информации о позиционировании окон и дверей. |
|||
* [https://forum.freecadweb.org/viewtopic.php?t=35368 Discussion: Orientation of Windows and Doors] |
|||
Посмотрите так же следующую страницу ради некоторых видео о том, как выравнять окна. |
|||
* [http://help-freecad-jpg87.fr/04_arch_ind.php The workbench used to create architectural projects is called Arch] |
|||
<span id="Setup"></span> |
|||
== Установка == |
== Установка == |
||
Line 29: | Line 39: | ||
4. [[Zoom out/ru|Отодвиньте]] трёхмерный вид, если сетка слишком близка. |
4. [[Zoom out/ru|Отодвиньте]] трёхмерный вид, если сетка слишком близка. |
||
Теперь мы готовы сделать простейшую стену, где мы установим окна и двери. |
|||
Now we are ready to create a simple wall on which we can position windows and doors. |
|||
<span id="Placing_a_wall"></span> |
|||
== Placing a wall == |
|||
== Установка стены == |
|||
<div class="mw-translate-fuzzy"> |
|||
5. Use the [[Draft Wire]] tool to create a wire. Go counterclockwise. |
|||
5. Используйте инструмент [[Draft Wire/ru|Draft Wire]] для создания полилинии. Ведите её против часовой стрелки. |
|||
:5.1. First point in (0, 4, 0); in the dialog enter {{KEY|0}} {{KEY|m}} {{KEY|Enter}}, {{KEY|4}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}. |
|||
:5. |
:5.1. Первая точка в (0, 4, 0); в диалоге введите {{KEY|0}} {{KEY|m}} {{KEY|Enter}}, {{KEY|4}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}. |
||
:5. |
:5.2. Вторая точка в (2, 0, 0); в диалоге введите {{KEY|2}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}. |
||
:5. |
:5.3. Третья точка в (4, 0, 0); в диалоге введите {{KEY|4}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}. |
||
:5.4. |
:5.4. Четвёртая точка в (6, 2, 0); в диалоге введите {{KEY|6}} {{KEY|m}} {{KEY|Enter}}, {{KEY|2}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}. |
||
:5.4. Пятая точка в (6, 5, 0); в диалоге введите {{KEY|6}} {{KEY|m}} {{KEY|Enter}}, {{KEY|5}} {{KEY|m}} {{KEY|Enter}}, {{KEY|0}} {{KEY|m}} {{KEY|Enter}}. |
|||
:5.5. In the number pad press {{KEY|A}} to finish the wire. |
|||
:5.5. На клавиатуре нажмите {{KEY|A}} для завершения полилинии. |
|||
:5.6. In the number pad press {{KEY|0}} to get an [[axonometric view]] of the model. |
|||
:5.6. На клавиатуре нажмите {{KEY|0}} для получения [[axonometric view/ru|аксонометрического вида]] модели. |
|||
:{{Emphasis|Note:}} make sure the {{Emphasis|Relative}} checkbox is disabled if you are giving absolute coordinates. |
|||
:{{Emphasis|Примечание:}} убедитесь, что чекбокс {{Emphasis|Относительно (R)}} не отмечен, когда вводите абсолютные координаты. |
|||
:{{Emphasis|Note 2:}} the points can also be defined with the mouse pointer by choosing intersections on the grid, with the help of the [[Draft Snap]] toolbar and the [[Draft Grid]] method. |
|||
:{{Emphasis|Примечание 2:}} точки могут быть определены указателем мыши по точкам сетки, с помощью панели [[Draft Snap/ru|Draft Snap]] и метода [[Draft_Snap_Grid/ru|Draft Grid]]. |
|||
:{{Emphasis|Note 3:}} you can also create shapes programmatically by scripting in [[Python]]. Beware that most functions expect their input in millimeters. |
|||
:{{Emphasis|Примечание 3:}} вы можете создать формы программированием на [[Python/ru|Python]]. Учтите, что большинство функций ожидают ввод в миллиметрах. |
|||
</div> |
|||
{{Code|code= |
{{Code|code= |
||
Line 59: | Line 72: | ||
}} |
}} |
||
6. |
6. Выделите {{incode|DWire}} и кликните инструмент [[Arch Wall/ru|Arch Wall]]; появится стена с шириной (толщиной) по умолчанию 0,2 м и высотой 3 м. |
||
[[Image:01_T02_wire_wall.png|600px|center]] |
[[Image:01_T02_wire_wall.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Базовая линия для стены}} |
||
[[Image:02_T02_just_wall.png|600px|center]] |
[[Image:02_T02_just_wall.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Стена, полученная из полилинии}} |
||
<span id="Placing_preset_doors_and_windows"></span> |
|||
== Placing preset doors and windows == |
|||
== Установка стандартных дверей и окон == |
|||
<div class="mw-translate-fuzzy"> |
|||
7. Click the [[Arch Window]] tool; as preset select {{incode|Simple door}}, and change the height to 2 m. |
|||
7. Кликните инструмент [[Arch Window/ru|Arch Window]]; в ниспадающем списке Preset выделите {{incode|Simple door}}, и установите высоту в 2 м. |
|||
:7.1. Change the snapping to [[Draft Midpoint]], and try selecting the bottom edge of the frontal wall; rotate the [[standard view]] as necessary to help you pick the edge and not the wall face; when the midpoint is active, click to place the door. |
|||
:7.1. Установите привязку на [[Draft_Snap_Midpoint/ru|Draft Midpoint]], и попробуйте выделить нижнюю грань передней стены; поверните [[standard view/ru|standard view]] как требуется, чтобы зацепить грань, а не поверхность стены; когда активна средняя точка, кликните для установки двери. |
|||
:7.2. Click the [[Arch Window]] tool again, and place another door, but this time in the midpoint of the rightmost wall; rotate the [[standard view]] as necessary. |
|||
:7.2. Кликните снова инструмент [[Arch Window/ru|Arch Window]], и установите другую дверь, на сей раз в средней точке крайней правой стены; поворачивайте [[standard view/ru|standard view]] по необходимости. |
|||
</div> |
|||
[[Image:03_T02_wall_place_doors.png|600px|center]] |
[[Image:03_T02_wall_place_doors.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Захват по средней точке нижней грани стены для установки двери}} |
||
<div class="mw-translate-fuzzy"> |
|||
:{{Emphasis|Note:}} the {{incode|Sill height}} is the distance from the floor to the lower edge of the element. For doors the {{incode|Sill height}} is usually 0 m as doors are normally touching the floor; on the other hand, windows have a usual separation of 0.5 m to 1.5 m from the floor. The {{incode|Sill height}} can only be set when initially creating the window or door from a preset. Once the window or door is inserted, modify its placement by editing the {{PropertyData|Position}} vector {{incode|[x, y, z]}} of the underlying [[Sketcher Sketch]]. |
|||
:{{Emphasis|Примечание:}} {{incode|Sill height}} это дистанция от пола до нижнего края элемента. Для дверей {{incode|Sill height}} обычно 0 m, поскольку двери обычно на уровне пола; с другой стороны, окна обычно отделяет от пола от 0.5 до 1.5 m. {{incode|Sill height}} может быть установлен только при создании окна или двери из заготовки. Когда окно или двери вставлены, корректируйте их размещение редактированием вектора {{PropertyData|Position}} {{incode|[x, y, z]}} базового эскиза ([[Sketcher_Workbench/ru|Sketch]]). |
|||
</div> |
|||
<span id="Creating_custom_doors_and_windows"></span> |
|||
== Creating custom doors and windows == |
|||
== Создание пользовательских дверей и окон == |
|||
8. |
8. Переключитесь на [[Sketcher Workbench/ru|верстак Sketcher]]; выделите часть стены справа, где нет двери; кликните на [[Sketcher NewSketch/ru|Новый эскиз]]; выделите {{Button|FlatFace}} как метод прикрепления. Если существующая геометрия заслоняет ваш вид, кликните [[Sketcher ViewSection/ru|Обзор эскиза]] чтобы спрятать её. |
||
9. Нарисуйте милый эскиз с тремя замкнутыми полилиниями. Убедитесь в наличии ограничений для всех полилиний. |
|||
9. Draw a fancy sketch containing three closed wires. Make sure to provide constraints to all wires. |
|||
:9.1. |
:9.1. Внешняя полилиния - наибольшая, определяет главный размер оконного объекта и размер выреза в стене при внедрении окна в [[Arch Wall/ru|Arch Wall]]. Убедитесь, что размеры подходяще названы, например {{incode|Width}} и {{incode|Height}}. Ограничения так же определяют curvature of the outer wire; дайте им подходящее имя, вроде {{incode|HeightCurve}}. |
||
:9.2. Следующая полилиния это смещение от внешней полилинии, и вместе с ней определяет ширину замоноличиваемой в стену оконной коробки. Назовите смещение соответствующе, например, {{incode|FrameFixedOffset}}. Он будет использован как для вертикального, так и горизонтального смещения. Нижнее смещение, при установке в ноль приведёт к касанию оконной коробкой низа окна, это можно использовать для моделирования двери вместо окна. Дайте ей подходящее имя, вроде {{incode|FrameFixedBottom}}. |
|||
:9.2. The second wire is offset from the outer wire, and together with it, they define the width of the fixed frame of the window. Name the offset appropriately, for example, {{incode|FrameFixedOffset}}. It will be used for both the top vertical and horizontal offsets. The bottom offset, if set to zero, will result in the fixed frame touching the bottom of the window; this can be used to model a door instead of a window. Give it an appropriate name, like {{incode|FrameFixedBottom}}. |
|||
:9.3. Третья, внутренняя полилиния это смещение от второй полилинии и вместе с ней определяет подвижную раму окна. Внутренняя полилиния так же определяет размер стекла. Ещё раз, дайте этим смещениям говорящие имена, например, {{incode|FrameInnerOffset}} и {{incode|FrameInnerBottom}}. |
|||
:9.3. The third, innermost wire is offset from the second wire, and together with it, they define the frame of the window that can open. The innermost wire also defines the size of the glass panel. Again, give meaningful names to these offsets, for example, {{incode|FrameInnerOffset}} and {{incode|FrameInnerBottom}}. |
|||
:9.4. |
:9.4. Чтобы успешно построить эскиз, используйте горизонтальные ([[Sketcher ConstrainHorizontal/ru|Sketcher ConstrainHorizontal]]) вертикальные ([[Sketcher ConstrainVertical/ru|Sketcher ConstrainVertical]]) ограничения для непосредственных сторон; используйте дополнительную конструктивную геометрию ([[Sketcher ToggleConstruction/ru|Sketcher ToggleConstruction]]) и тангенциальные ограничения ([[Sketcher ConstrainTangent/ru|Sketcher ConstrainTangent]]) для корректного размещения дуг наверху. Поскольку сейчас окно симметрично, не забывайте, когда нужно, ограничения равенства ([[Sketcher ConstrainEqual/ru|Sketcher ConstrainEqual]]), симметрии ([[Sketcher ConstrainSymmetric/ru|Sketcher ConstrainSymmetric]]) и точки на объекте ([[Sketcher ConstrainPointOnObject/ru|Sketcher ConstrainPointOnObject]]). |
||
[[Image:04_T02_window_constraints_outer_frame.png|center]] |
[[Image:04_T02_window_constraints_outer_frame.png|center]] |
||
{{Caption|align=center|Ограничения для внешних полилиний эскиза, формирующих окно}} |
|||
{{Caption|align=center|Constraints for the outer wires of the sketch that form the window}} |
|||
[[Image:05_T02_window_constraints_inner_frame.png|center]] |
[[Image:05_T02_window_constraints_inner_frame.png|center]] |
||
{{Caption|align=center|Ограничения для внутренних полилиний эскиза, формирующих окно}} |
|||
{{Caption|align=center|Constraints for the inner wires of the sketch that form the window}} |
|||
10. |
10. Когда эскиз полностью зафиксирован, нажмите {{Button|Close}} для выхода из эскиза ([[Sketcher LeaveSketch/ru|Sketcher LeaveSketch]]). |
||
:10.1. |
:10.1. Поскольку лицевая поверхность стены выбирается при начальных шагах создания эскиза, эскиз параллелен с ней, однако он может быть в неверной позиции, вне стены. В этом случае подстройте {{PropertyData|Position}} внутри {{PropertyData|Attachment Offset}}. Установите {{PropertyData|Position}} в {{incode|[4 m, 1 m, 0 m]}}, так что эскиз будет центрирован по стене в одном метре от пола. |
||
:10.2. Вы можете видеть именованные ограничения эскиза в {{PropertyData|Constraints}}. Значения могут меняться с немедленным визуальным контролем изменений эскиза. |
|||
:10.2. You can see the named constraints under {{PropertyData|Constraints}}. The values can be modified to see the sketch change dimensions immediately. |
|||
[[Image:07_T02_window_sketch_in_wall.png|600px|center]] |
[[Image:07_T02_window_sketch_in_wall.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Эскиз окна движется к желательной позиции на стене}} |
||
[[Image:06_T02_window_sketch_properties_constraints.png|600px|center]] |
[[Image:06_T02_window_sketch_properties_constraints.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Именованные ограничения эскиза, которые могут меняться без углубления в эскиз}} |
||
11. Переключитесь обратно на [[Arch Workbench/ru|верстак Arch]] и примените [[Arch Window]] к выбранному новому {{incode|Sketch002}}. Будет создано окно, и отверстие под него в стене. Окно сделано из пользовательского эскиза, а не стандартной заготовки, так что ему требуется редактирование для корректного отображения его компонентов, то есть неподвижной рамы, внутренней рамы, и стекла. |
|||
11. Change back to the [[Arch Workbench]] and, with the new {{incode|Sketch002}} selected, use [[Arch Window]]. A window will be created, and will make a hole in the wall. The window is made from a custom sketch, and not from a preset, so it needs to be edited in order to correctly display its components, that is, the fixed frame, the inner frame, and the glass panel. |
|||
[[Image:08_T02_window_basic_in_wall.png|600px|center]] |
[[Image:08_T02_window_basic_in_wall.png|600px|center]] |
||
{{Caption|align=center|Пользовательское окно, созданное из эскиза, у него пока нет правильной рамы или стекла}} |
|||
{{Caption|align=center|Custom window created from the sketch; it still doesn't have a proper frame, nor glass}} |
|||
<span id="Setting_up_the_custom_window"></span> |
|||
== Setting up the custom window == |
|||
== Настройка пользовательского окна == |
|||
12. |
12. В древе проекта под {{incode|Window}} выделите {{incode|Sketch002}}, и нажмите {{KEY|Space}}, или измените свойство {{PropertyView|Visibility}} на {{TRUE}}. |
||
13. |
13. Дважды кликните на {{incode|Window}} в древе проекта для начала его редактирования. |
||
:13.1. |
:13.1. Внутри диалога {{incode|Window elements}} имеется две панели, {{incode|Wires}} и {{incode|Components}}. Там будет три полилинии, {{incode|Wire0}}, {{incode|Wire1}} и {{incode|Wire2}}, и один компонент, {{incode|Default}}. Полилинии указывают на замкнутые кривые, нарисованные на эскизе; компоненты определяют области на эскизе, которые будут выдавлены для создания рамы или стеклянной панели с реальной толщиной, эти области разделяются полилиниями. Окно, созданное из заготовки, уже имеет два компонента, {{incode|OuterFrame}} и {{incode|Glass}}. Пользовательское окно нужно редактировать для получения такой структуры. |
||
[[Image:09_T02_window_edit_default.png|center]] |
[[Image:09_T02_window_edit_default.png|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Диалог редактирования окна или двери}} |
||
:13.2. |
:13.2. Кликните на {{incode|Default}}, потом на кнопке {{Button|Remove}} чтобы убрать его. |
||
:13.3. |
:13.3. Кликните {{Button|Add}}; что покажет параметры нового компонента вроде {{incode|Name}}, {{incode|Type}}, {{incode|Wires}}, {{incode|Thickness}}, {{incode|Offset}}, {{incode|Hinge}}, и {{incode|Opening mode}}. Дайте имя, вроде {{incode|OuterFrame}}, выделите {{incode|Frame}} для типа {{incode|Type}}, и кликните на {{incode|Wire0}} и {{incode|Wire1}}; они будут подсвечены в окне трёхмерного вида. Добавьте небольшое значение для {{incode|Thickness}}, {{incode|15 mm}}, и отметьте чекбокс для установки значения по умолчанию. Это значение по умолчанию будет длинной, назначенной параметру {{PropertyData|Frame}}; подобное умолчание может быть назначено для параметра {{PropertyData|Offset}}. Кликните на кнопке {{Button|+Create/update component}}для завершения редактирования компонента. |
||
:13.4. |
:13.4. Кликните {{Button|Add}}; дайте другое имя, вроде {{incode|InnerFrame}}, укажите {{incode|Frame}} для {{incode|Type}} и кликните на {{incode|Wire1}} и {{incode|Wire2}}. Добавьте подходящего размера {{incode|Thickness}}, {{incode|60 mm}}, и {{incode|Offset}}, {{incode|15 mm}}. Затем кликните кнопку {{Button|+Create/update component}}. |
||
:13.5. |
:13.5. Кликните {{Button|Add}}; дайте другое имя, вроде {{incode|Glass}}, выберите {{incode|Glass panel}} для {{incode|Type}}, и кликните {{incode|Wire2}}. Добавьте подходящего размера {{incode|Thickness}}, {{incode|10 mm}} и {{incode|Offset}}, {{incode|40 mm}}. Затем кликните кнопку {{Button|+Create/update component}}. Если любой из трёх компонентов нуждается в модификации, выделите его и нажмите {{Button|Edit}}; модификация сохранится только после нажатия кнопки {{Button|+Create/update component}}. |
||
[[Image:10_T02_window_edit_components.png|center]] |
[[Image:10_T02_window_edit_components.png|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Редактирование ранее определённого компонента окна или двери}} |
||
:13.6. |
:13.6. Если всё установлено, кликните {{Button|Close}} для завершения редактирования окна. Эскиз вновь станет не виден, но окно покажет различимые элементы для {{incode|OuterFrame}}, для {{incode|InnerFrame}}, и {{incode|Glass}}. Задайте для {{PropertyData|Frame}} значение {{incode|100 mm}} для толщины по умолчанию, которое будет добавлено к значению, определённому в компоненте {{incode|OuterFrame}}. |
||
[[Image:11_T02_window_property_view.png|center]] |
[[Image:11_T02_window_property_view.png|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Вид параметров окна для добавления значений по умолчанию для Frame length, Offset length и других опций}} |
||
[[Image:12_T02_window_finished.png|600px|center]] |
[[Image:12_T02_window_finished.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Итоговое окно с соответствующими компонентами, внедрёнными в стену}} |
||
<span id="Duplicating_the_custom_window"></span> |
|||
== Duplicating the custom window == |
|||
== Размножение пользовательского окна == |
|||
14. |
14. В древе проектов выделите {{incode|Window}} и нижележащий {{incode|Sketch002}}. Затем выполните {{MenuCommand|Edit → Duplicate selection}}, и при запросе ответьте {{Button|No}} для дублирования невыбранных зависимостей. Новые {{incode|Window001}} и {{incode|Sketch003}} появятся там же, где оригинальные элементы. |
||
<div class="mw-translate-fuzzy"> |
|||
15. Select the new {{incode|Sketch003}}. Go to the {{PropertyData|Map Mode}} property, and click on the ellipsis next to the {{incode|FlatFace}} value. In the 3D viewport select the left side of the wall which doesn't have any element; rotate the [[standard view]] as necessary. Change the {{incode|Attachment offset}} to [-1 m, 0 m, 0 m] to center the window, and click {{Button|OK}}. The sketch and the window should appear in a new position. |
|||
15. Выделите новый {{incode|Sketch003}}. Перейдите к параметру {{PropertyData|Map Mode}} и кликните на эллипсе возле значения {{incode|FlatFace}}. В окне трёхмерного вида выделите левую сторону стены без каких-либо элементов; поверните [[standard view/ru|standard view]] куда надо. Измените {{incode|Attachment offset}} на [-1 m, 0 m, 0 m] для центрирования окна, и кликните {{Button|OK}}. Эскиз и окно появятся на новой позиции. |
|||
:{{Emphasis|Note:}} the [[Part Attachment|attachment operation]] can also be performed by changing to the [[Part Workbench]], and then using the menu {{MenuCommand|Part → Attachment}}. |
|||
:{{Emphasis|Примечание:}} [[Part EditAttachment|операция назначения]] так же может быть выполнена переключением на [[Part Workbench/ru|верстак Part]] и использованием меню {{MenuCommand|Part → Attachment}}. |
|||
</div> |
|||
[[Image:13_T02_sketch_attachment_edit.png|center]] |
[[Image:13_T02_sketch_attachment_edit.png|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Диалог редактирования привязки плоскости эскиза}} |
||
16. |
16. Вы можете настроить размеры нового окна изменением именованных параметров в {{incode|Sketch003}} в {{PropertyData|Constraints}}, например, установив {{incode|Height}} на {{incode|2 m}}, и {{incode|Frame Fixed Bottom}} на {{incode|0 m}}. Затем нажмите {{KEY|Ctrl}}+{{KEY|R}} для [[recompute/ru|пересчёта]] модели. Если окно не показывает увеличенного проёма под новое окно, выделите стену в древе проекта, кликните правой кнопкой и выберите {{incode|Mark to recompute}}, затем снова нажмите {{KEY|Ctrl}}+{{KEY|R}}. |
||
17. Эти операции меняют позиции нового окна, но проём в окне не выглядит правильно. Оно наклонено, то есть, проём не перпендикулярен поверхности стены, и может даже вырезать другие части стены. Проблема в том, что {{incode|Window001}} сохранила информацию о {{PropertyData|Normal}} из оригинального {{incode|Window}}. |
|||
17. These operations have changed the position of the new window, but the opening in the wall doesn't look correct. It is slanted, that is, the hole is not perpendicular to the face of the wall, and it may even cut other parts of the wall. The problem is that {{incode|Window001}} has retained the {{PropertyData|Normal}} information of the original {{incode|Window}}. |
|||
[[Image:14_T02_sketch_2_attached_slanted.png|600px|center]] |
[[Image:14_T02_sketch_2_attached_slanted.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Неправильный проём в стене из-за ошибочной нормали (Normal) окна}} |
||
<span id="Normals_of_doors_and_windows"></span> |
|||
== Normals of doors and windows == |
|||
== Нормали дверей и окон == |
|||
18. |
18. Каждый объект [[Arch Window/ru|Arch Window]] определяет выдавливание его тела, а так же отверстие, создаваемое в носящей его стене посредством {{PropertyData|Normal}}. |
||
Нормаль - это вектор {{incode|[x, y, z]}}, указывающий направление, перпендикулярное стене. Если заготовка окна или двери создаётся инструментом [[Arch Window/ru|Arch Window]] прямо поверх [[Arch Wall/ru|стены]], нормаль вычисляется автоматически, корректно выставляя получившееся окно или дверь. Так были созданы первые два объекта, {{incode|Door}} и {{incode|Door001}}. |
|||
The normal is a vector {{incode|[x, y, z]}} that indicates a direction perpedicular to a wall. When a window or door preset is created with the [[Arch Window]] tool directly over an [[Arch Wall]], the normal is automatically calculated, and the resulting window or door is correctly aligned; the first two objects, {{incode|Door}} and {{incode|Door001}}, were created in this way. |
|||
Таким же образом, когда эскиз создаётся выделением плоскости, он ориентирован по этой плоскости. Затем, когда используется инструмент [[Arch Window/ru|Arch Window]], окно использует как нормаль перпендикулярное направление к эскизу. Это было в случае с третьим объектом, пользовательским {{incode|Window}}. |
|||
In similar way, when a sketch is created by selecting a planar surface, it is oriented on this plane. Then when the [[Arch Window]] tool is used, the window will use as normal the perpendicular direction to the sketch. This was the case with the third object, the custom {{incode|Window}}. |
|||
Если окно уже есть и его нужно передвинуть, как в случае с дублированным объектом {{incode|Window001}}, эскиз требуется перепривязать к другой плоскости. Это сдвигает и эскиз и окно, но в дальнейшем его нормаль автоматически не обновляется, поскольку имеет некорректную информацию выдавливания. Нормаль нуждается в ручном пересчёте и записи в {{PropertyData|Normal}}. |
|||
If the window already exists and needs to be moved, as was the case with the duplicated {{incode|Window001}} object, the sketch needs to be remapped to another plane; doing this moves both the sketch and the window, but the latter doesn't automatically update its normal, so it has incorrect extrusion information. The normal needs to be calculated manually and written to {{PropertyData|Normal}}. |
|||
Три значения вектора нормали высчитываются следующим образом. |
|||
The three values of the normal vector are calculated as following. |
|||
{{Code|code= |
{{Code|code= |
||
x = -sin(angle) |
x = -sin(angle) |
||
Line 183: | Line 207: | ||
z = 0 |
z = 0 |
||
}} |
}} |
||
Где {{incode|angle}} - угол локальной оси Z эскиза относительно глобальной оси Y. |
|||
Where {{incode|angle}} is the angle of the local Z axis of the sketch with respect to the global Y axis. |
|||
Когда создаётся эскиз, у него всегда две оси: локальная X (красная), и локальная Y (зелёная). Если эскиз привязан к глобальной рабочей плоскости XY, то эти оси выровнены, но если эскиз привязан к глобальным осям XZ или YZ, как это обычно бывает для окон и дверей (эскизы стоят вертикально), то локальная ось Z (голубая) составляет угол с глобальной осью Y, этот угол меняется от -180 до 180 градусов. Угол считается положительным, если он открывается против часовой стрелки, и отрицательный, если по часовой, начиная с глобальной оси Y. |
|||
When a sketch is created, it always has two axes, a local X (red) and a local Y (green). If the sketch is mapped to the global XY working plane, then these axes are aligned; but if the sketch is mapped on the global XZ or global YZ planes, as is common with windows and doors (the sketches are "standing up"), then the local Z (blue) forms an angle with the global Y axis; this angle varies from -180 to 180 degrees. The angle is considered positive if it opens counterclockwise, and it is negative if it opens clockwise, starting from the global Y axis. |
|||
[[Image:15_T02_sketch_local_coordinates.png|600px|center]] |
[[Image:15_T02_sketch_local_coordinates.png|600px|center]] |
||
{{Caption|align=center|Локальные координаты вертикально стоящего эскиза, то есть сопоставлен с глобальной плоскостью XZ}} |
|||
{{Caption|align=center|Local coordinates of a sketch that is "standing up", that is, mapped to the global XZ plane}} |
|||
[[Image:16_T02_sketch_correct_normal_direction.png|600px|center]] |
[[Image:16_T02_sketch_correct_normal_direction.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Намеченные направления нормалей для каждой двери и окна}} |
||
Если мы посмотрим на до сих пор сделанную геометрию, мы увидим следующие нормали. |
|||
If we look at the geometry created so far, we see the following normals. |
|||
;{{incode|Door}} |
;{{incode|Door}} |
||
: |
: Локальное Z выравнено с глобальным Y, значит, {{incode|angle}} равен нулю. Нормальный вектор |
||
{{Code|code= |
{{Code|code= |
||
x = -sin(0) = 0 |
x = -sin(0) = 0 |
||
Line 204: | Line 228: | ||
z = 0 |
z = 0 |
||
}} |
}} |
||
или {{PropertyData|Normal}} соответствует {{incode|[0, 1, 0]}}. |
|||
;{{incode|Door001}} |
;{{incode|Door001}} |
||
: Локальное Z повёрнуто на 90 градусов относительно глобальной Y, значит, {{incode|angle}} равен 90 (положительно, поскольку открыт против часовой стрелки). Вектор нормали равен |
|||
: The local Z is rotated 90 degrees from the global Y, therefore, the {{incode|angle}} is 90 (positive, because it opens counterclockwise). The normal vector is |
|||
{{Code|code= |
{{Code|code= |
||
x = -sin(90) = -1 |
x = -sin(90) = -1 |
||
Line 213: | Line 237: | ||
z = 0 |
z = 0 |
||
}} |
}} |
||
или {{PropertyData|Normal}} равен {{incode|[-1, 0, 0]}}. |
|||
;{{incode|Window}} |
;{{incode|Window}} |
||
: Локальное Z повёрнуто на 45 градусов от глобальной Y, значит {{incode|angle}} равен 45 (положительный, поскольку открывается против часовой стрелки). Нормальный вектор равен |
|||
: The local Z is rotated 45 degrees from the global Y, therefore, the {{incode|angle}} is 45 (positive, because it opens counterclockwise). The normal vector is |
|||
{{Code|code= |
{{Code|code= |
||
x = -sin(45) = -0.7071 |
x = -sin(45) = -0.7071 |
||
Line 222: | Line 246: | ||
z = 0 |
z = 0 |
||
}} |
}} |
||
или {{PropertyData|Normal}} равен {{incode|[-0.7071, 0.7071, 0]}}. |
|||
;{{incode|Window001}} |
;{{incode|Window001}} |
||
: |
: Направление локального Z находится использованием инструмента [[Draft Dimension/ru|Draft Dimension]] и измерением угла, который направляющая стены ({{incode|Wire}}) составляет с глобальной осью Y, или любая линия, выровненная по ней. Этот угол равен {{incode|26.57}}; требуемый угол является дополнительным к этому, так что <code>90 - 26.57 = 63.43</code>. |
||
Это означает, что локальная ось Z повёрнута на 63.43 градусов от глобальной Y, значит, {{incode|angle}} соответствует -63.46 (отрицательный, поскольку открывается по часовой стрелке). Вектор нормали |
|||
This means the local Z axis is rotated 63.43 degrees from the global Y, therefore, the {{incode|angle}} is -63.46 (negative, because it opens clockwise). The normal vector is |
|||
{{Code|code= |
{{Code|code= |
||
x = -sin(-63.43) = 0.8943 |
x = -sin(-63.43) = 0.8943 |
||
Line 233: | Line 257: | ||
z = 0 |
z = 0 |
||
}} |
}} |
||
Значит, {{PropertyData|Normal}} должен быть установлен в {{incode|[0.8943, 0.4472, 0]}}. |
|||
После выполнения изменений пересчитайте модель нажатием {{KEY|Ctrl}}+{{KEY|R}}. Если стена не обновит отверстие, выделите его в древе проекта, и по клику правой кнопки мыши выделите {{incode|Mark to recompute}}, затем нажмите {{KEY|Ctrl}}+{{KEY|R}} вновь. |
|||
19. Ориентация выдавливания окна решена, вместе с отверстием в стене. |
|||
19. The orientation of the extrusion of the window is resolved, together with the opening in the wall. |
|||
[[Image:17_T02_sketch_2_attached_correctly.png|600px|center]] |
[[Image:17_T02_sketch_2_attached_correctly.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Корректный проём в стене в соответствии с нормалью окна}} |
||
<span id="Final_remarks"></span> |
|||
== Final remarks == |
|||
== Конечные замечания == |
|||
20. Как показано, [[Arch Window/ru|Arch Window]] очень важно. Пользователь должен либо |
|||
20. As demonstrated, the initial placement of the [[Arch Window]] is very important. The user should either |
|||
* Использовать инструмент [[Arch Window/ru|Arch Window]] для вставки автоматического выравнивания заготовки в стену, или |
|||
* use the [[Arch Window]] tool to insert and automatically align a preset to a wall, or |
|||
* привязать эскиз к желаемой стене и построить окно на нём. |
|||
* map a sketch to the desired wall, and build the window after that. |
|||
Если окно уже существует, и его надо подвинуть, базовый эскиз должен быть перепривязан к новой плоскости, и {{PropertyData|Normal}} окна надо будет пересчитать. |
|||
If a window already exists, and it needs to be moved, the supporting sketch should be remapped to a new plane, and the {{PropertyData|Normal}} of the window needs to be recalculated. |
|||
Направление новой нормали может быть получено измерением {{incode|angle}} новой стены относительно оси Y, учитывая, является ли этот угол положительным (против часовой стрелки) или отрицательным (по часовой стрелке), и использованием простой формулы. |
|||
The new normal direction can be obtained by measuring the {{incode|angle}} of the new wall with respect to the global Y axis, considering whether this angle is positive (counterclockwise) or negative (clockwise), and using a simple formula. |
|||
{{Code|code= |
{{Code|code= |
||
x = -sin(angle) |
x = -sin(angle) |
||
Line 258: | Line 283: | ||
}} |
}} |
||
Для проверки корректности операции, абсолютная величина вектора нормали должна быть равна единице. То есть: |
|||
To confirm that the operations are correct, the absolute magnitude of the normal vector should be one. That is, |
|||
{{Code|code= |
{{Code|code= |
||
abs(N) = 1 = sqrt(x^2 + y^2 + z^2) |
abs(N) = 1 = sqrt(x^2 + y^2 + z^2) |
||
Line 264: | Line 289: | ||
}} |
}} |
||
{{Userdocnavi}} |
|||
[[Category:Tutorials]] |
|||
[[Category:User Documentation]] |
|||
[[Category:Arch]] |
|||
[[Category:Draft]] |
|||
{{Arch Tools navi{{#translation:}}}} |
|||
[[Category:Sketcher]] |
|||
{{Draft Tools navi{{#translation:}}}} |
|||
{{Sketcher Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
Latest revision as of 18:40, 18 April 2023
Тема |
---|
Архитектура |
Уровень |
Средний |
Время для завершения |
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 м.
![](/images/thumb/c/cc/01_T02_wire_wall.png/600px-01_T02_wire_wall.png)
Базовая линия для стены
![](/images/thumb/4/40/02_T02_just_wall.png/600px-02_T02_just_wall.png)
Стена, полученная из полилинии
Установка стандартных дверей и окон
7. Кликните инструмент Arch Window; в ниспадающем списке Preset выделите Simple door
, и установите высоту в 2 м.
- 7.1. Установите привязку на Draft Midpoint, и попробуйте выделить нижнюю грань передней стены; поверните standard view как требуется, чтобы зацепить грань, а не поверхность стены; когда активна средняя точка, кликните для установки двери.
- 7.2. Кликните снова инструмент Arch Window, и установите другую дверь, на сей раз в средней точке крайней правой стены; поворачивайте standard view по необходимости.
![](/images/thumb/2/25/03_T02_wall_place_doors.png/600px-03_T02_wall_place_doors.png)
Захват по средней точке нижней грани стены для установки двери
- Примечание:
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).
![](/images/6/6f/04_T02_window_constraints_outer_frame.png)
Ограничения для внешних полилиний эскиза, формирующих окно
![](/images/8/85/05_T02_window_constraints_inner_frame.png)
Ограничения для внутренних полилиний эскиза, формирующих окно
10. Когда эскиз полностью зафиксирован, нажмите Close для выхода из эскиза (Sketcher LeaveSketch).
- 10.1. Поскольку лицевая поверхность стены выбирается при начальных шагах создания эскиза, эскиз параллелен с ней, однако он может быть в неверной позиции, вне стены. В этом случае подстройте ДанныеPosition внутри ДанныеAttachment Offset. Установите ДанныеPosition в
[4 m, 1 m, 0 m]
, так что эскиз будет центрирован по стене в одном метре от пола. - 10.2. Вы можете видеть именованные ограничения эскиза в ДанныеConstraints. Значения могут меняться с немедленным визуальным контролем изменений эскиза.
![](/images/thumb/0/0e/07_T02_window_sketch_in_wall.png/600px-07_T02_window_sketch_in_wall.png)
Эскиз окна движется к желательной позиции на стене
![](/images/thumb/2/2c/06_T02_window_sketch_properties_constraints.png/600px-06_T02_window_sketch_properties_constraints.png)
Именованные ограничения эскиза, которые могут меняться без углубления в эскиз
11. Переключитесь обратно на верстак Arch и примените Arch Window к выбранному новому Sketch002
. Будет создано окно, и отверстие под него в стене. Окно сделано из пользовательского эскиза, а не стандартной заготовки, так что ему требуется редактирование для корректного отображения его компонентов, то есть неподвижной рамы, внутренней рамы, и стекла.
![](/images/thumb/3/38/08_T02_window_basic_in_wall.png/600px-08_T02_window_basic_in_wall.png)
Пользовательское окно, созданное из эскиза, у него пока нет правильной рамы или стекла
Настройка пользовательского окна
12. В древе проекта под Window
выделите Sketch002
, и нажмите Space, или измените свойство ВидVisibility на true
.
13. Дважды кликните на Window
в древе проекта для начала его редактирования.
- 13.1. Внутри диалога
Window elements
имеется две панели,Wires
иComponents
. Там будет три полилинии,Wire0
,Wire1
иWire2
, и один компонент,Default
. Полилинии указывают на замкнутые кривые, нарисованные на эскизе; компоненты определяют области на эскизе, которые будут выдавлены для создания рамы или стеклянной панели с реальной толщиной, эти области разделяются полилиниями. Окно, созданное из заготовки, уже имеет два компонента,OuterFrame
иGlass
. Пользовательское окно нужно редактировать для получения такой структуры.
![](/images/9/97/09_T02_window_edit_default.png)
Диалог редактирования окна или двери
- 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.
![](/images/a/ad/10_T02_window_edit_components.png)
Редактирование ранее определённого компонента окна или двери
- 13.6. Если всё установлено, кликните Close для завершения редактирования окна. Эскиз вновь станет не виден, но окно покажет различимые элементы для
OuterFrame
, дляInnerFrame
, иGlass
. Задайте для ДанныеFrame значение100 mm
для толщины по умолчанию, которое будет добавлено к значению, определённому в компонентеOuterFrame
.
![](/images/3/34/11_T02_window_property_view.png)
Вид параметров окна для добавления значений по умолчанию для Frame length, Offset length и других опций
![](/images/thumb/d/de/12_T02_window_finished.png/600px-12_T02_window_finished.png)
Итоговое окно с соответствующими компонентами, внедрёнными в стену
Размножение пользовательского окна
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.
![](/images/e/e7/13_T02_sketch_attachment_edit.png)
Диалог редактирования привязки плоскости эскиза
16. Вы можете настроить размеры нового окна изменением именованных параметров в Sketch003
в ДанныеConstraints, например, установив Height
на 2 m
, и Frame Fixed Bottom
на 0 m
. Затем нажмите Ctrl+R для пересчёта модели. Если окно не показывает увеличенного проёма под новое окно, выделите стену в древе проекта, кликните правой кнопкой и выберите Mark to recompute
, затем снова нажмите Ctrl+R.
17. Эти операции меняют позиции нового окна, но проём в окне не выглядит правильно. Оно наклонено, то есть, проём не перпендикулярен поверхности стены, и может даже вырезать другие части стены. Проблема в том, что Window001
сохранила информацию о ДанныеNormal из оригинального Window
.
![](/images/thumb/5/58/14_T02_sketch_2_attached_slanted.png/600px-14_T02_sketch_2_attached_slanted.png)
Неправильный проём в стене из-за ошибочной нормали (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.
![](/images/thumb/7/75/15_T02_sketch_local_coordinates.png/600px-15_T02_sketch_local_coordinates.png)
Локальные координаты вертикально стоящего эскиза, то есть сопоставлен с глобальной плоскостью XZ
![](/images/thumb/4/4a/16_T02_sketch_correct_normal_direction.png/600px-16_T02_sketch_correct_normal_direction.png)
Намеченные направления нормалей для каждой двери и окна
Если мы посмотрим на до сих пор сделанную геометрию, мы увидим следующие нормали.
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. Ориентация выдавливания окна решена, вместе с отверстием в стене.
![](/images/thumb/c/c1/17_T02_sketch_2_attached_correctly.png/600px-17_T02_sketch_2_attached_correctly.png)
Корректный проём в стене в соответствии с нормалью окна
Конечные замечания
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)
- Elements: Wall, Structure, Curtain Wall, Window, Roof, Space, Stairs, Equipment, Frame, Fence, Truss, Profile, Pipe, Pipe Connector
- Reinforcements: Straight Rebar, U-Shape Rebar, L-Shape Rebar, Stirrup, Bent-Shape Rebar, Helical Rebar, Column Reinforcement, Beam Reinforcement, Slab Reinforcement, Footing Reinforcement, Custom Rebar
- Panels: Panel, Panel Cut, Panel Sheet, Nest
- Materials: Material, Multi-Material
- Organization: Building Part, Project, Site, Building, Level, External reference, Section Plane, Schedule
- Axes: Axis, Axes system, Grid
- Modification: Cut with plane, Add component, Remove component, Survey
- Utilities: Component, Clone component, Split Mesh, Mesh to Shape, Select non-manifold meshes, Remove Shape from Arch, Close Holes, Merge Walls, Check, Toggle IFC Brep flag, 3 Views from mesh, Create IFC spreadsheet, Toggle Subcomponents
- Additional: Preferences, Import Export Preferences (IFC, DAE, OBJ, JSON, 3DS, SHP), IfcOpenShell, IfcPlusPlus, Arch API
- Drafting: Line, Polyline, Fillet, Arc, Arc by 3 points, Circle, Ellipse, Rectangle, Polygon, B-spline, Cubic Bézier curve, Bézier curve, Point, Facebinder, ShapeString, Hatch
- Annotation: Text, Dimension, Label, Annotation styles, Annotation scale
- Modification: Move, Rotate, Scale, Mirror, Offset, Trimex, Stretch, Clone, Array, Polar array, Circular array, Path array, Path link array, Point array, Point link array, Edit, Subelement highlight, Join, Split, Upgrade, Downgrade, Wire to B-spline, Draft to sketch, Set slope, Flip dimension, Shape 2D view
- Draft Tray: Select plane, Set style, Toggle construction mode, AutoGroup
- Snapping: Snap lock, Snap endpoint, Snap midpoint, Snap center, Snap angle, Snap intersection, Snap perpendicular, Snap extension, Snap parallel, Snap special, Snap near, Snap ortho, Snap grid, Snap working plane, Snap dimensions, Toggle grid
- Miscellaneous: Apply current style, Layer, Manage layers, Add a new named group, Move to group, Select group, Add to construction group, Toggle normal/wireframe display, Create working plane proxy, Heal, Show snap toolbar
- Additional: Constraining, Pattern, Preferences, Import Export Preferences, DXF/DWG, SVG, OCA, DAT
- Context menu:
- Layer container: Merge layer duplicates, Add new layer
- Layer: Activate this layer, Select layer contents
- Text: Open hyperlinks
- Wire: Flatten
- Working plane proxy: Write camera position, Write objects state
- General: Create sketch, Edit sketch, Map sketch to face, Reorient sketch, Validate sketch, Merge sketches, Mirror sketch, Leave sketch, View sketch, View section, Toggle grid, Toggle snap, Configure rendering order, Stop operation
- Sketcher geometries: Point, Line, Arc, Arc by 3 points, Circle, Circle by 3 points, Ellipse, Ellipse by 3 points, Arc of ellipse, Arc of hyperbola, Arc of parabola, B-spline by control points, Periodic B-spline by control points, B-spline by knots, Periodic B-spline by knots, Polyline, Rectangle, Centered rectangle, Rounded rectangle, Triangle, Square, Pentagon, Hexagon, Heptagon, Octagon, Regular polygon, Slot, Fillet, Corner-preserving fillet, Trim, Extend, Split, External geometry, Carbon copy, Toggle construction geometry
- Sketcher constraints:
- Geometric constraints: Coincident, Point on object, Vertical, Horizontal, Parallel, Perpendicular, Tangent, Equal, Symmetric, Block
- Dimensional constraints: Lock, Horizontal distance, Vertical distance, Distance, Radius or weight, Diameter, Auto radius/diameter, Angle, Refraction (Snell's law)
- Constraint tools: Toggle driving/reference constraint, Activate/deactivate constraint
- Sketcher tools: Select unconstrained DoF, Select associated constraints, Select associated geometry, Select redundant constraints, Select conflicting constraints, Show/hide internal geometry, Select origin, Select horizontal axis, Select vertical axis, Symmetry, Clone, Copy, Move, Rectangular array, Remove axes alignment, Delete all geometry, Delete all constraints
- Sketcher B-spline tools: Show/hide B-spline degree, Show/hide B-spline control polygon, Show/hide B-spline curvature comb, Show/hide B-spline knot multiplicity, Show/hide B-spline control point weight, Convert geometry to B-spline, Increase B-spline degree, Decrease B-spline degree, Increase knot multiplicity, Decrease knot multiplicity, Insert knot, Join curves
- Sketcher virtual space: Switch virtual space
- Additional: Sketcher Dialog, Preferences, Sketcher scripting
![](/images/thumb/9/94/User_hub.png/24px-User_hub.png)
- Начинающим
- Установка: Загрузка, 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