Руководства, Инструкции, Бланки

инструкция по работе с Freecad img-1

инструкция по работе с Freecad

Категория: Инструкции

Описание

FreeCAD (x86

FreeCAD 0.17.8046

Превосходная САПР программа, которая отлично подойдет для обучения компьютерному графическому проектированию.

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

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

Изначально программа была разработана для выполнения инженерных задач любой сложности, а так же смежных с ними. Однако, благодаря своему широкому инструментарию может стать платформой разработки любых 3D моделей. Интерфейс FreeCad предполагает разделение инструментария программы на некоторое количество “рабочих мест” (профилей).

В соответствии с поставленными задачами, пользователь наполняет профиль необходимыми инструментами, убирая из панели лишние и ненужные возможности. Присутствует так же несколько типовых “рабочих мест” с готовым набором инструментов под разные задачи. Интерфейс программы будет понятен опытным 3D-разработчикам. В первый раз программа запускается в режиме “complete workbench” (полное рабочее место)

FreeCAD обладает достойным для любой среды разработки 3D моделей набором инструментов. Хорошо реализованы возможности управления объектами (масштабирование, смещение по плоскостям, повороты). Богатый выбор инструментов черчения (отрезки, кривые, окружности, дуги, прямоугольники через две точки и размерные линии). Так же есть внушительный список моделирования примитивов, и множество способов изменения объектов относительно пространства (обрезание, сплавление, извлечение, вытягивание и так далее) Одна из важнейших особенностей – поддержка скриптов. Можно получить доступ к любому элементу программы из встроенной консоли python и внести изменения или написать макросы.

Ключевые особенности и функции программы:

  • возможность создания профилей для выполнения разных задач;
  • большой набор инструментов и возможностей;
  • удобная навигация в пространстве среды разработки при помощи мыши;
  • возможность преобразования готовых моделей в чертежи 2D и конвертация чертежей в A3 (формат бумаги);
  • поддержка скриптов и встроенная консоль python.

FreeCAD is a parametric 3D modeler. Parametric modeling allows you to easily modify your design by going back into your model history and changing its parameters. FreeCAD is open source (LGPL license) and completely modular, allowing for very advanced extension and customization. FreeCAD is multiplatfom, and reads and writes many open file formats such as STEP, IGES, STL and others.

Who is FreeCAD for?

The home user/hobbyist. Got yourself a project you want to build, have built, or 3D printed? Model it in FreeCAD. No previous CAD experience required. Our community will help you get the hang of it quickly!
The experienced CAD user. If you use commercial parametric modeling software at work, you will find similar tools in FreeCAD.
The programmer. Most of FreeCAD’s functionality is accessible to Python. You can easily pilot FreeCAD from scripts, build your own modules or even embed FreeCAD in your own application.
The educator. Teach your students a free software with no worry about license purchase. They can install the same version at home and continue using it after leaving school.

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

FreeCAD: modelling part from Autocad 3D tutorial (outda.

Другие статьи

Инструкция по работе с freecad

Программа FreeCAD является бесплатной и представляет собой эффективно развивающийся новый проект, ориентированный на полноценную замену дорогостоящих систем САПР. Это означает, что проектирование на FreeCAD подобно вышеприведенным программам.

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

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

  • Возможность импорта форматов DXF, SVG, SVGZ, IGS, IGES, STEP, STP, BREP, BRP, DAT, UNV, MED, BDF, OCA, GCAD, IV, ASC, POV, INC, STL, AST, BMS, OBJ, PLY, WRL, WRZ и др.
  • Поддержка графических форматов BMP/JPEG/JPG/EPS/PNG/PPM/TIF/TIFF/XBM/XPM
  • Наличие множества инструментов для черчения, всевозможные линии, дуги, сплайны, фигуры и многое другое
  • Наличие таких параметрических примитивных форм, как куб, цилиндр, сфера, конус и тор
  • Возможность создавать собственные примитивы
  • Поддержка вращения плоскостей координат
  • Логические операции
  • Возможность создавать сетку из фигуры
  • Модуль рендеринга позволяет экспортировать геометрию FreeCAD во внешние программы для генерации высококачественных изображений
  • Возможность экспорта спроецированной 3D-геометрии в 2D-документ SVG
  • Поддержка экспорта в PDF
  • Инструменты для создания эскизов
  • Наличие модуля, инициирующего механическую обработку металла
  • Поддержка работы с макросами (запись, выполнение и прочее)
  • Наличие функции предварительного просмотра
  • Поддержка печати
  • Расширенные возможности API для написания сценариев

FreeCAD (ФриКад) скачать бесплатно без регистрации

FreeCAD (ФриКад) 0.16.6706

Бесплатная программа FreeCAD является опенсорсной системой автоматизированного проектирования. С ее помощью возможно создавать трехмерные объекты практически любой сложности.

Эта САПР считается хорошей альтернативой CATIA, а также SolidWorks и отлично справляется с задачей проектирования механики. Причем в отличии от выше упомянутых систем данное приложение кроссплатформенное.

ФриКад можно сказать первая полноценная и свободная система автоматизированного проектирования. Программа построена на наборе библиотек под названием Open CASCADE Technology, который применяется во время разработки ПО для 3D моделирования.

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

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

Проверяем исходный код FreeCAD и его - нехорошие - зависимости

Проверяем исходный код FreeCAD и его "нехорошие" зависимости

Статья, которая задумывалась как обзор ошибок в открытом проекте FreeCAD, приобрела немного другой характер. Весомая часть предупреждений анализатора пришлась на используемые сторонние библиотеки. Разработка программного обеспечения с активным использованием сторонних библиотек даёт много плюсов, особенно в сфере Open Source. И ошибки в библиотеках не повод отказываться от них. Но надо понимать, что в используемом коде тоже могут жить баги. Их надо быть готовым встретить и по возможности исправить, тем самым улучшив используемые вами библиотеки.

FreeCAD — параметрический трехмерный редактор, позволяющий создавать объемные модели и чертежи их проекций. Разработчик FreeCAD Юрген Ригель, работающий в корпорации DaimlerChrysler, позиционирует свою программу как первый бесплатный инструмент проектирования механики. В среде специалистов ряда отраслей известна проблема создания полноценной САПР в рамках Open Source, и этот проект является кандидатом на такую "полноценность". Проверим же исходный код с помощью PVS-Studio и поможем открытому проекту в этой области стать чуточку лучше. Наверняка вы сталкивались с "глюками" в различных редакторах, когда не удаётся попасть в какую-нибудь точку или выпрямить линию, которая всегда съезжает на один пиксель. Возможно, причиной всего этого являются лишь опечатки в исходном коде.

Что с PVS-Studio?!

Проект FreeCAD является кросс-платформенным, на сайте есть очень хорошая документация по сборке. Мне не составило труда получить проектные файлы для Visual Studio Community 2013 для проверки с помощью установленного плагина PVS-Studio. Но в начале проверка не задалась.

Причиной внутренней ошибки в анализаторе стало наличие бинарной последовательности в текстовом препроцессированном файле с расширением *.i. Анализатор умеет обрабатывать такие ситуации, но тут произошло что-то новое. Проблема в одной из строчек в параметрах компиляции исходных файлов:

Флаг компиляции /FI (Name Forced Include File). как и директива #include, служат для включения текстовых заголовочных файлов. Но здесь пытаются включить файл, содержащий информацию в бинарном виде. Это каким-то чудом компилируется. Возможно, в Visual C++ такой файл просто игнорируется.

Если попытаться не компилировать, а именно препроцессировать файлы, то Visual C++ сообщает об ошибке. А вот используемый в PVS-Studio по умолчанию Clang, недолго думая, включил *.i файл бинарный файл. PVS-Studio не ожидал такого подвоха и сошёл с ума.

Чтобы было понятней, о чем идёт речь, вот фрагмент препроцессированного с помощью Clang файла:

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

Первые примеры ошибок из проекта получены по известной всем причине.

V501 There are identical sub-expressions 'surfaceTwo->IsVRational()' to the left and to the right of the '!=' operator. modelrefine.cpp 780

По левую сторону оператора неравенства обнаружилась не та переменная "surfaceTwo" вместо "surfaceOne" из-за маленькой опечатки. Осталось посоветовать автору в следующий раз делать copy-paste фрагментами побольше, но и до таких примеров мы тоже дойдём =).

V517 The use of 'if (A) <. > else if (A) <. >' pattern was detected. There is a probability of logical error presence. Check lines: 162, 164. taskpanelview.cpp 162

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

V517 The use of 'if (A) <. > else if (A) <. >' pattern was detected. There is a probability of logical error presence. Check lines: 1465, 1467. application.cpp 1465

Будем надеется, что автор случайно не поправил одну скопированную строчку, но в итоге всё равно дописал поиск всех необходимых строк.

V517 The use of 'if (A) <. > else if (A) <. >' pattern was detected. There is a probability of logical error presence. Check lines: 191, 199. blendernavigationstyle.cpp 191

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

V523 The 'then' statement is equivalent to the 'else' statement. viewproviderfemmesh.cpp 695

Независимо от условия, всегда выполняется одно действие. Может всё-таки так задумывалось:

Почему я исправил именно последнюю строку? Возможно, вас заинтересует статья на эту тему: Эффект последней строки. Но возможно, надо исправить первую. Не знаю :).

