Меню

Программа для 3D моделирования Free cad

Программа для 3D моделирования Free cad

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

Область применения

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

Модульная структура позволяет наращивать функциональность путём добавления новых компонентов. Использование скриптовых языков дает возможность самостоятельно создавать нужные дополнения, улучшающие функциональность.

Это приложение будет полезно для следующих категорий пользователей:

  1. Freecad для начинающих в качестве домашнего хобби. Подойдёт, если пользователь хочет начертить 3D чертёж, не обладая профессиональными навыками трёхмерного проектирования. При работе не требуется практический опыт использования подобных систем. В сети есть большое количество понятных обучающих материалов и даже Freecad руководство на русском языке.
  2. По для опытных юзеров. Используя профессиональную систему на работе, будет легко найти аналогичные инструменты стандартной версии графического редактора.
  3. На этой программе будет удобно работать программисту, владеющему скриптовыми языками. Ему будет нетрудно разобраться, как работать, использую Python и Qt.

Функциональные возможности приложения

Программа была создана для 3D CAD моделирования. Основным типом чертежей являются машиностроительные. Приложение себя хорошо зарекомендовало для использования в качестве программы для архитектурного моделирования. Программа попадает также в такие категории: САПР, CAE, PLM, Cax. Здесь имеются возможности для совместной работы с другими приложениями, например, с KiCad.

В программе предусмотрено большое количество 2D инструментов. Они позволяют сделать качественное двумерное изображение трёхмерного объекта.

Функциональные возможности приложения позволяют сделать следующее:

  1. Трёхмерные модели высокого качества.фото-1
  2. Параметрические объекты дающие расширенные возможности для проектирования.фото-1
  3. С помощью Freecad можно заниматься архитектурным моделированием.фото-1
  4. Здесь можно заниматься проектированием внешнего вида объектов, работая с его трёхмерной моделью.фото-1
  5. Можно создавать набор двумерных эскизов трёхмерных деталей.
  6. Получение чертежей высокого качества на основе двумерных моделей.фото-1
  7. Использовать большой набор специализированных инструментов для проектирования.
  8. В комплекте имеется значительное количество примитивов, с помощью которых можно составлять сложные формы.фото-1
  9. Можно подбирать оптимальные размеры объектов после создания первоначального чертежа.
  10. Предусмотрены специальные окружения для исполнения профессиональных задач в определённых сферах.
  11. Архитектурные объекты могут изображаться в качестве сочетания блоков различных форм и размеров.
  12. Интерфейс программы можно настраивать в соответствии со своими требованиями.

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

Особенности интерфейса

Используемые инструменты разделены на группы:

  1. К первой относятся применяемые виды: аксонометрический, вдоль различных осей координат.
  2. Вторая группа открывает доступ к существующим примитивам. Их использование позволяет ускорить работу над моделью. Здесь можно выбрать следующие варианты: шар, куб, пирамиду, параллелепипед, тор, конус и другие. Есть возможность создавать собственноручно разработанные примитивы. Для того, чтобы к этому приступить, достаточно кликнуть по соответствующей кнопке.
  3. Третья группа предусматривает возможность выполнения логических операций над изображаемыми объектами. С их помощью можно выбирать, например, объединение или пересечение форм.

Имеются встроенные электронные таблицы. Они используются для хранения параметров Freecad модели. Содержимое таблиц можно изменять, модифицируя созданный объект.

Доступно создание многокомпонентных конструкций. При этом сначала создаются детали, а затем из них собирается нужный объект.

фото-1

Работа с ПО

После запуска пользователь попадает в главное окно программы. Оно разделено на две части. Справа находится поле, в котором будет создаваться трёхмерная модель. У левого поля можно выбрать из двух вкладок: «model» и «Задачи». На первой из них можно переключать вид, выбирать нужные элементы, изменять масштаб, вращать деталь или делать другие действия. Во второй отображаются особенности выполняемых задач. Если некоторые из них являются активными и требуют ввод от пользователя, то рядом с ними отображается иконка в виде карандаша.

фото-1

Для того, чтобы выбрать подходящие инструменты, необходимо установить соответствующий им режим. Здесь не предусмотрено одновременное наличие сразу всех их.

