Сторонние библиотеки

From FreeCAD Documentation
This page is a translated version of the page Third Party Libraries and the translation is 100% complete.

Обзор

Это библиотеки, которые FreeCAD использует в качестве сторонних зависимостей во время компиляции. Обычно они dynamically linked libraries и имеют расширение .so в Linux/macOS и .dll в Windows и сопровождаются их заголовочными файлами .h или .hpp или аналогичными. Если необходима измененная библиотека или необходим класс-оболочка, код измененной библиотеки или оболочки должен стать частью исходного кода FreeCAD и быть скомпилирован вместе с ним.

Перед компиляцией в системе должны быть установлены зависимости; см. компиляция в Linux, компиляция в Windows и компиляция в macOS для получения большей информации.

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

Ссылки

Название библиотеки Требуемая версия Ссылка для загрузки
Python >= 3.6 http://www.python.org/
Boost >= 1.33 http://www.boost.org/
OpenCASCADE >= 7.3 http://www.opencascade.org
Qt >= 5.4 https://www.qt.io/
Shiboken2 такая же, как и в Qt https://wiki.qt.io/Qt_for_Python/Shiboken
PySide2 такая же, как и в Qt https://wiki.qt.io/Qt_for_Python/Shiboken
Coin3D >= 3.x https://github.com/coin3d/coin
SoQt (deprecated) >= 1.2 https://github.com/coin3d/soqt
Quarter >= 1.0 https://github.com/coin3d/quarter
Pivy >= 0.6.5 https://github.com/coin3d/pivy/
FreeType >= XXX XXX
PyCXX >= XXX XXX
KDL >= XXX https://orocos.org/wiki/orocos/kdl-wiki.html
Point Cloud Library >= XXX XXX
Salome SMESH >= XXX XXX
VTK >= 6.0 XXX
Ply >= 3.11 https://www.dabeaz.com/ply/
Xerces-C++ >= 3.0 https://xerces.apache.org/xerces-c/
Eigen3 >= 3.0 http://eigen.tuxfamily.org/index.php?title=Main_Page
Zipios++ >= 0.1.5 https://snapwebsites.org/project/zipios, https://github.com/Zipios/Zipios
Zlib >= 1.0 http://www.zlib.net/, https://github.com/madler/zlib
libarea >= 0.0.20140514-1 https://github.com/danielfalck/libarea

Подробности

Python

Версия: 3.3 или выше

Лицензия: Python 3.3 license

Python 2 стал устаревшим в 2019 году. Дальнейшая разработка FreeCAD будет использовать исключительно Python 3; совместимость с Python 2 проверяться не будет, поэтому старые инструментальные средства и макросы, использующие эту версию, придется обновить, иначе они могут перестать работать. Пожалуйста, разместите сообщение на FreeCAD forum если у вас возникнут проблемы с Python 3.

Python - это общедоступный универсальный язык сценариев, который широко используется в Linux и программном обеспечении с открытым исходным кодом. В FreeCAD Python используется во время компиляции, а также во время выполнения разными способами. Он используется:

  • для написания тестовых сценариев, для тестирования на различные условия, такие как утечка памяти, для обеспечения функциональности программного обеспечения после изменений, для проверок после сборки и тестов покрытия,
  • для написания макросов, а так же для записи макросов,
  • для реализации логики приложений стандартных пакетов,
  • для реализации вспомогательных инструментов, таких как менеджер дополнений,
  • для реализации целых рабочих столов, таких как Draft и Arch,
  • для динамической загрузки пакетов,
  • для реализации правил проектирования (knowledge engineering),
  • для создания необычных интернет-взаимодействий, таких как рабочие группы и PDM

В Linux Python обычно уже установлен в вашем дистрибутиве. Для Windows вы можете получить предварительно скомпилированный двоичный файл из Python.org или использовать ActiveState Python, однако получить отладочные библиотеки из последнего сложнее.