V570 The 'this->quat[3]' variable is assigned to itself. rotation.cpp 260

Ещё о "последних строках". Анализатор насторожился, так как в последней строке нет знака минуса. Но тут нельзя однозначно говорить об ошибке, возможно, при реализации такого преобразования, хотели подчеркнуть, что четвёртая компонента не изменяется.

V576 Incorrect format. A different number of actual arguments is expected while calling 'fprintf' function. Expected: 2. Present: 3. memdebug.cpp 222

Такой код не имеет смысла. Если указатель нулевой, то можно просто печатать символ новой строки без передачи в функцию неиспользуемых параметров.

V596 The object was created but it is not being used. The 'throw' keyword could be missing: throw Exception(FOO); waypointpyimp.cpp 231

В коде создаётся объект типа исключения, но не используется. По всей видимости пропущено ключевое слово "throw":

Ещё несколько таких мест:

  • V596 The object was created but it is not being used. The 'throw' keyword could be missing: throw Exception(FOO); application.cpp 274
  • V596 The object was created but it is not being used. The 'throw' keyword could be missing: throw Exception(FOO); fileinfo.cpp 519
  • V596 The object was created but it is not being used. The 'throw' keyword could be missing: throw Exception(FOO); waypointpyimp.cpp 244
  • V596 The object was created but it is not being used. The 'throw' keyword could be missing: throw Exception(FOO); sketch.cpp 185

