Arch tutorial/ru

Введение
Этот учебник нацелен дать Вам основы работы с верстаком Arch. Он достаточно прост чтобы Вам не требовался опыт работы с FreeCAD, но некоторые навыки в приложениях 3D или BIM были бы полезны. В любом случае, Вам следует быть готовым самостоятельно искать дальнейшую информацию о работе FreeCAD в его вики-документации. Если у Вас не было предыдущего опыта с FreeCAD, как минимум Вы должны прочитать Начиная работу. Так же гляньте наш раздел учебников, и достаточно много учебников можно найти на youtube.

Назначение верстака Arch - предложить полный рабочий процесс BIM внутри FreeCAD. Поскольку он еще в разработке, не надейтесь найти в нём те же инструменты и уровень завершённости, как и в коммерческих альтернативах вроде Revit или ArchiCAD, но, с другой стороны, у FreeCADа куда более широкий спектр применений, чем у этих приложений, поэтому верстак Arch сильно выигрывает от других обслуживаемых FreeCADом дисциплин, и предлагает некоторые возможности, редко встречающиеся в традиционных приложениях BIM.

Вот, например, некоторые интересные возможности верстака Arch FreeCAD, которые Вы вряд ли найдёте в других приложениях BIM:


 * Архитектурные объекты всегда представляют собой твёрдые тела. Из надёжного механического тыла FreeCAD мы знаем важность работы с твёрдыми объектами. Это гарантирует гораздо менее подверженную ошибкам работу, и надёжные булевы операции. Поскольку разрезание трёхмерных объектов двумерными плоскостями для извлечения секций - это так же булева операция, Вы можете сразу видеть важность этого пункта.


 * Архитектурные объекты могут иметь любую форму, без ограничений. Стены не обязательно вертикальны, плиты не обязаны выглядеть как плиты. Любой твердотельный объект может быть любым архитектурным объектом. Очень сложные вещи, обычно трудно определимые в других приложениях BIM, вроде плит пола, изогнутых вверх и становящихся стеной (да, Заха Хадид, это мы о тебе), сейчас в FreeCAD вообще не проблема.


 * Вся мощь FreeCAD в ваших руках. Вы можете проектировать архитектурные объекты с помощью других инструментов FreeCAD, вроде верстака PartDesign, и после готовности преобразовать их в архитектурные объекты. В них останется вся их история моделирования, и они останутся редактируемыми. Верстак Arch так же наследует большую часть функциональности верстака Draft, таких как привязка и рабочие плоскости.


 * Верстак Arch хорошо совместим с сетками. Вы можете легко проектировать архитектурные модели в основанных на сетках приложениях вроде Blender или SketchUp и импортировать их в FreeCAD. Если Вы внимательны к качеству ваших моделей и их объекты являются твердыми телами, превращение их в архитектурные объекты потребует лишь нажатие кнопки.