Перед началом работы переходят в пункт главного меню – «Рабочий стол». После этого открывается возможность выбирать из всех доступных режимов работы. Доступно черчение, редактирование или просмотр.

Программа использует в работе собственный графический формат: FCStd. При сохранении можно выбрать один из наиболее распространённых вариантов: Freecad DWG, DXF, SVG, PDF и ещё много других распространённых вариантов.

Работая с моделями можно применять следующее:

  1. Присутствует модуль, предназначенный для проведения рендеринга.
  2. Создав объёмный объект, на его основе можно создать двухмерные чертежи в различных проекциях.
  3. Для создания модели доступно использование предустановленных примитивов. Не представляет сложностей самому создать новые, если возникла необходимость.
  4. Перед тем, как работать в Freecad, есть возможность выбрать из нескольких растровых форматов.
  5. В программе доступно использование модуля, имитирующего выполнение обработки металлической детали.
  6. Присутствует встроенная среда для создания, отладки и работы с макросами.
  7. Работать в редакторе можно не только визуально, но и с помощью скриптовых команд.

Эта программа, хотя имеет значительные возможности, тем не менее отличается скромным потреблением ресурсов компьютера. С ней удобно работать даже на машинах бюджетного класса с объёмом оперативной памяти от 800 МБ. Дистрибутив занимает 125 МБ, что для современных утилит совсем немного.

Преимущества редактора

Оставленные о Freecad отзывы, показывают, что программа имеет следующие достоинства:

  1. С её помощью можно создавать рисунки и чертежи трёхмерных деталей. Доступна работа с фигурами различной степени сложности.
  2. Предусмотрена возможность экспорта готовых моделей наиболее популярных форматов и импорта в них.
  3. Графический редактор позволяет оформлять документацию и выполнять необходимые инженерные расчёты.
  4. Free cad обладает всеми необходимыми инструментами, которые необходимы для трёхмерного рисования.
  5. Для выполнения во Freecad 3D чертежей можно использовать следующие форматы: STEL, SVG, STEP, DXF, OBJ, DAE и IGES.
  6. Здесь применяется модульная архитектура. Таким образом можно выполнить конфигурирование программы нужным пользователю образом.
  7. В процессе работы можно использовать скрипты на Python или Qt.
  8. Для работы предусмотрено наличие консоли.

Чертежи, которые создаются при помощи редактора, являются параметрическими. А при их рисовании не нужно прилагать значительные усилия для получения качественного результата.

Недостатки

Программа обладает всего двумя явными минусами:

  1. Она не включает в себя всех функций, необходимых для работы полноценной САПР.
  2. В работе важную роль играет использование скриптов на Python или Qt. Далеко не всем пользователям подходит необходимость изучения этих языков для рисования трёхмерных фигур.

Заключение

Freecad поможет нарисовать трёхмерные детали. Здесь можно создать самому дополнения для увеличения функциональности редактора или воспользоваться уже готовыми. Однако уровень функциональности недостаточен для использования в сложных коммерческих проектах.

Полезное видео

Практический урок для новичков:

Источник

Crafting.be

When engineering is in blood

Show menu Hide menu

  • САПР
  • Автоматика
  • Обзоры
  • CAE
  • Обзор
  • Другое
  • YouTube Канал
  • САПР
  • Автоматика
  • Обзоры
  • CAE
  • Обзор
  • Другое
  • YouTube Канал

Sergey Khoteev

Sergey Khoteev

@Graveraider Играет песня Гражданской обороны — Некрофилия

Sergey Khoteev

@hobbyworld_twit a world war of cthulhu чей?

Sergey Khoteev

@turbojedi Клаву хардварную была попытка сделать?

Sergey Khoteev

Sergey Khoteev

@001iz @Graveraider Всегда был вопрос а как у Evil персонажей могут быть романтики. Там скорее как в KoToR прогибание под свою сторону силы.

Sergey Khoteev

@Graveraider @001iz Q: Есть ли в игре романы? A: Да. Вы можете завести роман с 4 компаньонами, 2 из которых бисексуальны.

Читайте также:  11 тонкостей приготовления домашнего шоколада

Sergey Khoteev

@001iz Заметки натуралиста, наплыв народу в комиксшопы вот произошел, после теории большого взрыва, где ненавязчиво подавалась идея что у задрота есть деньги, главное втереться к нему в доверие) Но только с хардкором тяжело.