V599 The virtual destructor is not present, although the 'Curve' class contains virtual functions. constraints.cpp 1442

В базовом классе "Curve" объявлены виртуальные функции, но не объявлен деструктор, который будет создан по умолчанию. И он конечно будет не виртуальным! Это означает, что объекты, наследуемые от этого класса, не будут полностью очищены при таком сценарии использования, когда указатель на дочерний объект сохраняется в указатель на базовый класс. Судя по комментарию, у базового класса наследуемых классов много, например, приведённый класс "Line" в примере.

V655 The strings were concatenated but are not utilized. Consider inspecting the expression. propertyitem.cpp 1013

Анализатор обнаружил бессмысленное сложение строк. Если приглядеться, то, возможно, тут хотели использовать оператор '+=' вместо простого сложения. Тогда такой код имел бы смысл.

V595 The 'root' pointer was utilized before it was verified against nullptr. Check lines: 293, 294. view3dinventorexamples.cpp 293

Один пример с проверкой указателя не в том месте, другие места находятся здесь:

  • V595 The 'cam' pointer was utilized before it was verified against nullptr. Check lines: 1049, 1056. viewprovider.cpp 1049
  • V595 The 'viewProviderRoot' pointer was utilized before it was verified against nullptr. Check lines: 187, 188. taskcheckgeometry.cpp 187
  • V595 The 'node' pointer was utilized before it was verified against nullptr. Check lines: 209, 210. viewproviderrobotobject.cpp 209
  • V595 The 'node' pointer was utilized before it was verified against nullptr. Check lines: 222, 223. viewproviderrobotobject.cpp 222
  • V595 The 'node' pointer was utilized before it was verified against nullptr. Check lines: 235, 236. viewproviderrobotobject.cpp 235
  • V595 The 'node' pointer was utilized before it was verified against nullptr. Check lines: 248, 249. viewproviderrobotobject.cpp 248
  • V595 The 'node' pointer was utilized before it was verified against nullptr. Check lines: 261, 262. viewproviderrobotobject.cpp 261
  • V595 The 'node' pointer was utilized before it was verified against nullptr. Check lines: 274, 275. viewproviderrobotobject.cpp 274
  • V595 The 'owner' pointer was utilized before it was verified against nullptr. Check lines: 991, 995. propertysheet.cpp 991
