Программа для 3D моделирования Free cad
Для того, чтобы создавать 3D объекты высокого качества, можно воспользоваться программой Freecad. Она проста для освоения, обладает большим количеством полезных инструментов, позволяет проводить расширение функциональности. Эта программа создаёт параметрические объекты, позволяющие корректировать форму модели без внесения изменений в предварительно подготовленный чертёж.
Область применения
Эта программа может использоваться для проектирования трёхмерных деталей. Она проста для освоения и обладает понятным, продуманным интерфейсом. Freecad предназначена для параметрического моделирование. Это означает, что сделав модель, её можно менять, корректируя параметры и не внося более сложных изменений. Таким образом, уменьшается риск снизить качество чертежа при доработке.
Модульная структура позволяет наращивать функциональность путём добавления новых компонентов. Использование скриптовых языков дает возможность самостоятельно создавать нужные дополнения, улучшающие функциональность.
Это приложение будет полезно для следующих категорий пользователей:
- Freecad для начинающих в качестве домашнего хобби. Подойдёт, если пользователь хочет начертить 3D чертёж, не обладая профессиональными навыками трёхмерного проектирования. При работе не требуется практический опыт использования подобных систем. В сети есть большое количество понятных обучающих материалов и даже Freecad руководство на русском языке.
- По для опытных юзеров. Используя профессиональную систему на работе, будет легко найти аналогичные инструменты стандартной версии графического редактора.
- На этой программе будет удобно работать программисту, владеющему скриптовыми языками. Ему будет нетрудно разобраться, как работать, использую Python и Qt.
Функциональные возможности приложения
Программа была создана для 3D CAD моделирования. Основным типом чертежей являются машиностроительные. Приложение себя хорошо зарекомендовало для использования в качестве программы для архитектурного моделирования. Программа попадает также в такие категории: САПР, CAE, PLM, Cax. Здесь имеются возможности для совместной работы с другими приложениями, например, с KiCad.
В программе предусмотрено большое количество 2D инструментов. Они позволяют сделать качественное двумерное изображение трёхмерного объекта.
Функциональные возможности приложения позволяют сделать следующее:
- Трёхмерные модели высокого качества.
- Параметрические объекты дающие расширенные возможности для проектирования.
- С помощью Freecad можно заниматься архитектурным моделированием.
- Здесь можно заниматься проектированием внешнего вида объектов, работая с его трёхмерной моделью.
- Можно создавать набор двумерных эскизов трёхмерных деталей.
- Получение чертежей высокого качества на основе двумерных моделей.
- Использовать большой набор специализированных инструментов для проектирования.
- В комплекте имеется значительное количество примитивов, с помощью которых можно составлять сложные формы.
- Можно подбирать оптимальные размеры объектов после создания первоначального чертежа.
- Предусмотрены специальные окружения для исполнения профессиональных задач в определённых сферах.
- Архитектурные объекты могут изображаться в качестве сочетания блоков различных форм и размеров.
- Интерфейс программы можно настраивать в соответствии со своими требованиями.
Эти и другие возможности позволяют эффективно использовать Freecad для трёхмерного моделирования. В последних моделях приняты дополнительные меры для того, чтобы программа демонстрировала стабильность и надёжность.
Особенности интерфейса
Используемые инструменты разделены на группы:
- К первой относятся применяемые виды: аксонометрический, вдоль различных осей координат.
- Вторая группа открывает доступ к существующим примитивам. Их использование позволяет ускорить работу над моделью. Здесь можно выбрать следующие варианты: шар, куб, пирамиду, параллелепипед, тор, конус и другие. Есть возможность создавать собственноручно разработанные примитивы. Для того, чтобы к этому приступить, достаточно кликнуть по соответствующей кнопке.
- Третья группа предусматривает возможность выполнения логических операций над изображаемыми объектами. С их помощью можно выбирать, например, объединение или пересечение форм.
Имеются встроенные электронные таблицы. Они используются для хранения параметров Freecad модели. Содержимое таблиц можно изменять, модифицируя созданный объект.
Доступно создание многокомпонентных конструкций. При этом сначала создаются детали, а затем из них собирается нужный объект.
Работа с ПО
После запуска пользователь попадает в главное окно программы. Оно разделено на две части. Справа находится поле, в котором будет создаваться трёхмерная модель. У левого поля можно выбрать из двух вкладок: «model» и «Задачи». На первой из них можно переключать вид, выбирать нужные элементы, изменять масштаб, вращать деталь или делать другие действия. Во второй отображаются особенности выполняемых задач. Если некоторые из них являются активными и требуют ввод от пользователя, то рядом с ними отображается иконка в виде карандаша.
Для того, чтобы выбрать подходящие инструменты, необходимо установить соответствующий им режим. Здесь не предусмотрено одновременное наличие сразу всех их.
Перед началом работы переходят в пункт главного меню – «Рабочий стол». После этого открывается возможность выбирать из всех доступных режимов работы. Доступно черчение, редактирование или просмотр.
Программа использует в работе собственный графический формат: FCStd. При сохранении можно выбрать один из наиболее распространённых вариантов: Freecad DWG, DXF, SVG, PDF и ещё много других распространённых вариантов.
Работая с моделями можно применять следующее:
- Присутствует модуль, предназначенный для проведения рендеринга.
- Создав объёмный объект, на его основе можно создать двухмерные чертежи в различных проекциях.
- Для создания модели доступно использование предустановленных примитивов. Не представляет сложностей самому создать новые, если возникла необходимость.
- Перед тем, как работать в Freecad, есть возможность выбрать из нескольких растровых форматов.
- В программе доступно использование модуля, имитирующего выполнение обработки металлической детали.
- Присутствует встроенная среда для создания, отладки и работы с макросами.
- Работать в редакторе можно не только визуально, но и с помощью скриптовых команд.
Эта программа, хотя имеет значительные возможности, тем не менее отличается скромным потреблением ресурсов компьютера. С ней удобно работать даже на машинах бюджетного класса с объёмом оперативной памяти от 800 МБ. Дистрибутив занимает 125 МБ, что для современных утилит совсем немного.
Преимущества редактора
Оставленные о Freecad отзывы, показывают, что программа имеет следующие достоинства:
- С её помощью можно создавать рисунки и чертежи трёхмерных деталей. Доступна работа с фигурами различной степени сложности.
- Предусмотрена возможность экспорта готовых моделей наиболее популярных форматов и импорта в них.
- Графический редактор позволяет оформлять документацию и выполнять необходимые инженерные расчёты.
- Free cad обладает всеми необходимыми инструментами, которые необходимы для трёхмерного рисования.
- Для выполнения во Freecad 3D чертежей можно использовать следующие форматы: STEL, SVG, STEP, DXF, OBJ, DAE и IGES.
- Здесь применяется модульная архитектура. Таким образом можно выполнить конфигурирование программы нужным пользователю образом.
- В процессе работы можно использовать скрипты на Python или Qt.
- Для работы предусмотрено наличие консоли.
Чертежи, которые создаются при помощи редактора, являются параметрическими. А при их рисовании не нужно прилагать значительные усилия для получения качественного результата.
Недостатки
Программа обладает всего двумя явными минусами:
- Она не включает в себя всех функций, необходимых для работы полноценной САПР.
- В работе важную роль играет использование скриптов на Python или Qt. Далеко не всем пользователям подходит необходимость изучения этих языков для рисования трёхмерных фигур.
Заключение
Freecad поможет нарисовать трёхмерные детали. Здесь можно создать самому дополнения для увеличения функциональности редактора или воспользоваться уже готовыми. Однако уровень функциональности недостаточен для использования в сложных коммерческих проектах.
Полезное видео
Практический урок для новичков:
Источник
Crafting.be
When engineering is in blood
Show menu Hide menu
- САПР
- Автоматика
- Обзоры
- CAE
- Обзор
- Другое
- YouTube Канал
- САПР
- Автоматика
- Обзоры
- CAE
- Обзор
- Другое
- YouTube Канал
@Graveraider Играет песня Гражданской обороны — Некрофилия
@hobbyworld_twit a world war of cthulhu чей?
@turbojedi Клаву хардварную была попытка сделать?
@001iz @Graveraider Всегда был вопрос а как у Evil персонажей могут быть романтики. Там скорее как в KoToR прогибание под свою сторону силы.
@Graveraider @001iz Q: Есть ли в игре романы? A: Да. Вы можете завести роман с 4 компаньонами, 2 из которых бисексуальны.
@001iz Заметки натуралиста, наплыв народу в комиксшопы вот произошел, после теории большого взрыва, где ненавязчиво подавалась идея что у задрота есть деньги, главное втереться к нему в доверие) Но только с хардкором тяжело.
Советуем посмотреть также Сайт Некроманта
Метки
FreeCAD : глобальные изменения в 0.17
Медленно и лениво, сел я вечером писать сценарий для видео по PartDesign модулю, предварительно обновив FreeCAD и понял что все поменялось.
После копаний на форумах и в черновиках wiki-страниц, предоставляю небольшую справку о том как работать с новым PartDesign модулем, а также переписанным Drawing модулем который теперь называется TechDraw
Уважаемые читатели, пожалуйста подсказывайте принятые названия или лучший перевод терминов. Меня как истину в последней инстанции воспринимать нельзя, т.к. все же САПР это моё хобби а не работа.
Table of Contents
- PartDesign
- Вводная по новым концепциям и задумкам
- Базовый пример
- Концепции
- Body & Part
- Sketch MapMode
- Placement
- Datums
- Выводы
- TechDraw
- Выводы
PartDesign
Вводная по новым концепциям и задумкам
Если помните, ещё 3 или 4 года назад на сайте FreeCAD была описана концепция, которая требовала переписывания существующего PartDesign(да в общем и всех основных модулей) для того чтобы можно было без проблем заниматься написанием модуля сборок,а это главная претензия к FreeCAD.
Модуль по прежнему ведет себя необычно, т.е. в отличие от Part модуля там нет вложенных древовидных операций, но всё стало чуть логичней.
Покопавшись на форуме находим это описание новых концепций.
На сегодняшний момент разрабатываемая версия FreeCAD 0.17 получила большое обновление PartDesign верстака. Так как рабочий процесс во многих местах изменился, здесь представлен обзор наиболее важных новых концепций:
- Тело. Тело представляет из себя единое твердое тело с множеством индивидуальных PartDesign особенностей(features). Он просто группирует все особенности используемые для создания этого тела, в одну древовидную структуру. Оно также предоставляет НСК [Начальная система координат — Origin] (Плоскости и оси координат) на которую в могут ссылаться другие особенности. Кроме того его можно свободно перемещать не перемещая при этом непосредственно каждую входящую особенность.
- Деталь. Деталь никак не связана конкретно в PartDesign модулем, но это новый общий для всего FreeCAD элемент. Она обладает локальной системой координат [ЛКС] и может быть использована для группировки любого вида элементов FreeCAD и перемещения их как единого целого. Это будущая основа для сборок.
- Активные объекты: Теперь существует понятие — активные объекты. Например в вашем файле содержится несколько Тел(Bodies). Если вы создадите новую особенность, особенность добавится к тому что активировано. Активировать тело можно, дважды кликнув по нему, активное состояние будет отображаться в древе документа с помощью фонового цвета.
- Теперь стало возможно создавать базовые плоскости/линии/точки и прикреплять их к особенностям. Эти базовые элементы могут быть использованы в качестве основы для эскизов, осей вращения и.т.д. Существует множество возможностей прикрепления вспомогательных элементов, пробуйте их:)
- Больше не нужно размещать эскиз на грани особенности. Даже если он создан в любом месте трехмерного пространства, теперь особенность будет автоматически добавляться/вычитаться из тела.
- Основанные на эскизах инструменты(вытянуть, вращать,…) теперь работают не только с эскизами но и с гранями особенностей.
- Перекрестные ссылки: Теперь стало возможно ссылаться на вещи одного тела на другое тело через базовые элементы. Например, привязка к базовой форме позволяет скопировать грани с одного тела как опорные для другого. Это должно упростить создание коробки с прикрепленной крышкой как двух различных тел. FreeCAD поможет вам случайно не сослаться на другое тело и запросить подробней что вы имели в виду.
- Дополнительный набор инструментов: все соответствующие инструменты, раньше доступные исключительно в Part верстаке, теперь доступны в PartDesign. Существуют также отличия от обычного поведения: всегда создавая твердые тела, они автоматически добавляются или вычитаются из тела.
- Миграция: Файлы созданные в предыдущих версиях FreeCAD по прежнему можно открывать и редактировать. Если деталь построена исключительно в PartDesign предыдущих версий не конвертировалась в новый стиль, это можно сделать через меню ->PartDesign -> Migrate. Если документ содержит смесь Part/Part Design/Draft конвертация скорее всего не удастся.
О любых возникших ошибках, следует сообщать в mantis bug tracker в рамках проекта PartDesign и назначать мне.
Базовый пример
Позже находим небольшой пример и зачатки будущего wiki-описания.
Обратите внимания что разрабатываемая 0.17 версия получила множество изменений, не рекомендуется использовать её для реальной работы, пока она нестабильна. Файлы 0.16 версии могут быть открыты и компоненты (созданные в PartDesign) в них могут быть отредактированы но нельзя будет добавить новые. Это действительно для нового верстака с телами. Если модель сделана только в верстаке PartDesign вы можете попытаться осуществить миграцию ->PartDesign->Migrate описано в этом топике ickby
Чтобы начать новый проект:
- Кликните Создать тело
- Кликните создать скетч
- выберете плоскость(базовую плоскость) в меню или в трехмерном окне
- Нажмите Ок
- Создастся скетч, используйте его обычным способом чтобы создать, например, площадку.
Результат. Древовидная структура документа и свойства созданной площадки
Map Mode. Это свойство позволит вам, изменить расположение скетча в пространстве. Смотри раздел для подробностей
Расположение. Для прикрепленного к чему-то эскиза(да и любых прикрепленных объектов) старые свойства Placement(расположение) отключается. В этом случае перемещение скетча происходит через свойство super Placement
Когда новый элемент добавляется в проект, он интегрируется в уже существующий. В примере цилиндрическая площадка добавилась к прямоугольной площадке.
Также происходит с карманами расположенными на грани.
Новые инструменты базирования
Новый PD также предоставляет новые инструменты которые позволят вам ссылаться на элементы(конструктивные элементы) такие как точка, линия или плоскость. Они доступны в выпадающем меню или на панели инструментов
Здесь мы добавляем плоскость параллельную горизонтальной плоскости, с смещением OffsetZ=6.
Концепции
Body & Part
Тело — это твердое тело созданное исключительно в PartDesign. И обладающем системой координат относительно которой будут размещаться все элементы добавляемые к телу. Т.е. коробка с крышкой это два тела, а не одно. При наличии нескольких тел в документе, помните что только одно из них может быть активным единовременно.
Деталь — грубо говоря папка в которую мы кидаем всякое и удобно перемещаем. Обладает ЛСК относительно которой размещаются объекты внутри Детали. Пока нет Assembly мода и решателя работающих исключительно с деталями, но вы уже сейчас можете организовывать документы сборок. Один из старых способов, создавать сборки предполагал экспорт детали в Step, а затем импорт этого файла в файл сборки.
Sketch MapMode
Виды размещения или привязки Эскизов к объектам. Подробнее.
Если подробнее, то это различные привязки плоскостей эскизов к каким либо объектам. Там взять центр масс объекта или центр кривой. Но кажется пока инструмент в нерабочем состоянии, так как ни при создании эскиза, ни после, пытаясь вручную менять свойство MapMode — получал нечто не особо рабочее.
Но в тоже время своеобразный геометрический решатель для расположения объектов ,работает при использовании объектов базирования, о них ниже.
Placement
Да тут тоже важно. При работе с привязанными объектами, свойство Placement(Положение) становится недоступным для редактирования. В тоже время объект можно смещать относительно локального центра координат.
Так например создав точку как центр масс объекта, мы можем сместить её от этого центра масс указав данные смещения в super Placement
Datums
Это вспомогательные объекты ,вроде точки, линии , плоскости и формы(shape). На них вы можете как строить эскизы, так и использовать внутри эскизов.
Процесс задания базирующего объекта похож на ограничение в верстаке Эскизы.Вы выбираете объекты тела, например ребро, а также то как этот объект связан с базированием(центр масс, точка просто находится на линии и.т.д. и.т.п.).
Также краткая справка подсказывает,что означает ограничение и к чему оно применимо.
А вот пример интересней, из цилиндра и функции толщины сделана банка. Затем выбрав верхнюю кромку нашей кружки, создаем новое Тело,активируем его выберем Datum Shape и он спросит создать ли в новом теле копию объекта или ссылку на объект. Создав ссылку у нас появится выбранная грань. На ней мы создадим скетч нашей крышки, используя грани DatumShape для справки
Выводы
Правила игры в PartDesign кардинально сменились, теперь нам надо будет на ощупь искать, техники работы при проектирование параметрических деталей. Введен объект вроде Part, но новых инструментов для работы с ним пока нет, но подготавливать и переносить свои старые документы, все же стоит.
TechDraw
Здесь изменения произошли в верстаке Drawing, это такой промежуточный верстак для подготовки проекций и дальнейшей их доработки где нибудь в QCAD, DraftSight, Inkscape.
И переписав верстак и назвав его TechDraw нам упростили многие процедуры. Да по прежнему проекции работают только с цельными телами и объединениями(compound) и к сожалению не работают с новыми объектами типа Part.
Зато теперь гораздо удобнее создавать виды объектов а также вручную перемещать их на листе. Появилась система шаблонов листов. Как их делать, пока не копал, но изучать думаю отсюда. Пока же думаю постобработка DXF/SVG в других CAD, лучшее решение. В общем в шаблонах есть редактируемые поля, отмеченные зеленым.
По мимо стандартных инструментов расположения видов, появились удобные пусть и не особо настраиваемые инструменты простановки размеров. Также виды могут наследовать от листа свойство Масштаб(Scale)
Есть возможность делать Сечения(Section) и переносить двумерные объекты из Draft и верстака работы с таблицами, но они пока работают криво, надеюсь в будущем работать они будут лучше ну или хотя бы обзаведутся диалоговыми окнами для настройки.
Также есть возможность обрезать виды с помощью инструмента Clip но увы только по прямоугольному контуру. Впрочем для быстрого размещения проекций детали на листе все стало куда удобнее.
Выводы
Удобство интерфейса выросло, но инструмент по прежнему не подходит для оформления чертежей, но время для отправки на постобработку должно снизится.
Источник
FreeCad для рукожопов 1
Поскольку меня, как и многих тут пробивает жаба при виде ценников в магазинах, то рукожоплю помаленьку полочки-шкафчики из ЛДСП.
Дело, вобщем, не хитрое, но полезно все-таки начертить, поскольку, если не начертить и размеры не проставить очень обидные ляпы получаются, типа вставлял ящик, толщину направляющих учел, а про толщину стенки забыл, в результате переделывать приходится.
Руками чертить в современном мире западло, хочется на компе.
Покупать под домашние нужды всякого рода базисы, компасы и прочие б-кады ну никак не экономия, пробовал Скетчап, штука симпатичная, интуитивно быстро понимаемая, но в бесплатном варианте, это скорее рисовалка эскизов, чем чертежная программа, с точными размерами работать довольно заморочно и с выводом чертежей полочек-стеночек никак, максимум образмеренный 3D.
В результате полез разбираться с FreeCad, система бесплатная довольно мощная, много чего может, но нифига не интуитивная, приходится разбираться.
Пока, система, в основном, заточена на рисование отдельных деталей, судя по отзывам ею часто пользуются «3D печатники». Сборка объектов возможна, но пока это сделано не очень хорошо, есть проблемы. Впрочем, для моделирования шкафчика из фанеры возможностей достаточно.
Маялся я с этой штукой «набегами» месяца три, до годного чертежа, который переложил на схему распила деталей, с которой сходил в один зеленый магазин я дошел. Попробую рассказать как нарисовать шкафчик/полочку из дсп.
В условно «любительских» программах используется подход что «вижу, то и имею», если я вижу на экране три нарисованных кубика, то это три равноправных объекта, цепляю любой и тащу его туда, куда мне надо.
Во Фрикаде это работает совсем не так, Объект (например шкаф) состоит из деталей (стенки, полки, ножки), деталь состоит из «тел» , например, ножка состоит из нескольких цилиндров объединенных между собой.
В результате может случиться, что мы видим на экране три куба, из которых один — «деталь», а остальные 2 — два «тела» от другой детали, в зависимости от их принадлежности те или иные функции будут работать или нет.
Но это еще не все «тела» и объекты могут создаваться двумя основными путями:
1. Создаем «примитивы», кубы, цилиндры, шары и т.п. комбинируем, складываем, вычитаем, пересекаем, искажаем
2. Рисуем двумерные рисунки (скетчи) и их «выдавливаем» или «крутим» для создания цилиндрических тел, на гранях полученного тела рисуем еще скетчи и их выдавливаем, превращаем в пазы и отверстия и т.п.
В зависимости от того, каким способом создан объект те или иные функции не будут/не будут работать.
В результате мы можем увидеть несколько абсолютно внешне одинаковых объектов которые будут вести себя существенно по разному
Куб «сам по себе» нельзя объединить с кубом из детали1, а скетч можно нарисовать только на грани куба сделанного выдавливанием из скетча.
Источник
UNI Форум
Видео уроки по FreeCAD
Видео уроки по FreeCAD
Сообщение demonlibra » 28 янв 2020, 22:06
Кто бы что не говорил, но программа достойная. Лично мне после некоторой практики программа зашла.
Главными преимуществами этой программы являются:
- Открытый исходный код (OpenSource)
- Кроссплатформенность (Windows, Mac, GNU/Linux)
- Никаких регистраций и активации через интернет.
- Никаких ограниченных домашних (некоммерческих) и учебных лицензий, которые могут в любой момент отменить.
Не пытайтесь сравнивать FreeCAD с коммерческими продуктами стоимостью несколько тысяч евро. Проектировать во FreeCAD космический корабль — утопия, но то что сможет распечатать 3d-принтер, можно смоделировать во FreeCAD.
Если же Вы моделируете профессионально, т.е. зарабатываете этим и моделируете ежедневно по несколько часов, то эта статья точно не для Вас. В этом случае заплатить 2-3 тысячи евро за максимально удобную программу для Вас не проблема.
Ну а если Вы проектируете детальки с 10-ю гранями раз в неделю при помощи SOLIDWORKS, то вероятно и гвозди Вы забиваете микроскопом, при чем еще и ворованным. Программа имеет особенность, а именно разделение функционала на подгруппы, которые называются «Верстаками». Вероятно это сделано по причине того, что FreeCAD разрабатывается децентрализованно группой энтузиастов. Каждый пилит и курирует свою часть. Верстаков много и каждый ориентирован на свои задачи.
Изучать программу методом научного тыка непосильная задача, лучше посмотреть реальные примеры работы. Потратите меньше времени и нервов. Рекомендую к просмотру следующие обучающие уроки, которые я расположил по своим предпочтениям:
Урок по основам FreeCad — Долго и нудно, но для введения необходимо.
YouTube канал FreeCAD Fun — Примеры без комментариев. Коротко и по делу. Для себя нашел этот канал самым полезным.
YouTube канал Viktor Ignatov — Много примеров решения разнообразных задач с комментариями на русском языке.
Другие уроки:
YouTube канал Invent Box Tutorials — Комментарии на английском языке. Но можно смотреть и без звука. Половина уроков касаются CAM.
YouTube канал freecadscourse — Примеры без комментариев.
YouTube канал Bugman — Много примеров.
YouTube канал CFD Intech — Уроки по созданию крыльчатки
Не бойся поломать. Бойся не починить ))
Источник
FreeCAD — новый метод рисования
Disclamer: Я никогда в своей жизни не работал с CAD/CAM приложениями раньше, и, вдруг, пришлось. Принципы работы FreeCAD меня так восхитили, что это требует срочного поста на Хабр, чтобы рассказать другим.
Написанное в этом посте, вероятнее всего, будет тривиальным и скучным для большинства активных пользователей CAD, и этот пост нацелен в первую очередь на не-пользователей CAD с целью рассказать им про чудный новый мир компьютерной графики.
Вступление
У меня возникла простая задача — сделать 3D модель своей квартиры. Не просто «стенки в размер», а все балки, выступы и загибы. Я попробовал одну, вторую, третью программу… Я отчаялся (началось с SweetHome3D, а закончилось blender и inkscape). Они все были чертовски неудобными. Среди программ, которые я попробовал, был и FreeCAD, который я пропустил по причине «нифига не сделать» и «не работает толком». После того, как я отчаялся, я пошёл по второму кругу. На этот раз, чуть больше читая документацию… И FreeCAD не только «взлетел», но и ещё и открыл для меня восхитительный новый мир точного векторного рисования, основывающегося на Constrains.
Проблемы моделирования
Для начала я расскажу про ту боль, от которой я страдал в разных редакторах.
Начнём с SweetHome3D. Условно-понятный интерфейс, позволяющий описать комнату как «пол» (где задаётся форма и выступы), вокруг которой делается «стена». SweetHome3D дал мне две проблемы: пиксельхантинг (размер меняется либо микроскопическими сдвигами мыши, либо в диалоге, но не существует метода «прижать» стенку к полу с точностью — только пиксельхантинг. Вторая проблема — модель SweetHome3D не подразумевает существование балок, арок и других элементов стены, не идущих сверху до низу. Дополнительно, SH3D не умеет наклонных стен и полов (я бы хотел, чтобы такой проблемы у меня не было, но перед тем, как эту проблему устранять IRL, её надо задокументировать). Т.е. SH3D покрывает 90% того, что мне было нужно, доставляя невероятную боль с 5%, и делая невозможным оставшиеся 5%.
Blender теоретически позволяет сделать всё, но только теоретически. На практике либо моих навыков не хватало, либо сам процесс очень медлительный, но нарисовав три с половиной угла, я сдался. Слишком медленно и слишком много возни с освещением и другими неважными вещами. Плюс (насколько я знаю), Blender вряд ли сможет показать нормальные 2D проекции с размерами.
Inkscape был хорош кроме одной проблемы — в многосекционной линии (F2) невозможно задать размеры каждой секции. Можно было бы — я бы всё в Inkscape так и рисовал.
… Но мой пост не про абсолютное превосходство FreeCAD над Blender (я в обоих их новичок и толком сравнить не могу), а про новый стиль рисования. Сначала про проблемы старого стиля (то есть «обычного» векторного рисунка).
Проблема пиксель-хантинга
Перед тем, как перейти к картинкам и объяснению идеи Constrains, я хочу сфокусироваться на нескольких проблемах, которые извечно преследуют векторные рисунки:
Почти объединённые кривые. Если две кривые почти соприкасаются, то можно подумать, что они соприкасаются. В какой-то момент (при печати, либо при дальнейших манипуляциях), картинка развалится.
Почти параллельные/перпендикулярные линии. Они параллельны, но не до конца.
обратите внимание на outline, он показывает, что описывающий прямоугольник для двух линий больше самой линии, т.е. линия под острым углом.
производная от предыдущего — линии, стыкующиеся под углом в 0.001°.
неточности в размерах и толщине линий. Линия имеет свою толщину, и при редактировании (поворотах, ресайзах и т.д.) толщина начинает плыть. Более того, в большинстве векторных реакторов трудно нарисовать квадрат с площадью 100 и линией толщиной 0.5 (потому что линия на 50% заходит на площадь фигуры, и мы имеем не 10х10 внутри, а 9.75х9.75).
Сохранение align’а и симметрии является задачей, требующей постоянного внимания.
В редакторах встроено множество инструментов для борьбы с подобными неприятностями, но у этих инструментов есть одно затруднение — их надо осмысленно применять там, где возникла проблема. А за возникновением проблем надо следить самому.
Constrains
Это было долгое вступление. Теперь я рассказываю про constrains, или, по-русски, удерживающие связи (перевод термина из статьи про степени свободы в механике.
Давайте попробуем нарисовать квадрат со стороной 10, опираясь на его фундаментальные свойства.
У квадрата 4 прямые стороны.
Почти получилось. Солвер подсказывает, что нам надо задать 15 дополнительных удерживающих связей, чтобы наша фигура была однозначной (у неё было 0 степеней свободы).
- Противоположные стороны квадрата параллельны *
Солвер говорит, уже лучше. Стало не хватать 13. Обратите внимание на красные пометки — это указание на constrains. В самом начале у нас случайно получилось два ограничения — две горизонтальные линии.
Стало лучше, хотя на квадрат это всё ещё похоже мало. Что же не так? Ах, да, квадрат — это полигон, а у полигона стороны сходятся в углах в точку. Добавим эти ограничения.
Получилось немного неожиданно, хотя solver всё более довольный. Указанная фигура — обычный такой четырёхугольник, в котором стороны попарно параллельны. Немного за пределами школьного курса, но вполне понятно.
Добавим объёма … плоскости к этой фигуре. Соседние грани — перпендикулярны.
Уже похоже на правду (хотя это я чуть-чуть подтянул вверх рисунок, потому что стороны нулевого размера вполне устраивают solver как перпендикулярные к прямой, на которой лежат (в виде точки)). solver ругается на избыток ограничений. Согласимся с ним и удалим одну перпендикулярность (у нас требование попарной параллельности, перпендикулярность для одной пары автоматически вытекает из перпендикулярности первой пары). После того, как мы удалили лишнее, solver жалуется на 4 свободы.
Запретим ещё что-нибудь, так как свободы слишком много.
Например, скажем, что все стороны должны быть одинакового размера. Достаточно сделать это для двух любых смежных сторон, и из этого вытекает, что все стороны равны (школьная геометрия!).
После этого у нас получается три свободы. Ещё три свободы? Но квадрат же… Да, это квадрат, но мы не знаем его размера (0 — тоже размер, между прочим), и положения в пространстве.
Зададим его — укажем, что один из углов квадрата лежит на точке «0, 0», плюс зададим для одной из сторон размер в 10мм.
Всё, квадрат полностью готов, у него нет свобод, а значит, нет и скрытых ошибок.
Этот пример был немного гротескным, но, как я надеюсь, выразительным. Особенно меня впечатлило, что solver не только проверяет на отсутствие неоднозначностей, но ещё и предупреждает, если фигура содержит больше ограничений, чем надо.
Лирика
Для меня такой метод описания рисунка является совершенно новым и неожиданным. В каком-то смысле он напоминает то, что делают типизированные языки программирования с машинным кодом — добавляют в него ограничений, позволяющих в математически-точной форме задать ограничения на возможные операции с данными. В тот момент, когда ограничений достаточно много, мы получаем однозначное решение, которое точно есть и точно однозначное. И точно правильное, если входные данные были правильными. И никаких «случайно задел мышкой» или «рука дрогнула».
Источник