Разработчикам

Часто люди, впервые попробовавшие FreeCAD, заявляют, что у это программы очень большой потенциал, но она пока «сыровата». Так давайте приложим усилия и доведем FreeCAD до уровня, что он станет бесплатной заменой таких продуктов как AutoCAD, SolidWorks, Компас и т. п., по крайней мере для проектов среднего уровня.

В первой половине 2020 г. должна выйти в свет версия FreeCAD 0.19, в ней будут существенные изменения, в частности в модуле TechDraw (для создания технических чертежей из 3D-моделей). Выносные и размерные линии будут соответствовать ISO 129-1 (ГОСТ 2.307-2011) появится инструмент обозначения швов сварных соединений, появятся новые инструменты для создания кастомных выносок (линий), аннотаций, баллунов и т. п.
Уже сейчас FreeCAD 0.19 можно скачать из репозитория https://github.com/FreeCAD/FreeCAD/releases/ (даже нет необходимости в компиляции, и даже есть портабельная версия для Windows), и попробовать.
Наверное, будет не всё гладко работать, наверное, люди, занимающиеся разработкой технической документации, увидят какие-то недостатки. И самое правильное будет, как минимум сообщить разработчикам о проблеме и помочь в тестировании как это сделать написано на форуме, но лучше, если у Вас есть возможность, принять участи в написании кода, который исправит баги, добавит новый функционал.

Если Вы владеете навыками программирования на C++ или Python, желаете на практике вникнуть в технологию «Open Cascade Technology», «Coin3D» и прочие, то участие в разработке FreeCAD будет для вас хорошей практикой. Например, для студентов участие в разработке верстака может быть основой для курсового или даже дипломного проекта.
Также, это возможность на практике прокачать свой английский, влиться в международное комьюнити.

Есть компании, заинтересованные в адаптации САПР FreeCAD под свои нужды. Изучайте вопрос, входите в сообщество, выделяйте программистов и прочие ресурсы. В итоге вы получите уникальный программный продукт, который будет вашим преимуществом!

Актуально:  доработка верстака TechDraw под ГОСТ 2.307-2011 (ISO 129-1).

Нужно понимать, что если Вы всерьёз хотите участвовать в разработке официальной ветки FreeCAD, то Ваш код должен быть предварительно одобрен ответственными за проект разработчиками, с которыми можно познакомиться на форуме проекта FreeCAD в разделе для разработчиков Development. Для начала имеет смысл почитать обращение к желающим участвовать в написании кода проекта Read this first if you want to write code for FreeCAD.

Об архитектуре кода FreeCAD …

FreeCAD является параметрической САПР, может работать на большинстве известных операционных систем Microsoft Windows, Linux, UNIX, MacOS.

Код FreeCAD в основном написан на C++, но также в программе активно используется Python (CPython, PyCXX).
Архитектура FreeCAD строится на принципе, что любой функционал в программе, реализованный на C++ должен быть доступен через более высокоуровневый API для Python. Некоторые высокоуровневые задачи во FreeCAD пишутся исключительно на Python. При разработке модулей (верстаков) можно использовать смесь C++ и Python.

Практически весь код FreeCAD делится на две части: App (приложение) и Gui (графический пользовательский интерфейс). Это разделение прослеживается во всей файловой структуре проекта. App (приложение) содержит весь необходимый код для запуска FreeCAD из консоли (без графического интерфейса). FreeCAD может быть скомпилирован и работать как консольная программа, без необходимых для графического интерфейса библиотек. Код Gui (графического интерфейса), является надстройкой над основным кодом программы (App, приложение).

FreeCAD имеет модульную программную архитектуру. Практически весь функционал реализуется через модули.
Сам по себе FreeCAD — это просто контейнер для открытия/сохранения файла. Модули могут иметь графический пользовательский интерфейс, в таком случае модуль реализует еще и функции «Верстака» (Workbench). Но модуль может и не иметь графического пользовательского интерфейса.
Нужно отметить, что во FreeCAD есть самый главный (фундаментальный) модуль — «Part». Особенность модуля Part состоит в том, что он реализует интерфейсы OpenCasCade. Все другие модули, работающие с твердотельной геометрией, как правило взаимодействуют с OpenCasCade через API модуля Part.

Во FreeCAD библиотека OpenCasCade является основой для моделирования, а библиотека Coin3D (которая возможно со временем будет заменена на другую) лежит в основе 3D графического интерфейса.

Исходный код САПР FreeCAD поддерживается на основе git, открыт и доступен под лицензией LGPL license. Код FreeCAD может копировать, загружать, изучать, изменять и распространять любой желающий!

Переводчикам

Если Вы владеете английским или немецким языками, читаете техническую литературу на этих языках, понимаете, что технические тексты, в отличие от художественных, должны выражать мысли ясно и кратко, то Вы можете внести вклад в адаптацию FreeCAD для русскоговорящих пользователей.
FreeCAD постоянно развивающаяся программа, соответственно, постоянно требуется актуализация переводов исходных текстов программы, базы знаний (wiki), сторонних плагинов.
Вы можете поучаствовать в:

  • локализации FreeCAD — переводе интерфейса программы;
  • переводе онлайн-документации (wiki);
  • переводе сторонних модулей (верстаков);
  • переводе сайта freecadweb.org.

Перевод интерфейса (исходного кода, локализация) FreeCAD

FreeCAD локализация, русский язык

Работа с файлами локализации осуществляется на базе SAAS-платформы «Crowdin» https://crowdin.com/project/freecad, которая предоставила проекту FreeCAD бесплатную open-source лицензию, как значимому проекту.
Crowdin позволяет в удобном виде разработчикам FeeCAD загружать разные форматы файлов для перевода, а волонтерам-переводчикам предоставляется интерфейс для работы только с текстовыми строками, освобождая переводчика от необходимости вникать в формат файла, или возможности случайно его поломать.

Перевод онлайн-документации (wiki)

Онлайн-документация FreeCAD работает на основе движка MediaWiki.org и плагина для движка MediaWiki: «Расширение перевода» (Extension:Translate) https://www.mediawiki.org/wiki/Help:Extension:Translate, который расширяет возможности MediaWiki, дополняя его основными функциями, необходимыми для работы переводчиков.
Естественно, для того чтобы редактировать/переводить wiki, вам должны быть предоставлены права "редактора". Получить такое право не сложно, для этого нужно немного рассказать о себе и отправить запрос через личное сообщение на форуме, подробнее этот процесс описан здесь How to get wiki editing permissions.

Перевод сторонних модулей (верстаков)

Для FreeCAD в настоящее время разрабатываются несколько десятков сторонних (пока не входящих в сборку) модулей https://freecadweb.org/wiki/External_workbenches. Среди них есть достаточно востребованные и активно развивающиеся. Для таких модулей тоже требуется локализация. Локализация этих модулей (верстаков) так же как и для самого FreeCAD выполняется с помощью платформы Crowdin. Если Вам интересны технические детали, или Вы хотите сподвигнуть разработчика стороннего модуля к локализации, можете почитать, что представляет собой процесс локализации на странице wiki Translating an external workbench.

Перевод страниц сайта freecadweb.org

Локализации главного сайта freecadweb.org осуществляется на базе вышеописанной SAAS-платформы Crowdin https://crowdin.com/project/freecad. Файл для перевода называется "homepage.po".

Более детальная информация по локализации, редактированию/переводу wiki, модулей, багрепорте, смотрите здесь: Localisation, Help FreeCAD