Советуем посмотреть также Сайт Некроманта

Метки

FreeCAD : глобальные изменения в 0.17

Медленно и лениво, сел я вечером писать сценарий для видео по PartDesign модулю, предварительно обновив FreeCAD и понял что все поменялось.

freecad_partdesign_new_2016.png

После копаний на форумах и в черновиках 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

Чтобы начать новый проект:

  • Кликните Создать тело
  • Кликните создать скетч
  • выберете плоскость(базовую плоскость) в меню или в трехмерном окне
  • Нажмите Ок
  • Создастся скетч, используйте его обычным способом чтобы создать, например, площадку.

PartDesignNext_selectplane.png

Результат. Древовидная структура документа и свойства созданной площадки

PartDesignNext_padoptions.png

Map Mode. Это свойство позволит вам, изменить расположение скетча в пространстве. Смотри раздел для подробностей

PartDesignNext_mapmode.png

Расположение. Для прикрепленного к чему-то эскиза(да и любых прикрепленных объектов) старые свойства Placement(расположение) отключается. В этом случае перемещение скетча происходит через свойство super Placement

PartDesignNext_superplacement.png

Когда новый элемент добавляется в проект, он интегрируется в уже существующий. В примере цилиндрическая площадка добавилась к прямоугольной площадке.

PartDesignNext_additem.png

Также происходит с карманами расположенными на грани.

PartDesignNext_additem1.png

Новые инструменты базирования

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

PartDesignNext_datummenu.png

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

PartDesignNext_datuplane.png

Концепции

Body & Part

Тело — это твердое тело созданное исключительно в PartDesign. И обладающем системой координат относительно которой будут размещаться все элементы добавляемые к телу. Т.е. коробка с крышкой это два тела, а не одно. При наличии нескольких тел в документе, помните что только одно из них может быть активным единовременно.

Деталь — грубо говоря папка в которую мы кидаем всякое и удобно перемещаем. Обладает ЛСК относительно которой размещаются объекты внутри Детали. Пока нет Assembly мода и решателя работающих исключительно с деталями, но вы уже сейчас можете организовывать документы сборок. Один из старых способов, создавать сборки предполагал экспорт детали в Step, а затем импорт этого файла в файл сборки.

Sketch MapMode

Виды размещения или привязки Эскизов к объектам. Подробнее.

Если подробнее, то это различные привязки плоскостей эскизов к каким либо объектам. Там взять центр масс объекта или центр кривой. Но кажется пока инструмент в нерабочем состоянии, так как ни при создании эскиза, ни после, пытаясь вручную менять свойство MapMode — получал нечто не особо рабочее.

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

Placement

partdesign_new_2016_placement.png

Да тут тоже важно. При работе с привязанными объектами, свойство Placement(Положение) становится недоступным для редактирования. В тоже время объект можно смещать относительно локального центра координат.

Так например создав точку как центр масс объекта, мы можем сместить её от этого центра масс указав данные смещения в super Placement

Читайте также:  Пренатальный внутриутробный период развития ребенка

Datums

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

partdesign_new_2016_datum_attach_1.png

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

partdesign_new_2016_datum_attach_2.png

Также краткая справка подсказывает,что означает ограничение и к чему оно применимо.

freecad_partdesign_new_2016.png

А вот пример интересней, из цилиндра и функции толщины сделана банка. Затем выбрав верхнюю кромку нашей кружки, создаем новое Тело,активируем его выберем Datum Shape и он спросит создать ли в новом теле копию объекта или ссылку на объект. Создав ссылку у нас появится выбранная грань. На ней мы создадим скетч нашей крышки, используя грани DatumShape для справки

Выводы

Правила игры в PartDesign кардинально сменились, теперь нам надо будет на ощупь искать, техники работы при проектирование параметрических деталей. Введен объект вроде Part, но новых инструментов для работы с ним пока нет, но подготавливать и переносить свои старые документы, все же стоит.

TechDraw

Здесь изменения произошли в верстаке Drawing, это такой промежуточный верстак для подготовки проекций и дальнейшей их доработки где нибудь в QCAD, DraftSight, Inkscape.

freecad_techdraw_2.png