На момент написания верстак Arch, как и весь FreeCAD, страдает от ограничений. Над многими из них продолжается работа, и они исчезнут в будущем.


 * FreeCAD - не приложение для черчения на плоскости. Он сделан для объемного моделирования. Есть разумный набор инструментов для черчения и редактирования двумерных объектов с помощью верстаков Draft и Sketcher, но они сделаны не для больших (и иногда плохо нарисованных) двумерных файлов САПР. Обычно Вы сможете успешно импортировать двумерные файлы, но не рассчитывайте на высокую производительность, если хотите продолжать работать с ними на плоскости. Вас предупредили.


 * No materials support. FreeCAD will have a complete Material system, able to define very complex materials, with all the goodies you can expect (custom properties, material families, rendering and visual aspect properties, etc), and the Arch Workbench will of course use it when it is ready.


 * Very preliminary IFC support. You can already import IFC files, quite reliably, provided IfcOpenShell is installed on your system, but exporting is still not officially supported. This is worked on both by the FreeCAD and IfcOpenShell developers, and in the future we can expect full-powered IFC support.


 * Most Arch tools are still in development. That means that automatic "wizard" tools that create complex geometry automatically, such as Arch Roof or Arch Stairs can only produce certain types of objects, and other tools that have presets, such as Arch Structure or Arch Window only have a couple of basic presets. This will of course grow over time.


 * Relations between objects in FreeCAD are still not officially available. These, for example the relation between a window and its host wall, are currently implemented in the Arch Workbench with temporary (and therefore somewhat limited) methods. Many new possibilities will arise when this feature will be fully available.


 * Units are being implemented in FreeCAD, which will allow you to work with any unit you wish (even imperial units, you guys from the USA can be eternally grateful for this to Jürgen, FreeCAD's godfather and dictator). But at the moment the implementation is not complete, and the Arch workbench still doesn't support them. You must consider it "unit-less".

Типичный рабочий процесс
Верстак Arch в основном сделан под два типа рабочих процессов:


 * Создать свою модель быстрым, базирующемся на сетках приложением вроде Blender или SketchUp, и импортировать её в FreeCAD, чтобы получить виды в плане и в сечении. FreeCAD сделан для точного моделирования, на гораздо более высоком уровне, чем обычно требуется в архитектурном моделировании, создание моделей прямо в FreeCAD может быть тяжёлым и сложным. Поэтому такой процесс имеет большие преимущества. Он описан в этой статье моего блога. Если Вас заботит корректность и точность модели (чистые, твердотельные, не manifold сетки), этот рабочий процесс даёт ту же производительность, что и другие.


 * Создание модели прямо в FreeCAD. Это то, что будет показано в этом учебнике. Мы будем использовать в основном три верстака: разумеется, Arch, но кроме того Draft, все инструменты которого включены в Arch, так что переключение не требуется, и Sketcher. Для удобства Вы можете сделать то, что обычно делаю я, то есть создать в верстаке Arch пользовательскую панель инструментов, с помощью Панели инструментов -> Настроить, и добавить часто используемые инструменты из верстака Sketcher. Это мой "настроенный" верстак Arch:



В этом учебнике мы будем моделировать дом в трехмерном пространстве на основе плоских чертежей, загруженных из сети, и создадим по нему двумерные чертежи, вроде планов, фасадов и сечений.

Подготовка
Вместо создания проекта с нуля для экономии времени возьмём для моделирования готовый демонстрационный. Я выбрал этот чудный дом известного архитектора Виланова Артигас (смотрите несколько картинок Педро Кока), поскольку это близко к тому, где я живу, просто, это прекрасный пример привлекательной модернистской архитектуры Сан-Паулу (есть даже на продажу если вы найдёте "немножко" реалов на это), и легко доступен чертёж в формате dwg.

Мы будем использовать двумерный чертёж в формате DWG, полученный с вышеуказанной ссылки (от Вас требуется регистрация на том сайте, но это бесплатно, или Вы можете получить версию dxf напрямую здесь) в качестве базы для создания нашей модели. Так что сначала Вам надо загрузить файл, разархивировать его, и открыть файл DWG в приложении вроде DraftSight. Или Вы можете преобразовать его в файл DXF с помощью свободной утилиты вроде Teigha File Converter. Если у Вас Teigha converter установлен (и путь к нему установлен в настройках модуля Arch), FreeCAD так же может импортировать файлы DWG самостоятельно. Но, поскольку эти файлы могут быть плохого качества или слишком большими, обычно лучше сначала открыть их в двумерном приложении САПР и сделать небольшую обработку.

Здесь я убрал все детали рисунка, рамку и угловые штампы, сделал "очистку" ("purge" на языке AutoCADа) для удаления неиспользованных объектов, перенёс сечения в разумные положениях относительно вида сверху, и переместил всё в точку (0,0). После этого наш файл может быть спокойно открыть в FreeCAD. Проверьте различные опции, доступные в Правка -> Параметры -> Draft -> Импорт/Экспорт, они влияют на то, как (и как быстро) файлы DXF/DWG будут импортированы.

Вот как файл выглядит после открытия в FreeCAD. Я так же изменил толщину стен (содержимое группы "muros"), и перевернул множество дверей, импортируемых с неправильным масштабом, с помощью инструмента Draft Scale:



Импортер DXF (который так же обрабатывает файлы DWG, поскольку при импорте файлов DWG их просто конвертируют сначала в DXF), группирует объекты по слоям. В FreeCAD нет слоёв, но есть группы. Группы предлагают аналогичный путь организации объектов в Ваших файлах, но не имеют особых параметров, применяемых ко всему их содержимому, как в слоях AutoCAD. Но они могут быть помещены внутри других групп, что очень удобно. Первое, что нам следует сделать, это создать новую группу в древе проекта, кликнув правой кнопкой на иконе документа, добавив группу, переименовать её в "base 2D plans", и перетащить объекты в неё.

Построение стен
Подобно большинству архитектурных объектов, стены могут быть построены поверх большого множества других объектов: линий, полилиний, набросков, поверхностей или тел (или даже на пустом месте, в таком случае они определяются высотой, шириной и длиной). Получившаяся геометрия стен зависит от базовой геометрии, и добавленных к ней параметров, вроде ширины и высоты. Как Вы догадываетесь, стена, базирующаяся на линии. использует её в качестве направляющей, если базируется на грани, то использует грань как базовый отпечаток, а стена на базе твёрдого тела будет просто использовать форму этого тела. Это позволяет считать практически любую форму способной стать стеной.

Возможны различные стратегии построения стен в FreeCAD. При одной можно построить полный "поэтажный план" с помощью эскизирования, и построить из него единый большой стеновой объект. Эта техника работает, но Вы сможете назначить лишь одну толщину стен для всех стен проекта. Или Вы можете построить каждый участок стены из отдельных сегментов линий. Или, что мы будем здесь делать, и то, и другое: мы создадим набор полилиний поверх импортированного плана, по одной для каждого типа стен:



Как видите, я нарисовал красным линии, которые станут бетонными стенами (поиск картинок домов поможет Вам увидеть различные типы стен), зелёным станут внешние кирпичные стены, а синие станут внутренними стенами. Я провёл линии через двери, поскольку двери будут вставлены в стены позднее, and will create their openings automatically. Стены так же могут быть выравнены по левому, правому краю или центру, так что не важно, по какой стороне Вы рисовали базовую линию. Я старался избегать пересечений насколько можно, поскольку наша модель будет при этом чище. Но мы позаботимся о пересечениях позднее.

Когда всё будет готово, если хотите, поместите все эти линии в новую группу, выберите каждую линию по одной, и нажмите инструмент Стена для создания стен из каждой из них. Можно так же выбрать несколько стен за раз. После выполнения этого и корректировки толщины (внешние стены толщиной 25 см, внутренние стены толщиной 15 см) и некоторого выравнивания, наши стены готовы:



Мы так же можем создать наши стены с нуля. Если Вы нажмёте кнопку Стена без выбранного объекта, Вы сможете указать двее точки на экране для построения стены. Но внутри инструмент Стена на самом деле нарисует линию, на которой и построит стену. Поэтому я счёл более дидактичным показать, как всё работает на деле.

Заметили, что я внимательно следил, чтобы не было пересечения стен? Это убережёт нас от головной боли далее, например, если мы экспортируем нашу работу в другое приложение, для которого это будет проблемой. Я сделал только одно пересечение, где мне было лень рисовать два маленьких сегмента линий, и нарисовал одну большую полилинию пересекающей другую. Это надо исправить. По счастью, все архитектурные объекты имеют отличную возможность добавляться один к другому. Это объединяет их геометрии, но они по-прежнему смогут редактироваться независимо. Чтобы добавить одну из пересекающихся стен к другой, выделите первую, CTRL + выбрать вторую, и нажмите инструмент Добавить компонент:



Слева две пересекающиеся стены, справа результат добавления одной к другой.

Например, можно было нарисовать все базовые линии, не обращая внимания на пересечения, и исправить всё с помощью Arch Add позднее. Но это сильно увеличило бы сложность модели, и без всякой пользы. Лучше сделать это правильно с самого начала, и сохранять их геометрически простыми.

Теперь, когда наши стены в порядке, нам нужно увеличить их высоту до пересечения с крышей. Затем, поскольку стены всё ещё не могут быть автоматически обрезаны крышей (это когда-нибудь будет), мы сделаем пустой объект с формой крыши, чтобы вычесть его из наших стен.

Сначала, посмотрев на чертежи, мы видим, что наивысшая точка крыши на уровне 5,6 метров от земли. Так что сделаем все наши стены высотой 6 метров, так что мы будем уверены, что они будут обрезаны нашим фиктивным объёмом крыши. Почему 6, а не 5,6 метров? Если Вы работали с булевыми операциями (добавление, вычитание, пересечение), то отмечали, что они не любят работать с соприкасающимися поверхностями. Они предпочитают четко пересекающиеся объекты. Так что делая это, мы предохраняем себя.

Чтобы увеличить высоты наших стен, просто выделите их (не забудьте те, что мы добавили одна к другой) в древе проекта, и измените параметр "height".

Перед тем как сделать нашу стену и обрезать стены, сделаем остальные объекты, которые должны быть обрезаны: стены верхней студии, и колонны. Стены студии делаются так же, как остальные, на главном виде сверху, но они будут подняты на уровень 2,6 метра. Так что, чтобы их верх был на уровне 6 метров, мы дадим им требуемую высоту 3,4 метра. Когда это будет готово, мы поднимем наши стены на 2,6 метра: Выделите их все, переключитесь на фронтальный вид (Вид -> Стандартные виды -> Спереди), нажмите кнопку Draft Move, выберите первую точку, затем введите координаты 0, 2.6, 0, и нажмите Enter. Ваши объекты теперь подняты на 2,6 метра:



Теперь подвинем наши стены горизонтально, к их правильному положению. Поскольку мы имеем точки для захвата, это проще: нажимаем инструмент Draft Move, и перемещаем из с одной точки в другую:



В конце я сменил цвет некоторых стен на кирпичный (чтобы легче их отмечать), и сделал небольшие изменения: некоторые стены не поднимаются до крыши, но остаются на высоте 2,6 метра. Я подправил высоту этих стен.

Построение структур
Теперь, когда нам надо обрезать стены вычитаемым объемом, нам следует так же посмотреть, нет ли других объектов, которые следует обрезать таким же образом. Они есть, это некоторые колонны. Это хорошая возможность представить следующий архитектурный объект, Структуру. Объект Структура похож на стену, но их делают не по базовым линиям. Взамен, над ними работают как с вытягиваемым профилем (вдоль линии профиля или нет). Профилем структуры может быть любой плоский объект, при одном требовании: это должна быть замкнутая фигура.

Для наших колонн мы используем иную стратегию, чем для стен. Вместо "рисования" поверх чертежа, мы напрямую используем объекты из них: окружности, которые которые показывают колонны на виде сверху. Теоретически, мы должны просто выбрать один из них, и нажать кнопку Структура. Но если мы сделаем это, мы получим "пустой" объект. Это потому, что мы не можем быть уверены, как объект нарисован в файле DWG, и нередко это не замкнутые фигуры. Поэтому, перед тем как превращать их в колонны, превратим их в грани, дважды используя к ним инструмент Draft Upgrade. Сначала превратив их в замкнутые полилинии, потом превратив полилинии в грани. Следующий шаг не обязателен, но если у Вас есть грань, у вас 100% гарантия, что она замкнута (иначе грань не будет получена).

После преобразования всех наших колонн в грани, мы можем обработать их инструментом Структура, и подстроить высоту (некоторые имеют 6 метров, другие - 2,25 метров в высоту):



На картинке выше Вы можете видеть две колонны, которые пока как в файле DWG, две уже превращённые в грани, и две превращённые в Структуру с высотой 6 метров и 2,25 метра.

Заметьте, что эти разные архитектурные объекты (стены, структуры и всё остальное) имеют между собой много общего (например, они могут быть добавлены один к другой, как мы видели это со стенами, и каждый может быть превращён в другой). Так что это дело вкуса, мы могли сделать наши колонны с помощью стен, и преобразовать их при необходимости. На деле, некоторые из наших стен бетонные, нам следует в дальнейшем преобразовать их в структуры.

Вычитание
Настало время создать объём для вычитания. Проще всего нарисовать его профиль поверх сечения. Затем повернём его и поместим в нужную позицию. Поняли, почему я в начале поместил сечения и лестницы таким образом? Это будет удобно для черчения нужного нам объёма, а потом перемещения его в нужную позицию модели.

Нарисуем объём больше крыши, который будет вычитаться из наших стен. Для этого я нарисовал две линии поверх базы крыши, затем расширил их ещё немного с помощью инструмента Draft Trimex. Затем я нарисовал полилинию, с привязкой к этим линиям, и пошёл выше 6 метров. Я так же нарисовал голубую линию на уровне земли (0,00), которая будет осью вращения.



Теперь сложная часть: мы используем инструмент Draft Rotate для вращения нашего профиля на 90 градусов вверх, в правильную позицию для выдавливания. Для этого сначала изменим рабочую плоскость на YZ. После этого вращение будет в этой плоскости. Но если мы сделаем как мы делали раньше, и установим наш вид на боковой вид, будет трудно видеть и выбрать наш профиль, и знать где базовая точка, вокруг которой надо вращать, верно? Поэтому мы должны установить рабочую плоскость вручную: нажать кнопку Draft SelectPlane (она на панели "Задачи" окна древа проекта), и установим её в YZ (это боковая сторона). Когда Вы установите так рабочую плоскость вручную, она не меняется в зависимости от Вашего вида. Вы можете теперь вращать Ваш вид как угодно чтобы получить хороший обзор того, что Вам надо выделить. Чтобы вернуть рабочую плоскость назад в автопереключение по виду, нажмите кнопку Draft SelectPlane снова и установите её в "None".

Теперь поворот сделать легко: Выберите профиль, нажмите кнопку Draft Rotate, нажмите кнопку на голубой линии, введите 0 как стартовый угол, и 90 как угол поворота:



Теперь всё, что требуется, это переместить профиль немного ближе к модели (если нужно, установите рабочую плоскость в XY), и выдавить его. Это может быть выполнено либо инструментом Part Extrude, или Draft Trimex, который так же имеет скрытую возможность выдавливать грани. Убедитесь, что выдавленное Вами больше чем все стены, из которых оно вычитается, во избежание появления стыка поверхностей:



Теперь вступает в действие обратный инструмент, обратный Arch Add: Arch Remove. Как Вы догадываетесь, он тоже создаёт объект-потомок, но его форма вычитается из объекта вместо объединения. Так что теперь всё просто: выделить объём для вычитания (я переименовал его в "Roof volume to subtract" в древе проекта, чтобы его было легче заметить), CTRL + выбрать стены, и нажать кнопку Arch Remove. После вычитания вычитаемый объём исчезнет из окна трёхмерного вида и древа проекта. Это потому что он был отмечен как производный от стены, и был "проглочен" ею. Выберите стену, раскройте её в древе проекта и Вы увидите наш вычитаемый объём.

Теперь выберите объём из древа проекта, CTRL + выберите следующую стену, нажмите Arch Remove. Повторите для следующей стены, пока не обрежете всё как надо:



Помните, что и для Arch Add и для Arch Remove важен порядок, в каком выбраны объекты. Хост всегда последний, как при "Удалении X из Y" или "Добавить X к Y"

Создание крыш
Теперь всё, что нам осталось для завершения структуры, это сделать крышу и малые внутренние перекрытия. Опять таки, проще всего нарисовать их профили поверх секции, с помощью инструмента полилиния. Здесь я нарисовал 3 профиля поверх каждого из них (я переместил их в сторону чтобы Вам было лучше видно). Зелёный будет использоваться для боковых границ потолочной плиты, синий для боковых частей, красные для центральной части, которая находится над блоком ванной:



Далее, мы должны повторить вышеуказанную операцию вращения, чтобы повернуть объекты в вертикальную позицию, переместить их в нужные места, и копировать те из них, которые должны быть выдавлены дважды, инструментом Перемещение, с нажатой клавишей ALT, которая создаёт копии вместо перемещения реального объекта. Я так же добавил ещё два профиля для боковых стен прохода к ванной.



Когда всё на своём месте, это как раз для использования инструмента Draft Trimex для выдавливания, затем конвертировать их в структуры.



После этого мы замечаем несколько проблем: две колонны справа слишком коротки (они должны идти под крышу), и есть зазор между плитой и стенами студии в дальнем правом углу (символ уровня 2,6 метра на виде сечения, очевидно, был ошибочен). Благодаря параметричности объектов, все их легко исправить: для колонн просто измените их высоту до 6 метров, выцепите в древе проекта вычитаемый объём для крыши и вычтите его из колонн. Для стен это даже проще: опустите их чуть ниже. Поскольку вычитание продолжается в том же месте, геометрия стен адаптируется автоматически.

Теперь последняя вещь, которую надо исправить, это маленькая плита в ванной, которая пересекает некоторые стены. Исправим это созданием нового вычитаемого объёма, и вычтя его из этих стен. Другая возможность инструмента Draft Trimex, который мы использовали для выдавливания, что он так же может выдавить единственную грань существующего объекта. Это создаёт новые, отдельные объекты, так что нет риска "испортить" другие объекты. Так что мы можем выбрать базовую грань малой плиты (гляньте на неё снизу модели), затем нажмите кнопку Draft Trimex и выдавите его вверх выше крыши. Затем вычтите его из двух внутренних стен ванной с помощью инструмента Arch Remove.



Полы, лестницы и дымоход
Теперь, когда наша структура готова, нам осталось сделать несколько небольших объектов.

Камин
Давайте начнём с камина. Вы уже знаете, как он работает? Нарисуйте несколько замкнутых полилиний, переместите их на их верную высоту инструментом Draft Move, выдавим их с помощью инструмента Draft Trimex, превратим больший из них в структуру, и вычесть меньший. Заметьте, что труба дымохода не может быть нарисована на виде сверху, но я нашёл её позицию, переместив голубые линии с видов сечения.



Перекрытия
Перекрытия плохо показаны на исходном чертеже. Глядя на сечения, мы не знаем, где и какой толщины стоят плиты перекрытий. Поэтому я предположил что все стены лежат на фундаментных блоках, на уровне 0,00, и что есть плиты пола, так же сидящие на этих блоках, толщиной 15 см. Поэтому плиты пола не подходят под стены, а обходят их. Мы можем сделать это, создав большую прямоугольную плиту, затем вычитая стены, но мы помним, что операция вычитания ресурсоёмкая. Лучше сделать её из маленьких элементов, это будет "дешевле" по вычислительным ресурсам, но так же, поскольку мы сделаем это интеллигентно, комната за комнатой, это будет полезно при вычислении площади пола в дальнейшем:



Когда будут нарисованы полилинии, превратим их в структуры, и дадим им высоту 0,15:



Лестницы
Теперь лестницы. Познакомимся со следующим архитектурным инструментом, Arch Stairs. Этот инструмент на время написания учебника всё еще на ранней стадии разработки, так что не ожидайте от него многого. Но он уже вполне пригоден для создания простых, прямых лестниц. Важно понимать одну концепцию, этот инструмент придуман для построения лестниц с плоского пола до стены. Другими словами, при виде сверху лестница занимает точно то же место, что и на виде сверху, так что последняя ступень не рисуется (хотя и учитывается при определении высоты).

В данном случае я предпочитаю строить лестницу из сечения, поскольку нам нужно много размеров, которые проще получить из него. Здесь я нарисовал несколько красных опорных линий, затем две голубые линии, которые станут базой наших двух секций лестницы, и две зелёные замкнутые полилинии, которые формируют пропущенные части. Теперь выберем первую голубую линию, нажмём инструмент Arch Stairs, установим число ступенек равным 5, высоту 0,875, ширину 1,3, тип структуры в "massive" и толщину структуры в 0,12. Повторим для другой части лестницы.

Затем выдавим обе зелёные полилинии на 1,3, и повернём их в правильную позицию:



На вертикальной проекции нарисуем (затем повернём) границу:



Теперь помещаем всё на место:



Не забудьте так же обрезать колонны, которые пересекают лестницы, поскольку для BIM плохи пересекающиеся объекты. Мы строим как в реальном мире, помните, где твердотельные объекты могут пересекаться. Здесь я не хочу вычитать колонны прямо из лестниц (иначе в древе проекта колонны будут проглочены лестницами, что не есть хорошо), так что я возьму профиль из которого были сделаны колонны и выдавлю их вновь. Это новое выдавливание затем будет вычтено из лестниц.

Отлично. Сделана трудная работа, давайте сделаем очень трудную работу!

Окна и двери
Окно модуля Arch достаточно сложный объект. Они используются для всех видов "вставляемых" объектов, вроде окон или дверей. Да, во FreeCAD двери - это особый вид окон. В реальной жизни тоже, если подумать, не так? Инструмент окно пока непрост в использовании, но считайте это компромиссом, поскольку он был построен для максимизации возможностей. С его помощью можно сделать практически любой вид окна, какой Вы можете представить. Но когда инструмент получит больше предустановок, ситуация должна улучшиться в будущем.

Объект окно устроено примерно так: он базируется на двумерном макете, любом плоском объекте, но предпочтительно на эскизе, содержащем замкнутые полилинии. Эти полилинии определяют различные части окна: внешние и внутренние рамки, стеклянные и непрозрачные панели и т.д.. Окно имеет свойства, которое показывает, что делать с каждой из этих полилиний: выдавить его, поместить его с соответствующим смещением и т.д.. В итоге, окно может быть вставлено в основной объект вроде стены или структуры, и вокруг неё автоматически создаётся отверстие под него. Это отверстие вычисляется выдавливанием самой большой полилинии, найденной в макете окна.

Есть два способа создания таких объектов в FreeCAD: используя предустановки, или рисуя раскладку окна с нуля. Мы рассмотрим два метода. Но помните, что метод предустановок только создаёт раскладку и определяет необходимые выдавливания для Вас.

Использование предустановок
Нажав инструмент Arch Window без выделенного объекта, Вы получите приглашение либо указать двумерную раскладку, либо использовать предустановки. Используем установку "Simple Door", чтобы сделать главную входную дверь нашей модели. Сделаем ширину 1 м, высоту 2,45 м, размер W1=0,15 м, и оставим остальные параметры на 0,05 м. Затем кликнем на нижний левый угол стены, и Ваша новая дверь готова:



Вы увидите, что Ваша новая дверь не появилась в древе проекта. Это потому, что, указав стену, мы указали, что стена является хостом окна. Соответственно, он был "проглочен" стеной. Но правым кликом на стене мы найдём дверь в древе проекта.

В этом случае, если наше окно не вставлено в стену (вход уже был здесь), мы должны так же открепить наше окно из базовой стены. Это делается двойным кликом на базовой стене в древе проекта для входа в режим редактирования. Тогда Вы увидите окно в его группе "Subtractions". Выберите окно, нажмите кнопку "remove element", затем "OK". Наше окно будет удалено из базовой стены, и будет лежать внизу древа проекта.

У нас есть другая дверь, такая же как эта, немного левее. Вместо создания новой двери с нуля, у нас есть два способа скопировать предыдущую: используя инструмент Draft Move с нажатой кнопкой ALT, что, как Вы уже знаете, копирует объект вместо его перемещения. Или, что лучше, можно использовать инструмент Draft Clone. Этот инструмент создаёт "клон" выбранного объекта, который можно перемещать кругом, но который сохраняет форму оригинального объекта. Если оригинал изменяется, так же изменяется и клон.

Так что всё, что нам теперь нужно, это выделить дверь, нажать инструмент Draft Clone, затем переместить клона в требуемую позицию с помощью инструмента Draft Move.

Организация Вашей модели


Теперь наступило время сделать небольшую чистку дома. Поскольку у нас уже есть два окна, наступил подходящий момент для очистки в древе проекта: создайте новую группу, переименуйте её в "windows", и перетащите в неё два окна. Советую отделить другие элементы таким же образом, например стены и структуры. Поскольку Вы так же можете создать группы внутри групп, Вы можете улучшить организацию, например, поместив все элементы, формирующие крышу, в отдельную группу, так что будет легко включить и отключить их (делание групп видимыми и невидимыми делает то же самое со всеми объектами).

В верстаке Arch имеются дополнительные инструменты для организации модели: Arch Site, Arch Building и Arch Floor. Эти три объекта базируются на стандартных группах FreeCAD, так что они работают как группы, но содержат дополнительные параметры. Например, через полы можно устанавливать и управлять высотой содержащихся в них стенах и структурах, и когда они перемещаются, всё их содержимое так же перемещается.

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

Теперь вернёмся к работе. Скроем группу крыши, чтобы видеть лучше внутри, и переключим режим показа объектов пола на Wireframe (или используйте инструмент ToggleDisplayMode), так чтобы мы всё ещё могли захватывать его, но могли видеть вид сверху под ним. Но можно так же выключить полы полностью, затем поместить двери на уровень 0, после чего поднять их на 15 см с помощью Draft Move.

Расставим внутренние двери. вновь используем предустановку "Simple Door", сделаем двери 1,0 м и 0,7 м шириной и 2,1 м высотой, с размером W1=0,1 м. Убедитесь, что Вы захватили правильную стену, когда устанавливаете их, так что они автоматически делают проём в этой стене. Если их трудно расположить их правильно, можно поместить их в более простое место, в угол стены, например, а потом переместить их. Проём переместится с ним.

Если Вы по ошибке поместили окно в неправильную стену, это легко исправить: уберите окно из группы "Subtraction" базовой стены в режиме редактирования, как мы видели выше, затем добавьте её в группу "Subtraction" правильной стены тем же методом, или, просто, используя инструмент Arch Remove.

После небольшой работы все наши двери здесь:



После внимательного взгляда на вертикальный разрез я заметил ещё одну ошибку: верх кирпичной стены не 2,6 м, а на 17,5 см ниже, то есть 2,425 м. По счастью, в окнах на базе предустановок мы имеем возможность менять общине размеры (ширину и высоту) через их параметры. Так что изменим их высоту на 2,425 - 0,15, что равно 2,275. Следующее окно, как клон первого, адаптируется тоже. Вот в этом проявляется реальная магия параметрического дизайна.

Теперь мы рассмотрим по-настоящему интересную вещь: как спроектировать своё собственное окно.

Создание пользовательских окон
Как я объяснял выше, объекты "окно" создаются из двумерного макета, составленного из замкнутых элементов (полилиний, кругов, прямоугольников, чего угодно). Поскольку объекты Draft не могут поддерживать более одного такого элемента, оконный переплёт лучше рисовать инструментами эскизирования. К сожалению, при эскизировании нельзя привязываться к внешним объектам, как при черчении, что было бы полезно, поскольку у нас всё уже нарисовано. По счастью, существует инструмент для конвертирования объектов Draft в эскизы: Draft To Sketch.

Так что начнём с создания нашего первого оконного переплёта. Я нарисовал его на фасаде, используя несколько прямоугольников: один для внешних линий, и 4 для внутренних линий. Я остановился перед дверью, поскольку, как Вы помните, наши двери уже имеют раму:



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



Инструмент определит, что раскладка содержит одну внешнюю рамку и несколько внутренних прямоугольников, и автоматически предложит конфигурацию по умолчанию: одну рамку, сделанную вычитанием внутренних прямоугольников из внешнего, выдавленный на 1 м. Изменим это, войдя в режим редактирования окна, двойным кликом по древу проекта:

Вы увидите компонент "по умолчанию", который был создан автоматически инструментом "Window", который использует 5 полилиний (всегда вычитая внешние из наибольших внутренних), и имеет размер выдавливания, равный 1. Изменим величину выдавливания на 0.1, чтобы привести в соответствие с использованным для дверей.

Затем добавим 4 новые стеклянные панели, каждая с использованием единственной полилинии, и дадим им выдавливание 0,01 и смещение 0,05, так что они помещаются в середине рамы. Вот так окно будет выглядеть после завершения работы:



Я думаю, теперь Вы должны понять силу этой системы: возможна любая комбинация рамок и панелей. Если Вы можете нарисовать его на плоскости, может быть и трёхмерный объект.

Теперь нарисуем другие части, затем всё переместим на место. Но сначала нам надо скорректировать базовый двумерный рисунок, поскольку некоторые линии просто пропущены, где окна соприкасаются с лестницами. Мы можем исправить это, обрисовав линии лестниц со смещением 2,5 см с помощью инструмента Draft Offset (разумеется, с нажатой кнопкой ALT, чтобы копировать линии вместо их перемещения). Теперь мы можем нарисовать нашу раскладку, с помощью полилиний, затем конвертировать их в эскиз, затем превратив его в окно.

Сделав это несколько раз (я сделал 4 отдельных куска, но это Вы должны решать), мы завершили фасад.



Теперь, как и раньше, дело за поворотом элементов и перемещение их к их правильной позиции.



Последняя пропущенная часть, это сегмент стены, который не появился на виде сверху, который надо добавить. У нас несколько возможностей для этого, я выбрал нарисовать линию на уровне земли, потом поднять их на требуемую высоту, затем сделав из него стену. Затем, нам нужно выцепить наш объём вычитания крыши (он должен остаться под последней колонной), затем вычесть его. Теперь эта часть строения готова:



Готово? Не совсем. Посмотрите на вид выше, мы сделали наши двери с рамкой 5 см, помнится (это значение по умолчанию из предустановок). Но другие окна имеют рамки 2,5 см. Это надо исправить.

Редактирование окон
Мы уже видели как построить и обновить оконный компонент, через режим редактирования окна, но мы так же можем редактировать базовый эскиз. Предустановленное окно не отличается от самодельного, просто инструмент Arch Window создаёт базовый эскиз сам. Выберите Вашу дверь (оригинал, не копию, помните, что мы сделали клон), и раскройте его иерархию в древе проекта. Здесь есть эскиз. Дважды кликните для входа в режим редактирования.

Верстак Sketcher - очень мощный инструмент. У него нет некоторых удобств Draft, таких как привязка или рабочей плоскости, но есть множество других преимуществ. В FreeCAD Вы будете часто использовать одно или другое в зависимости от потребностей. Наиболее важная возможность эскизирования - геометрические ограничения. Ограничения позволяют Вам автоматически зафиксировать позиции некоторых элементов относительно других. Например, Вы можете заставить сегмент быть всегда вертикальным, или всегда быть на определенном расстоянии от другого.

Редактируя оконный эскиз, мы можем видеть что он сделан полностью на базе полностью ограничений:



Теперь всё, что нам нужно сделать, это отредактировать расстояние в 5 см между внешней и внутренней линией, дважды кликнув по ней и изменив её значение на 2,5 см (помните, единицы еще не функционируют во время написания учебника). После нажатия кнопку "OK", наша дверь (и его клон) обновился.

Работа без опоры на двумерных чертёж
Пока наша работа была относительно проста, поскольку у нас была подкладка из плоского чертежа, на которую мы опирались. Но теперь мы должны сделать задний фасад и остеклённый атриум, и всё становится сложнее: чертёж противоположного фасада содержит множество ошибок, не показывает атриум вообще, и у нас просто нет чертежа его внутренних стен. Так что нам надо придумать многое самостоятельно. Обязательно гляньте на картинки для образца, чтобы представить, как всё сделано. Или сделайте это как пожелаете!

Одну вещь мы уже сделали: продублировали сложное лестничное окно с помощью Draft Move, поскольку они одинаковы на обоих сторонах.



Заметьте, что здесь я предпочёл продублировать с помощью Draft Move, поскольку клоны сейчас не поддерживают разные цвета внутри объектов. Разница в том, что клон это копия конечной формы оригинального объекта, в то время как если Вы скопировали объект, Вы создали новый с теми же параметрами, что и оригинальный (следовательно, ещё и базовый эскиз и определения компонентов окна, которые сохранены как параметры).

Теперь мы должны атаковать части, которые нигде не были нарисованы. Начнём со стеклянной стены между гостиной и атриумом. Легче всего нарисовать её на фронтальном виде, поскольку мы получим правильную высоту крыши. Когда Вы будете на виде сверху, Вы сможете повернуть вид из меню Вид -> Стандартные виды -> Повернуть влево или вправо, пока не получите удобный для работы вид, вроде этого:



Как на картинке выше, я сделал линию от модели к левой секции, чтобы получить точную ширину окна. Затем я воспроизвёл эту ширину на фронтальном виде и разделил его на 4 части. Затем я построил одни кусок главного окна, плюс 4 дополнительных окна для сдвижных окон. Эскизировщик иногда затрудняется с пересекающимися полилиниями, поэтому я предпочитаю держать из отдельно, как здесь:



После необходимых поворотов, всё защёлкивается точно на место.



Нам всё ещё нужен здесь угловой кусок. Небольшой полезный трюк с инструментом Draft SelectPlane, если ваша грань выбрана когда Вы нажали кнопку, рабочая плоскость соответствует этой грани (как минимум эта позиция и если грань прямоугольная, она так же пытается соответствовать их осям). Это полезно для рисования двумерных объектов прямо на модели, так как здесь, мы можем нарисовать прямоугольник для выдавливания прямо в правильное положение.



Затем сделаем два оставшихся куска. Один из них прост, это копия того, что на другой стороне, так что мы просто используем двумерный чертёж.



Другой немного сложнее, смотря на картинки, мы видим что у него много вертикальных делений, как у лестничных окон. По счастью (или хорошему дизайну Вильянова Арригаса), ширина нашего окна в 4,5 м, точно такая как лестничного окна, так что мы можем использовать то же самое деление: 15 кусков по 30 см. Здесь я использовал инструмент Draft Array для копирования двух линий 15 раз, и рисовать прямоугольники поверх них:



Когда они сделаны, мы можем сделать наше окно уже известным нам методом. Другой маленьких полезный трюк, если Вы еще не обнаружили его сами: при редактировании окна, если Вы измените имя компонента, это фактически создаёт его дубликат. Так что для создания 15 внутренних стеклянных панелей, вместо того чтобы делать 15 кликов на кнопке добавления и 15 раз заполнять данные, Вы можете редактировать одно, и изменять его имя и полилинию, что каждый раз создаст копию.

После того как окно повёрнуто и перенесено на место, атриум готов:



Редактирование и исправления
Now when we look at our back elevation, and compare it with the plan, we see that there are some differences that need to be fixed. Namely, the bedroom windows are smaller than I first thought, and we'll need to add some more walls. In order to do that properly, some floors need to be cut:



We have of course several ways to do that, making a subtraction volume would be an easy way, but it would add unnecessary complexity to the model. Better to edit the base wire of each floors. This is where the Draft Edit mode comes into action. By expanding these floors in the tree view, then making their base wire visible, we can then double-click them to enter edit mode. There, we can move their points, or add or remove points. With this,editing our floor plates becomes easy.



After some more sweat (the person who made those drawings obviously became pretty lazy when did this last elevation, much is drawn wrong), we finally have our complete house:



Note the chimney tube, which is made from a circle I used to make a hole in the chimney block, that I extruded, then converted into a tube with the Part Offset tool.

Output
Now, after all the hard work we passed through to build this model, comes the reward: What can we do with it? Basically, this is the big advantage of working with BIM, all our traditional architectural needs, such as 2d drawings (plans, sections, etc), renderings, and calculations (bills of quantities, etc) can all be extracted from the model. And, even better, regenerated every time the model changes. I'll show you here how to obtain these different documents.

Preparations
Before starting to export stuff, one consideration is interesting to do: As you saw, our model is becoming increasingly complex, with a lot of relationships between objects. This can make subsequent calculation operations, such as cutting through the model, heavy. One quick way to magically "simplify" drastically your model, is to remove all of this complexity, by exporting it to the STEP format. That format will preserve all your geometry, but will discard all the relationships and parametric constructions, keeping only the final shape. When reimporting that STEP file into FreeCAD, you will get a model that has no relationship, and a much smaller file size. Think of it as an "output" file, that you can regenerate anytime from your "master" file:



Exporting to IFC and other applications


One of the very fundamental things you need when working with BIM is to be able to import and export IFC files. This is still a work in progress in FreeCAD. IFC format is already supported, and importing IFC files into FreeCAD is already pretty reliable. Exporting is still experimental, though, and has currently many limitations. However, things are bettering and we should get proper IFC export very soon.

IFC export requires very little setup, once the necessary software libraries are installed. You only need to recreate the building structure, which is needed in all IFC files, by adding an Arch Building to your file, then an Arch Floor, then moving all the groups of objects that compose your model in it. Make sure you leave your construction geometry (all the 2D stuff we've been drawing) out of it to avoid making your IFC file unnecessarily heavy.

Another thing to set, is to check the "Role" property of structural elements. Since IFC has no "generic" structural element, like FreeCAD, we need to assign them roles (column, beam, etc...) so the exporter knows what element to create in the IFC file.

In this case, we need our whole architectural system, so the IFC exporter can know if an object must be exported as a wall or a column, so we are using our "master" model, not our "output" model.

Once this is done, simply select your building object, and choose the "Industry Foundation Classes" format. Exporting to non-BIM applications, such as Sketchup is also easy, you have several export formats at your disposal, such as Collada, STEP, IGES ou OBJ.

Rendering
FreeCAD also features a rendering module, the Raytracing Workbench. That workbench currently supports two render engines, PovRay and LuxRender. Since FreeCAD is not designed for image rendering, the features that the Raytracing workbench offer to you are somewhat limited. The best course of action when you want to do proper rendering, is to export your model to a mesh-based format such as OBJ or STL, and open it in an application more suited to rendering, such as blender. The image below has been rendered with blender's cycles engine:



But, for a quick rendering, the Raytracing workbench can already do a good job, with the advantage of being very easy to setup, thanks to its templates system. This is a rendering of our model fully made within FreeCAD, with the Luxrender engine, using the "indoor" template.



The Raytracing workbench still offers you very limited control over materials, but lighting and environments are defined in templates, so they can be fully customized.

2D drawings
Certainly the most important use of BIM is to produce 2D drawings automatically. This is done in FreeCAD with the Arch SectionPlane tool. This tool allows you to place a section plane object in the 3D view, that you can orient to produce plans, sections and elevations. Section planes must know what objects they must consider, so once you have created one, you must add objects to it with the Arch Add tool. You can add individual objects, or, more conveniently, a group, a floor or a whole building. This allows you to easily change the scope of a certain section plane later, by adding or removing objects to/from that group. Any change to these objects gets reflected in the views produced by the section plane.

The section plane automatically produces cut views of the objects it intersects. In other words, to produce views instead of sections, you just need to place the section plane outside of your objects.



The section planes can produce two different outputs: shape objects, that live in the same document as your 3D model, or drawing views, that are made to use on a drawing sheet produced by the Drawing workbench. Each of these behave differently, and has its own advantages.

Shape views

This output is produced by using the Draft Shape2DView tool with a section plane selected. You produce a 2D view of the model directly in the 3D space, like on the image above. The main advantage here is that you can work on them using the Draft tools (or any other standard tool of FreeCAD), so you can add texts, dimensions, symbols, etc:



On the image above, two Shape2D views have been produced for each section, one showing everything, the other showing only the cut lines. This allows us to give it a different line weight, and turn hatching on. Then, dimensions, texts and symbols have been added, and a couple of DXF blocks have been imported to represent the furniture. These views are then easy to export to DXF or DWG, and open in your favorite 2D CAD application, such as LibreCAD or DraftSight, where you can work further on them:



Note that some features are still not supported by the DXF/DWG exporter so the result in your 2D application might differ a bit. For example, in the image above, I had to redo the hatching, and correct the position of some dimension texts. If you place your objects in different groups in FreeCAD, these become layers in your 2D CAD application.

Drawing views

The other kind of output that can be produced from section planes is a Drawing view. These are produced by using the Draft Drawing tool with a section plane selected. This method has one big limitation compared to the previous one: you have limited possibilities to edit the results, and at the moment, things like dimensioning or hatching are still not natively supported.

On the other hand, the final output being easier to manipulate, and the graphical possibilities of the SVG format being huge, in the future, undoubtedly this will be the preferred method. At the moment, though, you'll get better results using the previous one.



On the image above, the geometry is the direct output of the section plane, but some other Draft objects have been added, such as dimensions and hatched polygons, and another view object with same scale and offset values has been produced from them with the Draft Drawing tool. In the future, such operations will be done directly on the Drawing page, leaving your model totally clean.

Quantities extraction
This is another very important task to be performed on BIM models. In FreeCAD, things look good right from the start, since the OpenCasCade kernel of FreeCAD already takes care of calculating lengths, areas and volumes for all the shapes it produces. Since all Arch objects are solids, you are always guaranteed to be able to obtain a volume from them.

Using spreadsheets

There is a brand-new workbench in FreeCAD, the Spreadsheet Workbench, that is the perfect tool for collecting such information about our model. It can count objects of a certain name or a certain type, or display a specific properties of those objects. The spreadsheet workbench features two objects: The spreadsheet object is a simple spreadsheet container, that you can edit, and place values inside the cells, but has no automation. The cell controller, on the other hand, is an object that you must insert in a spreadsheet, that controls a series of cells of its host spreadsheet, filling them according to what you specify. This, provided that you organized your model well, allows you to easily retrieve individual values:



Note that the spreadsheet workbench is still very new, and like everything very new, still contains many bugs and limitations. But for simple summaries like this, it already works well. The resulting spreadsheet can then be exported to a CSV file, which can be imported in any spreadsheet application.

The survey mode

Another way to survey your model and extract values, is to use the Arch Survey mode. In this mode, you can click on points, edges, faces or double-click to select whole objects, and you get altitude, length, area or volume values, shown on the model, printed on the FreeCAD output window, and copied to the clipboard, so you can easily pick and paste values in another opened application



Заключение
Надеюсь, это дало Вам хороший обзор доступных инструментов, далее обязательно посмотрите документацию верстаков Arch и Draft (есть немало других инструментов, которые не были упомянуты здесь), и прочую документацию FreeCAD. Нанесите визит так же на форум, многие проблемы обычно могут быть мгновенно решены здесь, и просмотрите в моём блоге новости разработки верстака Arch.

Файл, созданный во время прохождения урока, может быть взят здесь.