FreeCAD : надежды и нововведения 0.14 версии

Пора подготовить новый доклад к проходящему в Москве Install Fest-у, а я давно не заглядывал в FreeCAD.(3 месяца)

phaser_freecad_oldassembly.png

За это время wiki и заглавная сайта FreeCAD переехали на другой хостинг http://www.freecadweb.org/ , да и мы сменили имя с src.lgg.ru на crafting.be.

Базовая Установка

Все что можно сказано в разделе CompileOnUnix . Также внизу написано как собирать ветку модуля сборки. Единственное хотел бы себе памяткой оставить работу с Unity.

Как прописать в Unity

источник

Как зарегистрировать приложение в меню Unity.

Создаете файл с расширением .desktop в папке usr/share/applications , затем записываете там что нибудь следующего содержания.

[Desktop Entry]
Version=14.1
Name=FreeCAD
Comment=FreeCAD current build
Exec=/home/user/source/free-cad-code/build/bin/FreeCAD
Terminal=false
Type=Application
Icon=/home/user/source/free-cad-code/src/Gui/Icons/freecad-icon-64.png

Создание деталей

В новой версии можно будет.

Можно делать Эскизы и Рисунки на гранях

freecad_na_granyah.png

Новые инструменты для измерения величин

freecad_new_measure.png

Оно работает удобней чем раньше и вдобавок по мимо расстояния от точки(и прочие плоскости и грани) до точки показывает проекции на оси

Новые базовые тела

freecad_more_primitive.png

Упрощенное создание твердых тел

freecad_new_solidformconstract.png

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

Надписи на русском в 3D

freecad_shapetext.png

Пока реализованы надписи в виде Shape объектов , но с поддержкой своих шрифтов.

Ждем обновления и патчинга ,визуализатора Coin3D , тогда и обычные Draft объекты смогут использовать русский язык.

Множественное копирование

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

freecad_featuregroup_linear.png

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

Вытягивание , создание толщиных объектов и пазов

freecad_thickness.png

Утилиты из Part рабочего стола ,вроде Utily to apply thickness и Utility to offset, а также уже существовавшие Sweep и Loft

Прочие плюшки

Export в luxrender и общая работа с рендером

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

Итог официальной ветки

И еще много всего в ArchModule и прочем, но релиз очень большой и инструментов стало больше, удобство работы с инструментами выросло.

Не хватает работы с резьбой.. в упрощенном виде.

Переход с PyQt на PySide

Собственно FreeCAD всегда занимал BSD подобную позицию , т.е. разрешается использование кода для создания коммерческих продуктов. И переход PyQt на PySide тоже сделан для этого.

Assembly [В отдельной ветке]

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

Установка

источник

 git clone git://git.code.sf.net/p/free-cad/code free-cad-code
 cd free-cad-code/
git branch -r
  origin/HEAD -> origin/master
  origin/dev-units
  origin/dvdjimmy/MachDist
  origin/jriegel/dev-assembly
  origin/logari81/PartDesign
  origin/logari81/PartDesignPattern
  origin/logari81/sketch-diagnostics
  origin/logari81/sketcher
  origin/master
  origin/releases/FreeCAD-0-13
  origin/sanguinariojoe-plot
  origin/sanguinariojoe-ship
  origin/snaptools
  origin/surfaces
  origin/wmayer/double-precision
  origin/wmayer/featurepython
  origin/wmayer/pcl-testing
  origin/wmayer/remote-debugger
  origin/yorik/archstyles

Меняем ветки

git checkout jriegel/dev-assembly
mkdir Build && cd Build
cmake - DCMAKE_BUILD_TYPE=Debug ../
make 
./bin/FreeCAD

Принципы

Теперь хотелось бы пояснить на каких принципах построен Assembly Module

Рассмотрим локальные и глобальные системы координат используемые в FreeCAD и перенесенные в модуль Сборки.

С начало на простом примере, попробуйте создать цилиндр и сферу. Как видно у цилиндра центр находится в центре нижнего основания именно от него отсчитывается вверх высота именно от этой точки рассчитывается положение в пространстве. Это просто и удобно, в то же время центр параллелепипеда(Box) это не его центр(как у сферы), даже не центр нижнего основания(как у цилиндра), а всего лишь один из углов. Но для объекта вроде параллелепипед точка отсчета всегда будет там. Теперь давайте сместим любой из этих объектов относительно Глобальной точки(центра) координат

  • глобального нуля ваше сборки.