Python был выбран в качестве языка сценариев для FreeCAD по разным причинам:

  • Он более объектно-ориентирован, чем Perl и Tcl.
  • Код более понятен, чем Perl и Visual Basic.
  • Его проще внедрить в другое приложение, в отличие, скажем, от Java.

Таким образом, Python хорошо документирован, и его легко встраивать и расширять в приложение на C++. Он также хорошо протестирован и пользуется сильной поддержкой сообщества с открытым исходным кодом. Узнайте больше о Python и просмотрите официальную документацию по адресу Python.org.

Boost

Версия: 1.33 или выше

Лицензия: Boost Software License - Версия 1.0

Библиотеки Boost C++-это коллекции рецензируемых библиотек с открытым исходным кодом, которые расширяют функциональность C++. Они предназначены для широкого использования в широком спектре приложений и хорошо работают со стандартной библиотекой C++. Лицензия Boost предназначена для поддержки их использования как в проектах с открытым исходным кодом, так и в проектах с закрытым исходным кодом.

Из-за их популярности и стабильности многие библиотеки Boost были приняты для включения в стандарт C++11, и еще больше планируется включить в последующие стандарты C++.

Для обеспечения эффективности и гибкости Boost широко использует шаблоны. Boost был источником широкой работы и исследований в области общего программирования и метапрограммирования на C++. Узнайте больше о Boost, посетив Boost homepage.

Технология OpenCascade

Версия: 6.7 и выше

Лицензия: версия 6.7.0 и более поздние версии регулируются GNU Lesser General Public License (LGPL) version 2.1 with additional exception. В более ранних версиях используется Open CASCADE Technology Public License.

Технология OpenCascade (OCCT) - это полнофункциональное ядро CAD профессионального уровня. Он был разработан в 1993 году и первоначально назывался CAS.CADE компанией Matra Datavision во Франции для квантовых приложений Strim (Styler) и Евклида. В 1999 году он был выпущен как программное обеспечение с открытым исходным кодом, и с тех пор он называется OpenCascade.

OCCT - это большой и сложный набор библиотек C++, которые обеспечивают функциональность, необходимую для приложения CAD:

  • Полное ядро геометрии, совместимое с STEP.
  • Топологическая модель данных и необходимые функции для работы с фигурами (вырезание, плавление, выдавливание и многие другие).
  • Стандартные процессоры импорта и экспорта для таких файлов, как STEP, IGES, VRML.
  • Просмотрщик 2D и 3D с поддержкой выбора.
  • Структура данных документа и проекта с поддержкой сохранения и восстановления, внешнего связывания документов, пересчета истории проектирования (параметрическое моделирование) и возможностью динамической загрузки новых типов данных в виде пакета расширений.

В разных дистрибутивах Linux существуют две основные версии OpenCascade. Один из них распространяется оригинальными разработчиками; он известен как OCCT и упакован под именами occ или occt. Другая версия - "издание сообщества", сокращенное OCE, и обычно встречается с именем oce. FreeCAD может компилироваться с любой версией, однако с 2016 года FreeCAD рекомендует компилироваться с официальными библиотеками OCCT, а не с официальными библиотеками OCE. Причина в том, что в издании сообщества отсутствуют важные исправления ошибок и функции, которые улучшают использование FreeCAD.

Чтобы узнать больше, посетите OpenCASCADE website.

Qt

Версия: 4.1 или выше

Лицензия: GPL v2.0/v3.0 или коммерческая; с версии 4.5, также LPGL v2.1.

Qt-один из самых популярных наборов инструментов графического пользовательского интерфейса (GUI), доступных в мире с открытым исходным кодом. FreeCAD использует этот инструментарий для рисования интерфейса программы. Для этого приложение Qt Designer очень полезно, так как оно позволяет разработчикам быстро рисовать диалоговые окна, экспортировать их в виде файловых ресурсов XML, а затем загружать эти интерфейсы во время выполнения.