Open CASCADE library

V519 The 'myIndex[1]' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 60, 61. brepmesh_pairofindex.hxx 61

В данном примере перезаписали значение элемента массива 'myIndex' с индексом 1. Мне кажется, хотели сделать так:

SALOME Smesh Module

V501 There are identical sub-expressions '0 <= theParamsHint.Y()' to the left and to the right of the '&&' operator. smesh_block.cpp 661

Тут явно не хватает проверки .Z(). Такая функция у класса есть, он даже называется "gp_XYZ".

V503 This is a nonsensical comparison: pointer < 0. driverdat_r_smds_mesh.cpp 55

Указатель не может быть меньше нуля. Даже в самых простых примерах с функцией fopen(), которые можно найти в книгах и интернете, значение функции сравнивают с NULL с помощью == или !=.

Я удивился, как мог появиться такой код. Но мой коллега Андрей Карпов подсказал, что такое часто бывает при рефакторинге кода, где когда-то использовалась функция open(). Эта функция возвращает значение -1 и сравнение <0 вполне уместно. В процессе рефакторинга или портирования программы, эту функцию заменяют на fopen(), но забывают исправить проверку.

Ещё одно такое место:

  • V503 This is a nonsensical comparison: pointer < 0. driverdat_w_smds_mesh.cpp 41

V562 It's odd to compare a bool type value with a value of 12. myType == SMESHDS_MoveNode. smeshds_command.cpp 75

Есть перечисление с именем "SMESHDS_CommandType", в нём много констант. Анализатор обнаружил некорректную проверку: переменная этого типа сравнивается с именованной константой, но что тут делает знак отрицания. Скорее всего, проверка должна быть такой:

К сожалению, такая проверка с выводом сообщения об ошибке была скопирована ещё в 20 мест, вот полный список: FreeCAD_V562.txt .

V567 Undefined behavior. The order of argument evaluation is not defined for 'splice' function. The 'outerBndPos' variable is modified while being used twice between sequence points. smesh_pattern.cpp 4260

На самом деле анализатор здесь не совсем прав. Неопределённого поведения здесь нет. Но ошибка есть, так что предупреждение выдано не зря. Стандарт C++ не накладывает ограничение, в каком порядке вычисляются фактические аргументы функции. Поэтому не известно, какие значения будут переданы в функцию.

Поясню на простом примере:

Этот код может распечатать как "5, 6", так и "6, 6. Результат зависит от компилятора и его настроек.

V663 Infinite loop is possible. The 'cin.eof()' condition is insufficient to break from the loop. Consider adding the 'cin.fail()' function call to the conditional expression. unv_utilities.hxx 63

При работе с классом 'std::istream' недостаточно вызова функции 'eof()' для завершения цикла. В случае возникновения сбоя при чтении данных, вызов функции 'eof()' будет всегда возвращать значение 'false'. Для завершения цикла в этом случае необходима дополнительная проверка значения, возвращаемого функцией 'fail()'.

V595 The 'anElem' pointer was utilized before it was verified against nullptr. Check lines: 1950, 1951. smesh_controls.cpp 1950

Указатель "anElem" разыменовывается на строчку выше, чем проверяется на валидность.

Ещё несколько аналогичных мест в этом проекте:

  • V595 The 'elem' pointer was utilized before it was verified against nullptr. Check lines: 3989, 3990. smesh_mesheditor.cpp 3989
  • V595 The 'anOldGrp' pointer was utilized before it was verified against nullptr. Check lines: 1488, 1489. smesh_mesh.cpp 1488
  • V595 The 'aFaceSubmesh' pointer was utilized before it was verified against nullptr. Check lines: 496, 501. smesh_pattern.cpp 496
