Third Party Libraries/ru

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

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

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

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

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

Python- это общедоступный универсальный язык сценариев, который широко используется в Linux и программном обеспечении с открытым исходным кодом. В FreeCAD Python используется во время компиляции, а также во время выполнения по-разному. Он используется
 * для написания тестовых сценариев для тестирования на различные условия, такие как утечки памяти, для обеспечения функциональности программного обеспечения после изменений, для проверок после сборки и тестов покрытия тестов,
 * для записи macros и записи макросов,
 * для реализации логики приложений для стандартных пакетов,
 * для реализации вспомогательных инструментов, таких как Addon Manager,
 * для реализации целых рабочих столов, таких как 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 и упакован под именами или. Другая версия - "издание сообщества", сокращенное 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 и выше

"'Лицензия:"' Лицензия BSD 3 пункта

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 homepage.



SoQt (устарело)
Версия: 1.2.0 или выше

"'Лицензия:"' Лицензия BSD 3 пункта

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

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

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

"'Лицензия:"' Лицензия BSD 3 пункта

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

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

"'Лицензия:"' Лицензия BSD 3 пункта

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

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

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

"'Лицензия:"' Лицензия BSD 3 пункта

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

Для подробной информации см. 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 2.1

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

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

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

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

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

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

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

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

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

"'Лицензия:"' Лицензия BSD 3 пункта

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

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

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

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

FreeCAD 12.1.2
See the announcement in the forum: New libpacks for Windows with Qt5.12, OCC7.3 and Python 3.6 by 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