Дополнительная информация о библиотеках Qt и их программной документации доступна по адресу Qt Documentation.

Shiboken2 и Pyside2

Shiboken-это генератор привязки Python, который Qt для Python использует для создания модуля PySide, другими словами, это система, используемая для предоставления API Qt C++ языку Python.

Оригинальные пакеты Shiboken и PySide предназначены для использования с Python 2 и Qt4; поскольку эти две версии считаются устаревшими в 2019 году, пожалуйста, используйте Shiboken2 и PySide2, которые работают с Python 3 и Qt5. Новая разработка FreeCAD выполняется с Python 3 и Qt5, поэтому совместимость с Python 2 и Qt4 не гарантируется после FreeCAD 0.18.

Подробнее о Shiboken и Pyside читайте на Qt для Python.

Coin3D

Версия: 3.0 и выше

Лицензия: 3-пунктовая BSD лицензия

Coin3D-это высокоуровневая библиотека 3D-графики с интерфейсом прикладного программирования на C++. Он использует структуры данных scenegraph для визуализации графики в реальном времени, подходящей для всех видов научных и инженерных приложений визуализации.

Coin3D построен на базе стандартной отраслевой библиотеки рендеринга в немедленном режиме OpenGL и добавляет абстракции для примитивов более высокого уровня, обеспечивает интерактивность 3D и содержит множество сложных функций оптимизации для быстрого рендеринга, которые понятны для прикладного программиста.

Coin3D совместим с API SGI Open Inventor 2.1. Этот API стал фактически стандартным графическим интерфейсом для 3D-визуализации в научном и инженерном сообществе. Он доказал свою ценность с 2000 года в качестве основного строительного блока в тысячах инженерных приложений по всему миру.

Coin3D (Open Inventor) используется в качестве 3D-средства просмотра в FreeCAD, поскольку средство просмотра OpenCascade (AIS и Graphics3D) имеет ограничения и узкие места в производительности, особенно при крупномасштабной инженерной визуализации; другие вещи, такие как текстуры или объемный рендеринг, не полностью поддерживаются средством просмотра OpenCascade.

Coin3D переносим на широкий спектр платформ: операционные системы UNIX, Linux, BSD, macOS X и Microsoft Windows. Чтобы узнать больше об этой библиотеке, посетите домашнюю страницу Coin3D.

SoQt (устарело)

Версия: 1.2.0 или выше

Лицензия: 3-пунктовая BSD лицензия

SoQt-это привязка Coin3D (Open Inventor) к инструментарию Qt GUI.

SoQt больше не используется в FreeCAD, он был заменен на Quarter, который является более поздней привязкой Qt.

Quarter

Версия: 1.0 или выше

Лицензия: 3-пунктовая BSD лицензия

Quarter-это более новая привязка Coin3D к инструментарию Qt. Его версия включена в исходный код FreeCAD, поэтому она компилируется вместе с ним.

Pivy

Версия: 0.6.3 или выше

Лицензия: 3-пунктовая BSD лицензия

Pivy - это библиотека, является оберткой для библиотеки Coin3d при использовании её в Python. Она не нужна при сборке FreeCAD или для его запуска, но она необходима в качестве runtime зависимости верстака Draft и других верстаков, которые используют его внутри, например Arch и BIM.

Если вы не собираетесь использовать эти верстаки, вам не понадобится Pivy.

Ply

Версия: 3.11 или выше

Лицензия: 3-пунктовая BSD лицензия

Ply-это синтаксический анализатор Python-Lex-Yacc. Он используется в качестве runtime зависимости верстака OpenSCAD. Если вы не используете данный верстак, вам может не понадобиться этот пакет.

Для подробной информации см. Ply homepage

Xerces-C++

Версия: 3.0 или выше

Лицензия: Apache Software License Версия 2.0