И переписав верстак и назвав его TechDraw нам упростили многие процедуры. Да по прежнему проекции работают только с цельными телами и объединениями(compound) и к сожалению не работают с новыми объектами типа Part.

Зато теперь гораздо удобнее создавать виды объектов а также вручную перемещать их на листе. Появилась система шаблонов листов. Как их делать, пока не копал, но изучать думаю отсюда. Пока же думаю постобработка DXF/SVG в других CAD, лучшее решение. В общем в шаблонах есть редактируемые поля, отмеченные зеленым.

freecad_techdraw_1.png

По мимо стандартных инструментов расположения видов, появились удобные пусть и не особо настраиваемые инструменты простановки размеров. Также виды могут наследовать от листа свойство Масштаб(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, я хочу сфокусироваться на нескольких проблемах, которые извечно преследуют векторные рисунки:

Почти объединённые кривые. Если две кривые почти соприкасаются, то можно подумать, что они соприкасаются. В какой-то момент (при печати, либо при дальнейших манипуляциях), картинка развалится.
image

Почти параллельные/перпендикулярные линии. Они параллельны, но не до конца.

image

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

производная от предыдущего — линии, стыкующиеся под углом в 0.001°.

неточности в размерах и толщине линий. Линия имеет свою толщину, и при редактировании (поворотах, ресайзах и т.д.) толщина начинает плыть. Более того, в большинстве векторных реакторов трудно нарисовать квадрат с площадью 100 и линией толщиной 0.5 (потому что линия на 50% заходит на площадь фигуры, и мы имеем не 10х10 внутри, а 9.75х9.75).

Сохранение align’а и симметрии является задачей, требующей постоянного внимания.

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

Constrains

Это было долгое вступление. Теперь я рассказываю про constrains, или, по-русски, удерживающие связи (перевод термина из статьи про степени свободы в механике.

Давайте попробуем нарисовать квадрат со стороной 10, опираясь на его фундаментальные свойства.

У квадрата 4 прямые стороны.

image

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

  • Противоположные стороны квадрата параллельны *

image

Солвер говорит, уже лучше. Стало не хватать 13. Обратите внимание на красные пометки — это указание на constrains. В самом начале у нас случайно получилось два ограничения — две горизонтальные линии.

Стало лучше, хотя на квадрат это всё ещё похоже мало. Что же не так? Ах, да, квадрат — это полигон, а у полигона стороны сходятся в углах в точку. Добавим эти ограничения.

image

Получилось немного неожиданно, хотя solver всё более довольный. Указанная фигура — обычный такой четырёхугольник, в котором стороны попарно параллельны. Немного за пределами школьного курса, но вполне понятно.

Добавим объёма … плоскости к этой фигуре. Соседние грани — перпендикулярны.

image

Уже похоже на правду (хотя это я чуть-чуть подтянул вверх рисунок, потому что стороны нулевого размера вполне устраивают solver как перпендикулярные к прямой, на которой лежат (в виде точки)). solver ругается на избыток ограничений. Согласимся с ним и удалим одну перпендикулярность (у нас требование попарной параллельности, перпендикулярность для одной пары автоматически вытекает из перпендикулярности первой пары). После того, как мы удалили лишнее, solver жалуется на 4 свободы.

Запретим ещё что-нибудь, так как свободы слишком много.

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

После этого у нас получается три свободы. Ещё три свободы? Но квадрат же… Да, это квадрат, но мы не знаем его размера (0 — тоже размер, между прочим), и положения в пространстве.

Зададим его — укажем, что один из углов квадрата лежит на точке «0, 0», плюс зададим для одной из сторон размер в 10мм.

Всё, квадрат полностью готов, у него нет свобод, а значит, нет и скрытых ошибок.

image

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

Лирика

Для меня такой метод описания рисунка является совершенно новым и неожиданным. В каком-то смысле он напоминает то, что делают типизированные языки программирования с машинным кодом — добавляют в него ограничений, позволяющих в математически-точной форме задать ограничения на возможные операции с данными. В тот момент, когда ограничений достаточно много, мы получаем однозначное решение, которое точно есть и точно однозначное. И точно правильное, если входные данные были правильными. И никаких «случайно задел мышкой» или «рука дрогнула».

Источник

Adblock
detector