Boost C++ Libraries

V567 Undefined behavior. The 'this->n_' variable is modified while being used twice between sequence points. regex_token_iterator.hpp 63

Неизвестно, какой из операндов оператора %= будет вычислен первым. Соответственно, правильно работает выражение или нет, зависит от везения.

Заключение

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

Используйте PVS-Studio для поиска ошибок в C, C++ и C# коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

FreeCAD - бесплатный САПР с возможностью 3D моделирования

FreeCAD - бесплатный САПР с возможностью 3D моделирования

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

В основном это касается 2D проектирования. FreeCAD же, в отличие от большинства свободных САПР, был изначально ориентирован авторами на создание 3D структур. И не просто статичных 3D объектов, а с возможностью гибко моделировать движения.



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

FreeCAD - функциональность программы и начало работы

Функционал FreeCAD-а впечатляет: с помощью него возможно создавать как небольшие детали, так и сложные многообъектные структуры - архитектурные комплексы, модели механизмов и т.д.

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

FreeCAD - это кросс-платформенная программа. Сейчас существуют версии приложения практически для всех популярных операционных систем.

Несмотря на то, что интерфейс FreeCAD прост и интуитивно понятен, пользователи, знакомые с одним из популярных САПР - NanoCAD. BricksCAD и другими, вначале испытывают некоторую растерянность.

Почему же так сложно сделать первые шаги в освоении нового пакета? Связано это с тем, что логика рабочего пространства здесь ближе, скорее, к принятой в 3D редакторе Blender .

Доступные в программе инструменты становятся активными лишь при активировании соответствующего режима, в отличие, к примеру, от того же AutoCAD, где черчение примитивов доступно по умолчанию.

Хоть в этом отношении FreeCAD устроен немного иначе, тем не менее, трудностей пользователю это не создаст, а переучивание займет не более 5 минут.

Так, на предыдущем рисунке можем видеть рабочее поле программы. Но функциональные инструменты в видимом поле отсутствуют.

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

Выбираем любой режим, кроме стоящего по умолчанию (none). После этого окно программы примет вид:



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

В качестве основного формата для сохранения документов FreeCAD использует свой собственный стандарт - FCStd.

Но пусть это не смущает тех, кто в силу каких-либо причин привязан к формату DWG: FreeCAD поддерживает экспорт в DWG, DXF, SVG, PDF и множество других популярных форматов файлов.

    FreeCAD - другие особенности программы:
  • Наличие модуля рендеринга. С помощью него модели FreeCAD экспортируются в высококачественные изображения.
  • Возможность экспорта объёмных структур в чертежи на плоскости.
  • Есть модуль, имитирующий механическую обработку металла.
  • Помимо стандартных примитивов для черчения и 3D-примитивов есть возможность создавать собственные.
  • Поддержка множества растровых форматов.
  • Возможность работы с макросами – создание, выполнение и т.д.
  • Внутренние Python интерпретаторы и API. Интерпретатор может запускать как одиночные команды, так и сложные сценарии.

Несмотря на свою внушительную производительность, FreeCAD довольно скромен в плане потребления аппаратных ресурсов компьютера.

В частности, без проблем устанавливается и работает на ПК с 750 Мб ОЗУ и процессором Intel Celeron 800. Разумеется, это не касается моделирования сложных структур.

Однако, в режиме простого плоскостного черчения, особой разницы по производительности в сравнении с ПК Intel Pentium 2 Core с 3 Гб ОЗУ отмечено не было.

Сейчас проект FreeCAD активно развивается. А это значит, что в скором времени к существующим средствам программы добавятся новые возможности, позволяющие инженерам более эффективно осуществлять стоящие перед ними задачи.

Дистрибутив смехотворно мал для программы подобного класса, его размер порядка 125 Мб. Скачать FreeCAD можно без регистрации на сайте разработчика http://www.freecadweb.org. После установки можно сразу приступать к работе над своими проектами.