FreeCAD-Doc/localwiki/Third_Party_Libraries-ru.html
2018-07-19 18:47:02 -05:00

235 lines
24 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><title>Third Party Libraries/ru</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Third Party Libraries/ru</h1></div>
<div id="mw-content-text" lang="ru" dir="ltr" class="mw-content-ltr"><hr/>
<div class="mw-parser-output"><div class="mw-translate-fuzzy">
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.D0.9E.D0.B1.D0.B7.D0.BE.D1.80"><span class="tocnumber">1</span> <span class="toctext">Обзор</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Links"><span class="tocnumber">2</span> <span class="toctext">Links</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#.D0.9F.D0.BE.D0.B4.D1.80.D0.BE.D0.B1.D0.BD.D0.B0.D1.8F_.D0.B8.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8F"><span class="tocnumber">3</span> <span class="toctext">Подробная информация</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="#Python"><span class="tocnumber">3.1</span> <span class="toctext">Python</span></a>
<ul>
<li class="toclevel-3 tocsection-5"><a href="#.D0.9E.D0.BF.D0.B8.D1.81.D0.B0.D0.BD.D0.B8.D0.B5"><span class="tocnumber">3.1.1</span> <span class="toctext">Описание</span></a></li>
<li class="toclevel-3 tocsection-6"><a href="#.D0.91.D0.BB.D0.B0.D0.B3.D0.BE.D0.B4.D0.B0.D1.80.D0.BD.D0.BE.D1.81.D1.82.D0.B8"><span class="tocnumber">3.1.2</span> <span class="toctext">Благодарности</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-7"><a href="#OpenCasCade"><span class="tocnumber">3.2</span> <span class="toctext">OpenCasCade</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#Qt"><span class="tocnumber">3.3</span> <span class="toctext">Qt</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="#Coin3D"><span class="tocnumber">3.4</span> <span class="toctext">Coin3D</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#SoQt"><span class="tocnumber">3.5</span> <span class="toctext">SoQt</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#Xerces-C.2B.2B"><span class="tocnumber">3.6</span> <span class="toctext">Xerces-C++</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="#Zlib"><span class="tocnumber">3.7</span> <span class="toctext">Zlib</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="#Boost"><span class="tocnumber">3.8</span> <span class="toctext">Boost</span></a></li>
<li class="toclevel-2 tocsection-14"><a href="#libarea"><span class="tocnumber">3.9</span> <span class="toctext">libarea</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-15"><a href="#LibPack"><span class="tocnumber">4</span> <span class="toctext">LibPack</span></a>
<ul>
<li class="toclevel-2 tocsection-16"><a href="#FreeCADLibs7.x_.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F"><span class="tocnumber">4.1</span> <span class="toctext">FreeCADLibs7.x Изменения</span></a></li>
</ul>
</li>
</ul>
</div>
<h3><span class="mw-headline" id=".D0.9E.D0.B1.D0.B7.D0.BE.D1.80">Обзор</span></h3>
<p>Эти библиотеки не изменились в проекте FreeCAD. Они используются, в основном без изменений как динамические библиотеки (*.so или *.dll). Если их необходимо их изменение или нужен класс оболочка(wrapper class), тогда код оболочки или измененный код библиотеки помещается в пакет базовой установки FreeCAD.
The used libraries are:
</p>
</div>
<div class="mw-translate-fuzzy">
<p>Рассмотрим используемый <a href="#LibPack">Набор библиотек</a> вместо загрузки и установки всего по вашему усмотрению.
</p>
</div>
<h3><span class="mw-headline" id="Links">Links</span></h3>
<div class="mw-translate-fuzzy">
<table class="wikitable" style="text-align:left">
<caption> Link table
</caption>
<tr>
<th> Имя библиотеки </th>
<th> Необходимая Версия </th>
<th> Ссылка на неё
</th></tr>
<tr>
<td> Python </td>
<td> &gt;= 2.5.x </td>
<td> <a rel="nofollow" class="external free" href="http://www.python.org/">http://www.python.org/</a>
</td></tr>
<tr>
<td> OpenCasCade </td>
<td> &gt;= 5.2 </td>
<td> <a rel="nofollow" class="external free" href="http://www.opencascade.org">http://www.opencascade.org</a>
</td></tr>
<tr>
<td> Qt </td>
<td> &gt;= 4.1.x </td>
<td> <a rel="nofollow" class="external free" href="http://www.qtsoftware.com">http://www.qtsoftware.com</a>
</td></tr>
<tr>
<td> Coin3D </td>
<td> &gt;= 2.x </td>
<td> <a rel="nofollow" class="external free" href="http://www.coin3d.org">http://www.coin3d.org</a>
</td></tr>
<tr>
<td> ODE </td>
<td> &gt;= 0.10.x </td>
<td> <a rel="nofollow" class="external free" href="http://www.ode.org">http://www.ode.org</a>
</td></tr>
<tr>
<td> SoQt </td>
<td> &gt;= 1.2 </td>
<td> <a rel="nofollow" class="external free" href="http://www.coin3d.org">http://www.coin3d.org</a>
</td></tr>
<tr>
<td> Xerces-C++ </td>
<td> &gt;= 2.7.x &lt; 3.0 </td>
<td> <a rel="nofollow" class="external free" href="http://xml.apache.org/xerces-c/">http://xml.apache.org/xerces-c/</a>
</td></tr>
<tr>
<td> GTS </td>
<td> &gt;= 0.7.x </td>
<td> <a rel="nofollow" class="external free" href="http://gts.sourceforge.net/">http://gts.sourceforge.net/</a>
</td></tr>
<tr>
<td> Zlib </td>
<td> &gt;= 1.x.x </td>
<td> <a rel="nofollow" class="external free" href="http://www.zlib.net/">http://www.zlib.net/</a>
</td></tr>
<tr>
<td> Boost </td>
<td> &gt;= 1.33.x </td>
<td> <a rel="nofollow" class="external free" href="http://www.boost.org/">http://www.boost.org/</a>
</td></tr>
<tr>
<td> Eigen3 </td>
<td> &gt;= 3.0.1 </td>
<td> <a rel="nofollow" class="external free" href="https://www.freecadweb.org/wiki/index.php?title=Main_Page">http://eigen.tuxfamily.org/index.php?title=Main_Page</a>
</td></tr></table>
</div>
<h3><span class="mw-headline" id=".D0.9F.D0.BE.D0.B4.D1.80.D0.BE.D0.B1.D0.BD.D0.B0.D1.8F_.D0.B8.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8F">Подробная информация</span></h3>
<h4><span class="mw-headline" id="Python">Python</span></h4>
<p><b>Версия:</b> 2.5 или выше
</p><p><b>Лицензия:</b> Python 2.5 license
</p><p>Вы можете использовать исходники или бинарники из <a rel="nofollow" class="external free" href="http://www.python.org/">http://www.python.org/</a> или в качестве альтернативы использовать ActiveState Python от <a rel="nofollow" class="external free" href="http://www.activestate.com/">http://www.activestate.com/</a> хотя немножко сложно получить отладочные библиотеки от ActiveState.
</p>
<div class="mw-translate-fuzzy">
<h5><span class="mw-headline" id=".D0.9E.D0.BF.D0.B8.D1.81.D0.B0.D0.BD.D0.B8.D0.B5">Описание</span></h5>
<p>Python является основным языком сценариев и используются во всем приложении.
Например:
</p>
<ul><li> Реализация сценариев для тестирования на:
<ul><li> утечки памяти</li>
<li> обеспечить предоставление функциональности после изменений</li>
<li> проверки после сборки</li>
<li> испытаний тестового покрытия</li></ul></li>
<li> Макросы и запись макросов</li>
<li> Реализация логики приложения для стандартных пакетов</li>
<li> Реализация цельных Инструментариев</li>
<li> Динамическая загрузка пакетов</li>
<li> Реализация правил проектирования (Инженерия знаний)</li>
<li> Выполнение некоторых модных Internet фишек, как групповая работа и PDM</li>
<li> И так далее ...</li></ul>
</div>
<p>Особенно используется динамическая загрузка пакетов в Python, для загрузки во время выполнения дополнительной функциональности или инструментария, необходимых для актуальных задач. Для ближайшего рассмотрения Python см: www.python.org Вы можете спросить, почему Python? Есть несколько причин: До сих пор я использовал различные языки сценариев в моей профессиональной жизни:
</p>
<ul><li> Perl</li>
<li> Tcl/Tk</li>
<li> VB</li>
<li> Java</li></ul>
<p>Python более OO(Объектно Ориентирован) чем Perl и Tcl, его код не беспорядочен как в Perl и VB. Java не является языком сценариев, в первую очередь потому что её трудно (или невозможно) встроить. Python отлично задокументирован, его просто встраивать и расширять. Он также хорошо протестирован и обладает сильным влиянием в open source сообществе.
</p>
<h5><span class="mw-headline" id=".D0.91.D0.BB.D0.B0.D0.B3.D0.BE.D0.B4.D0.B0.D1.80.D0.BD.D0.BE.D1.81.D1.82.D0.B8">Благодарности</span></h5>
<p>Благодарим Guido van Rossum и множество людей что сделали Python таким успешным!
</p>
<h4><span class="mw-headline" id="OpenCasCade">OpenCasCade</span></h4>
<p><b>Версия:</b> 5.2 и выше
</p>
<div class="mw-translate-fuzzy">
<p><b>Лицензия:</b> OCTPL
</p>
</div>
<p>OCC это полнофункциональное CAD Ядро. Первоначально, оно разрабатывалось французской компанией Matra Datavision для приложений Strim (Styler) и Euclid Quantum позже его код открыли. Это действительно огромная библиотека сделавшая создание свободного CAD приложения - возможным, в первую очередь, предоставив некоторые пакеты которые трудно или невозможно было реализовать как проект с открытым исходным кодом:
</p>
<ul><li> Полностью STEP совместимое геометрическое ядро</li>
<li> Топологические модели данных и все необходимые функции для работы с ними (отрезать, слить, вытянуть, и так далее. . . )</li>
<li> Стандартные процессоры Импорта- / Экспорта в STEP, IGES, VRML</li>
<li> 3D и 2D просмотрщики с поддержкой выбора(выделения)</li>
<li> Структуры данных документа и проекта с поддержкой сохранения и восстановления, внешне связанных документов, перечитывания истории проектирования (параметрическое моделирование) и средство для загрузки новых типов данных как динамически расширяемых пакетов</li></ul>
<p>Чтобы узнать больше о OpenCasCade посмотрите странице OpenCasCade или <a rel="nofollow" class="external free" href="http://www.opencascade.org">http://www.opencascade.org</a>.
</p>
<h4><span class="mw-headline" id="Qt">Qt</span></h4>
<p><b>Версия:</b> 4.1.x или выше
</p><p><b>Лицензия:</b> GPL v2.0/v3.0 или коммерческая (для Версии 4.5 он также LPGL v2.1)
</p><p>Я не думаю, что нужно много рассказывать о Qt. Это один из наиболее часто используемых инструментальных средств графического интерфейса в проектах с открытым исходным кодом.Для меня главным в использовании Qt является Qt Designer, и возможность загрузить целый диалоговых окон, как (XML) ресурсов и включение специализированных виджетов. В CAx приложениях взаимодействие с пользователем и диалоговые окна на сегодняшний день являются большей частью кода и хорошее проектирование диалогов очень важно для простого расширения FreeCAD новой функциональностью. Дополнительную информацию и очень качественную online документацию вы можете найти на <a rel="nofollow" class="external free" href="http://www.qtsoftware.com">http://www.qtsoftware.com</a>.
</p>
<h4><span class="mw-headline" id="Coin3D">Coin3D</span></h4>
<div class="mw-translate-fuzzy">
<p><b>Версия:</b> 2.0 и выше
</p>
</div>
<p><b>Лицензия:</b> GPL v2.0 или коммерческая
</p><p>Coin это высокоуровневая библиотека 3D графики с C++ API. Coin использует структуры данных в виде древа сцен для отображения графики в реальном времени, подходит для большинства в основном научных и инженерных приложений визуализации.
</p><p>Coin портирован на широкий спектр платформ: любая UNIX / Linux / *BSD платформа, все операционные системы Microsoft Windows, и Mac OS X.
</p><p>Coin построен на стандарте-индустрии OpenGL библиотеки в режиме немедленного рендеринга, и добавляет абстракции для высокоуровневых примитивов, обеспечивает 3D интерактивность, очень повышает удобство и производительность программиста, и содержит много сложных функций оптимизации для быстрого рендеринга, которые являются прозрачными для прикладного программиста.
</p><p>Coin основан на SGI Open Inventor API. Open Inventor, для тех кто не знаком с ним , уже давно стал стандартом де-факто графической билиотеки для 3D визуализации и програмного обеспечения для визуального моделирования в научном и инженерном сообществе. Она доказала это в теченнии 10 лет, как зрелый вклад в качестве основного строительного блока в тысячи крупномасштабных инженерных приложений по всему миру.
</p><p>Мы будем использовать OpenInventor как 3D просмотрщик в FreeCAD потому что OpenCasCade просмотрщик (AIS и Graphics3D) имеют серьёзные ограничения и узкие места в производительности, особенно когда речь заходит о крупномасштабном инженерном отображении. Всякие вещи, вроде текстур или объемного рендеринга на самом деле не поддерживаются, и так далее ....
</p><p>Так Версия 2.0 Coin использует различные модели лицензирования. Это больше не LGPL. Они используют GPL для проектов с открытым исходным кодом и коммерческую лицензию для закрытого исходного кода. Это означает, что если вы хотите продать вашу работу основанную на FreeCAD (модули расширений) вам нужно приобрести лицензию на Coin!
</p>
<h4><span class="mw-headline" id="SoQt">SoQt</span></h4>
<p><b>Версия:</b> 1.2.0 или выше
</p><p><b>Лицензия:</b> GPL v2.0 или коммерческая
</p><p>SoQt это Inventor привязки к Qt Gui Toolkit. К сожалению это больше не LGPL так что мы должны удалить её из кодовой базы FreeCAD и связать её как библиотеку. Он имеет ту же модель лицензирования, что и coin. И вы должны скомпилировать его с вашей версией Qt.
</p>
<h4><span class="mw-headline" id="Xerces-C.2B.2B">Xerces-C++</span></h4>
<p><b>Версия:</b> 2.7.0 или выше
</p><p><b>Лицензия:</b> Apache Software License Версия 2.0
</p><p>Xerces-C++ синтаксический анализатор XML написанный на портируемом подмножестве C++. Xerces-C++ позволяет вашему приложению легко читать и записывать XML данные. Динамическая библиотека предназначена для анализа, генерации, обработки и проверки XML документов.
</p><p>Xerces-C++ привержен XML 1.0 рекомендациям и многим связанным с ним стандартам (смотри Будущие возможности).
</p><p>Анализатор обеспечивает высокую производительность, модульность и масштабируемость. Исходный код, образцы и API документация предоставляются с анализатором. Приняты меры, для переносимости, чтобы сделать минимальным использованием шаблонов, нет RTTI, и минимальное использование # ifdefs.
</p><p>Анализатор используется для сохранения и восстановления параметров в FreeCAD.
</p>
<h4><span class="mw-headline" id="Zlib">Zlib</span></h4>
<p><b>Версия:</b> 1.x.x
</p><p><b>Лицензия:</b> zlib License
</p><p>zlib разработан для свободного, универсального, юридически неизрасходованного - то есть, не отнесенного к какому-либо патенту - библиотека сжатия данных без потерь для использования практически на любом оборудовании и операционной системе. zlib формат данных самопереносимый между платформами. В отличие от метода сжатия LZW используемого в Unix compress(1) и GIF формата изображений, метод сжатия используемый в настоящее время в zlib по существу , никогда не расширяет данные. (LZW может удвоить или утроить размер файла в крайних случаях.) память требуемая zlib не зависит от входных данных и может быть уменьшена, при необходимости, в таких расходах на сжатие.
</p>
<h4><span class="mw-headline" id="Boost">Boost</span></h4>
<p><b>Версия:</b> 1.33.x
</p><p><b>Лицензия:</b> Boost Software License - Версия 1.0
</p><p>Boost C++ библиотеки это коллекция рецензируемых библиотек, с открытым исходным кодом, они расширяют функциональные возможности C++. Библиотеки лицензируется на условиях Boost Software License, которая позволяет использовать Boost с проектами как с открытым так и с закрытым исходным кодом. Многие основатели Boost входят в комитет стандартизации C++ и несколько Boost библиотек приняты для включения в Technical Report 1 о C++0x.
</p><p>Библиотеки направлены на широкий круг пользователей C++ и прикладных областей. Они варьируются от универсальных библиотек вроде SmartPtr, до ОС Абстракций как FileSystem, библиотеки направленные в первую очередь на разработчиков библиотек и продвинутых C++ пользователей, таких как MPL.
</p><p>В целях обеспечения эффективности и гибкости, Boost широко использует шаблоны. Boost был источником обширной работы и исследований в обобщенном программировании и мета-программирование на С++.
</p><p>Смотри: <a rel="nofollow" class="external free" href="http://www.boost.org/">http://www.boost.org/</a> для подробностей.
</p>
<h4><span class="mw-headline" id="libarea">libarea</span></h4>
<p><b>Version:</b> N/A
</p><p><b>License:</b> New BSD (BSD 3-Clause)
</p><p>Area is a piece of software created by Dan Heeks for HeeksCNC. It is employed as a library for generation of CAM related operations in the Path Workbench.
</p>
<h3><span class="mw-headline" id="LibPack">LibPack</span></h3>
<p>LibPack это удобный пакет со всеми вашими библиотеками упакованными вместе. Он в настоящее время доступен для платформы Windows на странице <a href="Download.html" title="Download">Загрузок</a>&#160;! Если вы работаете в Linux вам не нужен LibPack, вы должны использовать репозитории пакетов вашего дистрибутива Linux..
</p>
<h4><span class="mw-headline" id="FreeCADLibs7.x_.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F">FreeCADLibs7.x Изменения</span></h4>
<ul><li> Используется QT 4.5.x и Coin 3.1.x</li>
<li> добавлена Eigen библиотека шаблонов для Robot </li>
<li> SMESH экспериментально </li></ul>
<p><br />
</p>
<div style="clear:both"></div>
</div>
</div>
</div><div class="printfooter">
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Third_Party_Libraries/ru&amp;oldid=247625">http://www.freecadweb.org/wiki/index.php?title=Third_Party_Libraries/ru&amp;oldid=247625</a>"</div>
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
</body></html>