Xerces-C++ - это проверяющий синтаксический анализатор XML, написанный на переносимом подмножестве C++. Xerces-C++ позволяет легко предоставить вашему приложению возможность чтения и записи XML-данных. Общая библиотека предназначена для анализа, создания, обработки и проверки XML - документов. Xerces-C++ соответствует рекомендациям XML 1.0 и соответствующим стандартам.

Анализатор используется для сохранения и восстановления параметров в FreeCAD. Для получения дополнительной информации см. Xerces-C++ homepage.

Eigen3

Версия: 3.0 или выше

Лицензия: Начиная с версии 3.1.1, она лицензируется в соответствии с Mozilla Public License 2.0. Более ранние версии были лицензированы в соответствии с GNU Lesser General Public License 3.

Eigen-это библиотека моделей C++ для линейной алгебры: матрицы, векторы, численные решатели и связанные с ними алгоритмы.

Если вы просто хотите использовать Eigen, вы можете сразу же использовать файлы заголовков. Нет двоичной библиотеки, на которую можно было бы ссылаться, и нет настроенного файла заголовка. Eigen-это чистая библиотека шаблонов, определенная в заголовках.

Eigen используется в FreeCAD для многих векторных операций в 3D-пространстве. Чтобы узнать больше, посетите Eigen homepage.

Zipios++

Версия: 0.1.5 или выше

Лицензия: GNU Lesser General Public License 2.1

Zipios++ - это библиотека C++ для чтения и записи файлов .zip. Доступ к отдельным записям обеспечивается с помощью стандартных потоков ввода-вывода C++. Простая виртуальная файловая система, доступная только для чтения, которая монтирует обычные каталоги и .zip файлы также предоставляются. Структура и общедоступный интерфейс Zipios++ в значительной степени основаны на пакете Java java.util.zip.

Собственный формат файла FreeCAD .FCstd на самом деле является .zip файл, в котором хранятся и сжимаются другие типы данных внутри него, такие как файлы BREP и XML. Поэтому Zipios++ используется для сохранения и открытия сжатых архивов, включая файлы FreeCAD.

Копия Zipios++ включена в исходный код FreeCAD, поэтому она компилируется вместе с ним. Если вы хотите использовать внешнюю библиотеку Zipios++, предоставляемую вашей операционной системой, вы можете установить -DFREECAD_USE_EXTERNAL_ZIPIOS=ON с помощью cmake.

Zipios++ использует библиотеку Zlib для выполнения фактической распаковки файлов.

Zlib

Версия: 1.0 или выше

Лицензия: zlib лицензия

Zlib разработан как бесплатная универсальная библиотека сжатия данных без потерь для использования на любом компьютерном оборудовании и операционной системе. Он реализует алгоритм сжатия DEFLATE , обычно используемый в .zip и .gzip файлы.

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

libarea

Версия: 0.0.20140514-1 или выше

Лицензия: 3-пунктовая BSD лицензия

Libarea-это библиотека программного обеспечения для вычисления профилей и карманных операций, которые используются в программном обеспечении для автоматизированного производства (CAM). Он был создан Дэном Хиксом для его проекта HeeksCNC.

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

LibPack

LibPack - это удобный пакет с собранными вместе зависимостями сборки FreeCAD. Это необходимо только в том случае, если вы компилируете FreeCAD в Windows с Visual Studio 2015 и выше. Вы можете найти последнюю версию LibPack на releases page.

Если вы работаете под Linux, вам не нужен пакет LibPack, так как вы можете получить зависимости из репозиториев вашего дистрибутива, как это указано на странице компиляции в Linux.

FreeCAD 12.1.2

Смотрите на форуме: Новые libpacks для Windows с Qt5.12, OCC7.3 и Python 3.6 от apeltauer

Он включает, среди прочего: Boost 1.67, Coin3D 4.0.0 a, Eigen3, Open CASCADE Technology 7.3.0, Python 3.6.8, PySide2, Qt 5.12.1, Salome SMESH, Shiboken2, vtk7, Xerces-C, Zipios++, zlib 1.2.11