После того как вы сместите тело, экспортируйте его в STEP(это важно, не копировать а именно через импорт экспорт) , а потом создайте такое же тело в другом файле и импортируйте предыдущее.

Итак что у вас есть: новое тело в системе координат нового файла, а также экспортированное тело которое располагается в смещенном состоянии. Но вот в чем загвоздка ,если вы посмотрите на координаты экспортированного тела то там будет написано 0,0,0 . И теперь вы понимаете что начало координат в экспортируемом файле стало локальным началом координат в .. новом файле.

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

AssemblyModule.png

FEM [В отдельной ветке]

Основные подвижки уже внесены в основное дерево freecad , теоретически под Windows версией FreeCAD может работать с генератором сеток NetGen ,как это попробовать по Linux не написано и вообще ветка форума молчит.

Но разработчик сказал что для полной интеграции решателей не хватает перенести только функции постпроцессора(в данном случае показ данных расчетов).

CAM [В отдельной ветке]

Здесь все плохо все обсуждают какой софт выбрать PyCAM, BlenderCAM ,так что интегрированного в FreeCAD решения пока нет и не видно

Вот можете попробовать пост процессор, он показывает работу станка по вашему G-code

http://openscam.com/wiki/BetaRelease

Таблицы и графики

ну вот интегрировали в FreeCAD работу с Matplotlib , зачем, не знаю, пока не могу представить применения, также теперь можно создавать таблицы

http://www.freecadweb.org/wiki/index.php?title=Plot_MultiAxes_tutorial

Материалы

Зачем это нужно и как работает

Вы назначаете указанной детали или форме материал, затем эти свойства используются для расчета например массы или используются CAE решателем, для расчетов прочности или теплопроводности.

Главное для работы с материалом это name , с названием , а какие конкретно свойства есть у материала, первоначально FreeCAD не интересует.

Как это потестировать

а вот никак… хотя

find .|grep "Material.py"

Сторонние

BOLT

BOLT в #FreeCAD или библиотека открытых технических спецификаций и моделей http://jreinhardt.github.io/BOLTS/index.html

FreeCAD BOLT требует python-yaml ,также прописать директорию со скриптом Preferences->Main->Macro

С Наступающим 2014!!

1 Comment

  1. Касается макросов FreeCAD 0.14
    макросы записывать только при установленном английском (выставить в настройках). выполнять после того как открыт новый документ.

    Пример — cyl — на англ. — выполняется,

    # Macro Begin: C:\\cyl.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++
    import FreeCAD
    import Part

    App.ActiveDocument.addObject(«Part::Cylinder»,»Cylinder»)
    App.ActiveDocument.ActiveObject.Label = «Cylinder»
    App.ActiveDocument.recompute()
    #Gui.SendMsgToActiveView(«ViewFit»)
    FreeCAD.getDocument(«Unnamed»).getObject(«Cylinder»).Radius = ‘1 mm’
    FreeCAD.getDocument(«Unnamed»).getObject(«Cylinder»).Radius = ’10 mm’
    #Gui.activeDocument().activeView().viewAxometric()
    # Macro End: C:\\cyl.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++

    с1 — тот же на русском — не выполняется!(из-за строки 6 App.ActiveDocument.ActiveObject.Label = «?¦???»??????N?»
    )

    # Macro Begin: C:\\с1.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++
    import FreeCAD
    import Part

    App.ActiveDocument.addObject(«Part::Cylinder»,»Cylinder»)
    App.ActiveDocument.ActiveObject.Label = «?¦???»??????N?»
    App.ActiveDocument.recompute()
    #Gui.SendMsgToActiveView(«ViewFit»)
    #Gui.activeDocument().activeView().viewAxometric()
    FreeCAD.getDocument(«Unnamed»).getObject(«Cylinder»).Radius = ‘1 mm’
    FreeCAD.getDocument(«Unnamed»).getObject(«Cylinder»).Radius = ’10 mm’
    # Macro End: C:\\с1.FCMacro +++++++++++++++++++++++++++++++++++++++++++++++++

Добавить комментарий

Your email address will not be published.

*

*

© 2017 Crafting.be

Theme by Anders NorénUp ↑