Инженерное ПО

Материал из LORWiki
Перейти к навигацииПерейти к поиску

В статье Инженерное ПО собраны приложения и библиотеки, которые так или иначе могут быть применены при проектировании или расчётах инженером или студентом технической специальности для решения поставленного технического задания.

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

Если вы находите, что некоторые важные аспекты не были упомянуты или, наоборот, упомянуты неверно, внесите правки в саму статью или в комментарии к статье.

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

При подборке ПО кроме собственного опыта были использованы материалы LOR-FAQ-Scientific, [1], новости и обсуждения на L.O.R., разделы "Связанные проекты и ссылки" сайтов упомянутых ниже утилит.

Пролистать оглавление и перейти к тексту статьи


Краткое оглавление

  1. Инструменты для математических и научных расчётов
  2. Симуляторы и средства имитационного моделирования
  3. Системы автоматизированного проектирования
  4. SCADA системы
  5. Системы визуализации данных
  6. Среды разработки
  7. Проектирование баз данных и ER-модели данных

Полное оглавление

Содержание

Инструменты для математических и научных расчётов[править]

Приложения[править]

Scilab[править]

Scilab — свободный открытый кроссплатформенный пакет для выполнения расчётов для образовательных, научных и инженерных задач с собственным MATLAB-оподобным языком.

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

Также в поставку Scilab'a входит графическая среда моделирования Xcos на базе Scicos, который тоже продолжает развиваться, подробная документация с примерами, конвертор MATLAB'овских M-файлов.

Кроме официальной документации по Scilab есть достаточно много руководств и на английском, и на русском языке. Вот лишь одно из них из библиотеки ALT Linux

Octave[править]

GNU Octave — высокоуровневый интерпретируемый язык для расчётов в учёбе и науке. идентичен языку MATLAB'a (небольшие различия лишь в наборе функций). Встроенные библиотеки и компоненты позволяют проводить операции с матрицами и полиномами, численное дифференцирование и интегрирование, оптимизацию, статистические расчёты, обработку сигналов, строить 2D и 3D графики и другое. С недавних пор обзавёлся официальным графическим интерфейсом Octave GUI, исходный код доступен в бранче gui основного репозитория (подкаталог gui).

Те, кому мало встроенных пакетов, могут доустановить недостающие из Octave-Forge.

Как и Scilab, Octave имеет превосходную документацию с примерами.

FreeMat[править]

FreeMat — ещё один пакет для научных вычислений, который гоняется за славой MATLAB'a. В версии 4.0 заявлена 95% совместимость по количеству функций.

Документация доступна на официальном сайте.

Sage[править]

Sage — предоставляет основанный на Python интерфейс к почти сотне популярных программных пакетов для математических расчётов, символьных вычислений, статистического анализа, программирования, построения графиков и многого другого.

Работать с Sage можно в командной строке с использованием IPython или через интерфейс "Notebook" в браузере благодаря SageNB (The Sage Notebook server). Благодаря последнему, Sage совсем не обязательно устанавливать на свой компьютер или, например, на все компьютеры в аудитории: можно установить Sage на один высокопроизводительный компьютер в локальной сети или же можно воспользоваться одним из тестовых Sage-серверов. Список официальных публичных Sage-серверов доступен на главной странице проекта, один из публичных Sage-серверов также работает в Институте кибернетики им. Глушкова НАН Украины при поддержке НаУКМА (Национального университета "Киево-Могилянская академия").

Cantor (KDE Edu)[править]

Cantor (KDE) — часть проекта KDE Edu, фронтенд к Sage, Maxima, R или KAlgebra (на выбор). Предоставляет интерфейс в виде рабочих листов.

SMath Studio[править]

SMath Studio — символьная среда вычислений, разрабатываемая петербуржцем Андреем Ивашовым и программистом из Бреста Романом Стрильцом на Mono. Smath во многом похож на Mathcad и даже умеет полностью импортировать .xmcd файлы, если те содержат уже имплементированные функции.

Jasymca[править]

Jasymca: Programmable Java calculator — Java-апплет с функционалом неплохой системы компьютерной алгебры (CAS): арифметика, операции с матрицами, полиномами, символические вычисления, интегрирование, дифференцирование, визуализация, програмирование. Самый главный плюс, что версия 3.0 поставляется в том числе под Android, а иметь такой программируемый калькулятор на смарте очень даже неплохо.

Maxima[править]

Maxima — свободная кроссплатформенная система компьютерной алгебры (CAS), написанная на Common Lisp.

Имеет несколько графических интерфейсов, среди которых самыми ходовыми являются Xmaxima и wxMaxima. При этом с Maxima можно работать и в командной сроке, и при помощи дополнительных расширений в буфере GNU Emacs или в браузере.

Mathomatic[править]

Mathomatic — кроссплатформенная система компьютерной алгебры (CAS) с командным интерфейсом, написанная на C. Среди возможностей: решение уравнений, дифференцирование, операции с полиномами, операции с действительными и комлексными числами и другое.

Документация в комплекте.

Singular[править]

Singular — система компьютерной алгебры (CAS), специализирующаяся на операциях над полиномами, а именно их применении в коммутативной и некоммутативной алгебре, алгебраической геометрии, теории особенностей (singularity theory).

Функционал может быть расширен за счёт дополнительных библиотек и линковки с другими приложениями.

Документация на официальном сайте.

Axiom[править]

Axiom — свободная кроссплатформенная система компьютерной алгебры (CAS). Код Axiom разрабатывается в лучших традициях Literate Programming Дональда Эрвина Кнута.

OpenAxiom[править]

OpenAxiom: Scientific Computation System — живой форк Axiom.

FriCAS[править]

FriCAS — ещё один живой форк Axiom.

ARIBAS[править]

ARIBAS — малость устаревший, но рабочий кроссплатформенный интерактивный интерпретатор для арифметических операций с большими целыми числами и числами с плавающей точкой с произвольной точностью с синтаксисом, напоминающим Pascal/Modula, написанный на C. Поскольку часть кода написана на ассемблере ARIBAS работает только на 32-битных системах.

REDUCE[править]

REDUCE — написанная на диалекте Lisp'a Standard Lisp система для алгебраических расчётов. Умеет работать с полиномами, матрицами, выполнять аналитическое дифференцирование и интегрирование, факторизацию и полиномизацию и другое.

R[править]

R — это язык программирования и среда для статистических расчётов и визуализации их результатов.

PSPP[править]

GNU PSPP — программа для статистического анализа больших наборов данных. Имеет как командный, так и графический интерфейс, а также встроенные функции для обработки данных и визуализации.

gretl[править]

gretl — кроссплатформенный пакет для эконометрического анализа, написанный на C. Поддерживает несколько форматов входных файлов (XML, CSV, Excel, Gnumeric).

JMulTi[править]

JMulTi — приложение на Java для анализа временных рядов. Версия для Linux заброшена разработчиками в силу ряда причин, однако всё ещё доступна для загрузки.

Stata[править]

Stata — коммерческое ПО для статистического анализа, доступна версия для Linux.

IBM SPSS Statistics[править]

IBM SPSS Statistics — мощный коммерческий пакет от IBM для статистических расчётов. Есть триальные версии некоторых компонентов, работающие в Linux (32-bit only), например SPSS Statistics Desktop, доступные после регистрации.

Библиотеки[править]

GMP[править]

GMP — свободная открытая библиотека для расчётов с произвольной точностью над целыми числами, рациональными дробями и числами с плавающей запятой. Написана с использованием языка ассемблера и C. Считается одной из самых быстрых среди себе равных, как при вычислениях с операндами малой разрядности, так и при расчётах с большим количеством разрядов, благодаря оптимизированному коду и использованию асимптотически оптимальных алгоритмов.

Функции в GMP поделены на категории для удобства использования:

  • mpz - высокоуровневые арифметические и логические функции для операций над знаковыми целыми числами (около 140).
  • mpq - высокоуровневые арифметические функции для операций над рациональными дробями (около 35).
  • mpf - высокоуровневые арифметические функции для операций над числами с плавающей точкой (около 65) для вычислений с точностью не ниже двойной.
  • C++ классы для интерфейса к функциям категорий mpz, mpq, mpf.
  • mpn - низкоуровневые функции для операции с беззнаковыми целыми числами с менее удобным вызовом, но низкими накладными расходами. Используются функциями вышеперечисленных категорий.
  • mpfr - отдельно поддерживаемые и разрабатываемые высокоуровневые арифметические функции для операций над числами с плавающей точкой с высокоточным округлением.

GSL — GNU Scientific Library[править]

GSL - GNU Scientific Library написана на C и содержит значительное количество функций - от элементарных математических операций и операций с комплексными числами до численных методов дифференцирования, интерполяции, аппроксимации, решения дифференциальных уравнений, wavelet-преобразования и многих других.

MPFR[править]

MPFR — C-шная библиотека для расчётов с произвольной точностью над числами с плавающей точкой с высокоточным округлением.

MPFR++ и MPFI[править]

MPFR++ MPFI — C++ интерфейс к MPFR и основанная на MPFR библиотека интерфальной арифметики с произвольной точностью соответственно.

MPIR[править]

MPIR — библиотека для вычислений с произвольной точностью, форк GMP. Главные особенности: поддержка сборки при помощи Microsoft Visual Studio 2010 (32-bit and 64-bit) и полная интерфейсная совместимость с GMP.

LAPACK[править]

LAPACK — библиотека на Fortran 90 для решения различных систем линейных уравнений, поиска решений линейных систем уравнений методом наименьших квадратов, задач на собственные значения (краевые задачи), сингулярных задач. Особенность состоит в оптимизации по сравнению с EISPACK или LINPACK в операциях с памятью и при распараллеливании.

LinBox[править]

LinBox — C++ библиотека для точных высокопроизводительных алгебраических расчётов с плотными, разрежёнными и структурированными матрицами над целыми числами и конечными полями.

NTL[править]

NTL — библиотека на С++, содержащая структуры и алгоритмы для операций с знаковыми целыми числами произвольной точности, а также векторами, матрицами и полиномами над целыми числами и конечными полями.

BLAS[править]

BLAS (Basic Linear Algebra Subprograms) — библиотека для операций над векторами и матрицами на Fortran 77 (да-да). Если вы не страдаете подобным некрофильством, то есть версии BLAS от производителей аппаратных платформ. Также не стоит забывать о более современных ATLAS, Goto BLAS2, поддерживающих многопоточность.

GotoBLAS2[править]

GotoBLAS2 и GotoBLAS — вариации библиотеки BLAS от Texas Advanced Computing Center. Сейчас уже не разрабатывается, но исходный код открыт под лицензией BSD.

ATLAS[править]

Automatically Tuned Linear Algebra Software (ATLAS) предоставляет интерфейсы на C и Fortran77 к кроссплатформенной производительной реализации BLAS, а также некоторым функциям из LAPACK.

Eigen[править]

Eigen — библиотека для операций с матрицами любых размеров, содержащих целые числа, числа с плавающей запятой, комплексные числа.

ESSL[править]

ESSL — Engineering and Scientific Subroutine Library (ESSL) and Parallel ESSL от IBM это коллекция специально спроектированных функций для инженерных и научных расчётов на серверах и блейд-серверах с процессорами IBM POWER™.

IML[править]

IML — библиотека реализованных на C алгоритмов для расчёта точных решений плотных систем целочисленных линейных уравнений. IML показано использовать совместно с ATLAS/BLAS и GMP.

GLPK[править]

GLPK (GNU Linear Programming Kit) — набор библиотек на ANSI C для решения задач масштабного линейного программирования (large-scale linear programming), смешанного целочисленного программирования и других. Поддерживает язык моделирования GNU MathProg.

SciPy[править]

SciPy — одна из двух базовых для Python библиотек для научных вычислений. Содержит модули для статистических расчётов, оптимизации, численного интегрирования, решения дифференциальных уравнений, линейной алгебры, преобразования Фурье, обработки сигналов, обработки изображений и прочих функций.

NumPy[править]

NumPy — одна из двух базовых для Python библиотек для научных вычислений. Содержит функции для операций с многомерными массивами и матрицами, а также стандартные функции линейной алгебры, преобразования Фурье, генераторы случайных чисел и инструменты для интеграции C/C++ и Fortran кода.

mpmath[править]

mpmath — библиотека на Python для арифметических операций произвольной точности над числами с плавающей точкой. Местами использует асимптотически оптимальные алгоритмы, при наличии gmpy ускоряет операции за счёт использования GMP/MPIR вместо собственной реализации.

gmpy[править]

gmpy — wrapper к GMP на Python.

Pynac[править]

Pynac — аналог C++'ового GiNaC на Python для операций с символьными выражениями.

SymPy[править]

SymPy — библиотека на Python для символьной математики.

Pyrex[править]

Pyrex — фактически язык, который представляет смесь C и Python, позволяя, например, смешивать типы данных и собирать результат в C-шное расширение для Python.

RPy[править]

RPy — биндинг к R для Python

CVXOPT[править]

CVXOPT — пакет для выпуклой оптимизации на Python.

FLINT[править]

FLINT: Fast Library for Number Theory — быстрая, оптимизированная в том числе для многоядерных и многопроцессорных систем, библиотека функций на C для теории чисел.

PolyBoRi[править]

PolyBoRi — C++ библиотека с интерфейсом на Python предоставляющая высокоуровневые типы данных для работы с булевыми многочленами и одночленами и др., основываясь на CUDD: CU Decision Diagram Package и M4RI(e).

GAP[править]

GAP - Groups, Algorithms, Programming

Givaro[править]

Givaro — C++ библиотека для различных арифметических и алгебраических операций: от арифметики с произвольной точностью над целыми числами и расчётов с дробями до дейстий с векторами и матрицами. Основан на GMP.

GiNaC[править]

GiNaC — (GiNaC is Not a CAS), предназначенна для неинтерактивных операций с символьными математическими выражениями.

CLN[править]

CLN — C++ библиотека для операций с произвольной точностью над целыми, рациональными дробными, комплексными числами, числами с плавающей точкой. Оборудована сборщиком мусора, умножением Карацубы и Schönhage-Strassen.

jsMath[править]

jsMath — метод внедрения математических записей в веб-страницы. В зависимости от наличия шрифтов (лучше TeX шрифты, но можно и Unicode) выдаёт результат немного отличающегося но приемлемого качества в большинстве браузеров.

M4RI(e)[править]

M4RI(e) названа в честь "Method of the Four Russians" multiplication algorithm by Gregory Bard. Представляет из себя библиотеку для быстрой арифметики над плотными матрицами через F₂.

SWIG[править]

SWIG (Simplified Wrapper and Interface Generator) — этот программный продукт позволяет подключать написанные на C/C++ программы к ряду других языков программирования.

PARI/GP[править]

PARI/GP — C-шная библиотека и интерактивная консоль, прдоставляющая функционал системы компьютерной алгебры (CAS).

zn_poly[править]

zn_poly

PDL[править]

PDL (Perl Data Language) — основанный на Perl язык, предназначенный для операций с N-мерными массивами данных. Стремится стать заменой MATLAB или IDL, поставляется вместе со встроенными интерактивными оболочками.

Tachyon[править]

Tachyon — Multiprocessor Ray Tracing System (зачем я её сюда добавил?)

CGAL[править]

CGAL - Computational Geometry Algorithms Library — открытая библиотека, написанная на C++, реализующая множество структур данных и алгоритмов вычислительной геометрии. В библиотеке реализованы различные методы триангуляции и построения диаграмм Вороного, операции над треугольниками и многогранниками, алгоритмы генерации сеток, алгоритмы геометрической обработки (geometry processing), структуры и алгоритмы разбиения пространства и поиска, алгоритмы оптимизации, а также многие другие.

Код достаточно хорошо оптимизирован и сопровождается адекватной документацией. Библиотека распространяется под лицензией QPL (частично LGPL).

dcmtk[править]

DICOM toolkit - библиотека для чтения и записи файлов медицинской информации формата DICOM. Написана на C++. Читает большинство версий формата. Есть возможности для экспорта снимков. Достаточно большое описание тэгов. Проста при использовании совместно с библиотекой визуализации vtk.

gdcm[править]

Grassroots DICOM - библиотека для доступа к файлам медицинской информации формата DICOM. Написана на C++. Имеет непосредственное отношение к проекту itk.

Симуляторы и средства имитационного моделирования[править]

Общего назначения[править]

Xcos (Scilab)[править]

Xcos — аналог Simulink MATLAB'a в Scilab, основан на Scicos, заменил его с версии Scilab 5.2, имеет некоторые улучшения в плане эргономики, цикл разработки синхронизирован с циклом разработки Scilab.

Scicos (Scilab)[править]

Scicos — аналог Simulink MATLAB'a в Scilab.

Электроника[править]

Qucs[править]

Qucs — свободный симулятор электрических цепей, пока что на Qt3.

QucsStudio[править]

QucsStudio — свежий форк Qucs, правда пока только для Windows.

KTechlab[править]

KTechlab — довольно медленно, но верно развивающаяся по направлению к KDE4 и Qt4 программа для симуляции электрических цепей и микроконтроллеров (пока что PIC от MICROCHIP) в этих цепях (да, прямо как в Proteus).

Gnucap[править]

Gnucap (Gnu Circuit Analysis Package) [1] — современный (?) симулятор электрических цепей.

SPICE[править]

SPICE — это целый класс и не одно поколение численных симуляторов аналоговых электрических цепей.

ngspice[править]

ngspice

SPICE3F5[править]

SPICE3F5

CIDER 1B1[править]

CIDER 1B1

XSPICE[править]

XSPICE

QSapecNG[править]

QSapecNG — символьный симулятор линейных электрических цепей, преемник SAPWIN (Symbolic Analysis Program for Windows), переписанный на Boost C++ по модульному принципу с графической оболочкой на Qt. В отличие от симуляторов семейства SPICE (Simulation Program with Integrated Circuit Emphasis), использующих численные методы, производит расчёты на базе аналитических выражений, с использованием преобразования Лапласа и операционного исчисления.

Logisim[править]

Logisim — достаточно простое средство для симуляции цифровых электрических схем, написанное на Java. Годится для демонстрации при обучении основам цифровой схемотехники.

NuSMV[править]

NuSMV — приложение для символической проверки моделей, базирующееся на BDD (Binary decision diagram).

DLSim 3[править]

DLSim 3 — бесплатный для образовательных целей, требуется регистрация 1, 2.

KLogic[править]

KLogic — медленно, но верно портируемое на KDE4 приложение для симуляции цифровых цепей как и положено с функцией построения временных диаграмм.

TKGate[править]

TKGate — цифровой схемный симулятор с интерфейсом на Tcl/Tk с поддержкой скриптов, различных моделей логических уровней, настраиваемыми моделями задержек, точками останова, построением временных диаграмм и многими другими вкусностями. Ждём выхода версии 2.0.

Electric[править]

Electric — среда разработки принципиальных электрических и интегральных схем и их симуляции. Написана на Java.

SimulAVR[править]

SimulAVR — программный симулятор для микроконтроллеров AVR от Atmel.

gpsim[править]

gpsim — программный симулятор для микроконтроллеров PIC от Microchip.

MPLAB® X Integrated Development Environment[править]

MPLAB® X Integrated Development Environment — новая кроссплатформенная среда разработки от Microchip Technology, разработчика и производителя микроконтроллеров семейства PIC® и цифровых сигнальных контроллеров dsPIC®. По окончанию beta-тестирования, наверное, заменит MPLAB IDE, которая не имеет официальной версии для Linux.

По информации с официальной страницы, MPLAB X IDE базируется на NetBeans Platform и имеет ряд выгодных преимуществ по сравнению с MPLAB IDE, такие как свобода в разработке и подключению плагинов, гибкий настраиваемый интерфейс, расширенные возможности редактора и встроенная система управления версиями.

Естественно, MPLAB X IDE имеет программный симулятор для всех микроконтроллеров семейства PIC® и цифровых сигнальных контроллеров dsPIC®.

SimCAS[править]

SimCAS — аналитический симулятор аналоговых электрических схем.

Языки описания аппаратуры (HDL)[править]

Verilator[править]

Verilator — один из быстрейших симуляторов Verilog HDL. Как указывает автор, предназначен для больших проектов, где важна быстрая симуляция, а особенно хорош для создания исполняемых моделей ЦПУ при проектировании встраиваемых систем.

Icarus Verilog[править]

Icarus Verilog — средство симулирования и синтезирования для языка Verilog HDL.

ISE Design Suite (Xilinx)[править]

ISE Design Suite — проприетарная IDE для разработки на языках HDL для ПЛИС Xilinx.

Quartus II (Altera)[править]

Quartus II — проприетарная IDE для разработки на языках HDL для ПЛИС Altera.

FreeHDL[править]

FreeHDL — часть Qucs, симулятор VHDL.

GHDL[править]

GHDL — симулятор VHDL.

zamiaCAD[править]

zamiaCAD — модульная среда разработки на языках описания аппаратуры (HDL). Поддерживается разработка на VHDL 2003, поддержку парсера и синтаксического дерева VHDL 2003 и Verilog 2005, имеется симулятор, средство построения временных диаграмм.

VeriWell[править]

VeriWell — симулятор Verilog HDL.

Физические[править]

Step (KDE Edu)[править]

Step (KDE) — часть проекта KDE Edu, умеет симулировать механику, пружины, гравитацию, кулоновские силы и молекулярную динамику жидкостей и газов.

Algodoo[править]

Algodoo (Phun) — замена симулятора Phun. Доступна демка, по словам разработчиков, в Algodoo много улучшений касательно физического движка, возможностей симулятора и визуализации.

Системы автоматизированного проектирования[править]

Toped[править]

Toped — кроссплатформенный редактор макетов интегральных схем, поддерживающий форматы GDS, OASIS и CIF.

LayoutEditor[править]

LayoutEditor — приложение-редактор проектов для производства MEMS/IC (Microelectromechanical systems/Integrated circuit - микроэлектромеханических систем/интегральных схем). Также может быть использован для разработки Multi-Chip-Modules (MCM), Chip-on-Board (COB), Low temperature co-fired ceramics (LTCC), Monolithic Microwave Integrated Circuits (MMIC), printed circuit boards (PCB), thick film technology. Имеет интегрированный SchematicEditor для разработки принципиальных электрических схем.

KLayout[править]

KLayout — просмотрщик и редактор макетов интегральных схем с поддержкой GDS и OASIS файлов с интерфейсом на Qt.

Glade (Gds, Lef And Def Editor)[править]

Glade (Gds, Lef And Def Editor) — проприетарный редактор макетов интегральных схем с поддержкой GDS2, OASIS, LEF and DEF с бесплатной версией в том числе под Linux, с графическим интерфейсом на Qt, аппаратной OpenGL акселерацией и поддержкой скриптов на Python при помощи SWIG wrapping фугкций C++.

OpenSCAD[править]

OpenSCAD - The Programmers Solid 3D CAD Modeller — неинтерактивная среда проектирования сплошных 3D деталей. Не такая живописная и красочная как Blender, больше подходит для технических задач. OpenSCAD использует Qt4, библиотеки OpenCSG и CGAL. Для создания 3D модели необходимо написать скрипт с описанием объекта и затем запустить рендеринг. Работает одним из двух способов: либо полностью описание объекта скриптом, либо DXF/STL/OFF файл двумерного объекта и соответствующая обработка этого "сечения" скриптом.

gEDA[править]

gEDA — GPL Electronic Design Automation, комбайн, объединивший несколько отдельных программ для проектирования электроники в общем цикле разработки. В gEDA входят:

  • gschem — разработка принципиальных электрических схем (schematic capture)
  • gnetlist — работа с netlist'ами.
  • gattrib — работа с номенклатурой компонентов
  • gedasymbols.org — ресурс-репозиторий для обмена разработанными компонентами
  • gerbv — просмотрщик для Gerber RS-274X, файлов Excellon drill и CSV pick-and-place.
  • PCB — редактор печатных плат

KiCad EDA Suite[править]

KiCad EDA Suite — програмный пакет для автоматизированного проектирования принципиальных электрических схем и печатных плат. В его состав входят:

  • CvPCB - входящий в состав KiCad EDA Suite редактор связей "компонент принципиальной схемы" - "корпус и геометрия выводов на печатной плате". Годное руководство по CvPCB от KiCad Russian Team.
  • Bitmap2Component - входящий в состав KiCad EDA Suite редактор изображений элементов.

EAGLE[править]

EAGLE by CadSoft — коммерческое ПО для разработки печатных плат, в том числе для Linux. EAGLE Light Edition для некоммерческих организаций с ограничениями проектирования одно/двухсторонней платы размером не более 100 x 80 мм, максимум одним листом схемы и поддержкой лишь по почте и через форум доступен бесплатно.

atlc[править]

atlc - Arbitrary Transmission Line Calculator (for transmission lines and directional couplers) — специфичная среда, предназначенная для расчёта распределённых линий с довольно оригинальным способом ввода данных. У кого читали математическую физику на электрофаке, те, думаю, оценят возможности утилиты.

QCAD[править]

QCAD — кроссплатформенное приложение для создания 2D-чертежей, имеющее как коммерческую платную версию, так и свободную открытую community-версию. Свободно снабжается большим количеством примеров, готовых чертежей деталей и запчастей (более 4500) и документацией.

FreeCAD[править]

FreeCAD — открытая среда 3D проектирования, создания чертежей и моделей, с интерфейсом на Qt и геометрическим ядром Open CASCADE и трёхмерным движком Coin 3D. Имеет модульную архитектуру, Python API, импорт/экспорт из/в STEP, IGES, OBJ, DXF, SVG, U3D, STL.

BRL-CAD[править]

BRL-CAD — многофункциональная кроссплатформенная система автоматизированного проектирования и моделирования объёмных тел методами конструктивной блочной геометрии (CSG - Constructive Solid Geometry) с более чем 20-летней историей.

LibreCAD[править]

LibreCAD — ещё одна среда для разработки 2D-чертежей.

Ayam[править]

Ayam — свободное окружение 3D моделирования для интерфейса RenderMan.

XTrackCAD[править]

XTrackCAD — есть в мире OpenSource и такое - система автоматизированного проектирования железнодорожных путей.

Archimedes[править]

Archimedes — свободная CAD, написанная на Java программистами из Бразилии. В скриншотах почему-то приведены примеры проектирования комнаты, хотя, лично проверил, умеет он не только это.

Sweet Home 3D[править]

Sweet Home 3D — свободная САПР для дизайна интерьеров на Java в 2D с 3D просмотром. В какой-то степени покрывает функционал проприетарной PRO100 для дизайна мебели и интерьеров.

OpenCASCADE[править]

OpenCASCADE — трехмерное и численное моделирование. Требует регистрацию для загрузки. Напишите отзыв.

VariCAD[править]

VariCAD — коммерческий 2D/3D CAD. Умеет экспорт STEP (3D), STL (3D), IGES (3D and 2D), DWG (2D), DXF (2D) и импорт STEP (3D), DWG (2D), DXF (2D), IGES (2D). Стоит относительно недорого. Есть 30-дневный триал.

DraftSight[править]

DraftSight by Dassault Systèmes (DS) — бесплатный 2D CAD в Beta стадии с официальной поддержкой 32-bit Ubuntu, Fedora, openSUSE и Mandriva. Требует бесплатную активацию в течение 30 дней через интернет и последующую реактивацию через 6 месяцев и затем каждый год. Открывает DWG/DXF файлы и экспортирует в PDF.

MEDUSA4 Personal[править]

MEDUSA4 Personal — бесплатный 2D/3D CAD для частного некоммерческого использования. Требует бесплатную регистрацию и активацию каждые 6 месяцев. Имеет достаточно интересную возможность получить платное разрешение для коммерческого использования конкретного чертежа.

Bricscad[править]

Bricscad от ООО Кадсофт (Волгоград) — коммерческий 2D/3D CAD с поддержкой формата DWG с версией для Linux. Доступная 30-дневная trial версия.

Siemens NX 8[править]

Siemens NX 8 — коммерческий CAD/CAE/CAM от Siemens. Имеется нативная версия для Linux. Работает с различными PDM/PLM-системами, например, с Siemens Teamcenter, которая также есть для Linux.

Autodesk® Software[править]

Autodesk® — как ни странно, но у Autodesk® есть коммерческие продукты под Linux, кроме web-based, правда немного и почти все они так или иначе связаны с 3D и рекомендуемая ОС, естественно, RHEL или на худой конец Fedora. Связана такая печальная ситуация с поддержкой Linux с тем, что Autodesk® не гнушается использовать для своих мощных продуктов .NET и при этом писать нехилые требования к оборудованию.

Перечень на июнь 2011 года (информация о поддержке Linux может изменяться от версии к версии - могут как убрать, что более вероятно, так и добавить, что менее вероятно):


SolveSpace[править]

SolveSpace — открытая параметрическая 2D/ 3D САПР с возможностью механического моделирования. Имеет собственный движок и решатель. Форматы: DXF, EPS, PDF, SVG, HPGL, STEP, STL, Wavefront OBJ. Доступна в версиях для Windows, Linux, Mac OS. Существует русифицированный форк "SolveSpace ranged constraints".

SCADA системы[править]

Тут прямо скажем и выбор невелик, и названия какие-то однообразные. Как заметил автор первого проекта, Роман Савоченко в одном из интервью: "Тёзки". :)

OpenSCADA[править]

OpenSCADA — разработка Романа Савоченко из Днепродзержинска представляет собой уже вполне надёжную SCADA систему с модульной организацией и графическим интерфейсом, разрабатываемым с использованием Qt. К LTS версии 0.7.0 реализована поддержка протоколов OPC_UA, ModBUS, SNMP, DCON, собственного протокола OpenSCADA на физических последовательных интерфейсах (RS232, RS485, Modem ...) и Ethernet, а также баз данных и ряда конкретного оборудования.

FIXME: Приглашаем Романа Савоченко собственноручно исправить или дополнить вышенаписанное

openSCADA[править]

openSCADA — эта SCADA система разрабатывается на Java с тестовым клиентом на GTK разработчиками из Германии во главе с Йенсом Райменом (Jens Reimann) и Юргеном Розе (Jürgen Rose). Проект состоит из двух частей: Atlantis, содержащий имплементацию openSCADA интерфейсов на Java к таким внешним системам как Siemens S7 PLC, OPC, SNMP, реляционные базы данных и т. п., и Utgard - 100% pure JAVA OPC Client API с поддержкой интерфейса OPC DA 2.0 для соединения с OPC сервером.

Системы визуализации данных[править]

Построение 2D/3D графиков/диаграмм[править]

SerialChart[править]

SerialChart — простое средство сбора данных и построения графиков в реальном времени с интерфейса RS232. Хорошо подходит для тех, кому требуется просто строить в реальном времени график, принимаемый с АЦП. Поддерживает входные данные только в формате CSV.

gnuplot[править]

gnuplot — кроссплатформенная консольная утилита для построения 2D и 3D графиков.

Not so Frequently Asked Questions по gnuplot - [2].

Графические фронтенды к gnuplot[править]

Qgfe (Qt3) - очень старый, но рабочий проект Дэвида Иши (David Ishee), подойдёт для начального ознакомления с функционалом gnuplot.

UniGNUPlot (Tcl/Tk) - проект также заброшен, но само приложение всё ещё рабочее.

Интерфейсы и биндинги[править]

Gnuplot.py — интерфейс к gnuplot для Python.

JavaPlot — интерфейс к gnuplot для Java.

Информация по интерфейсам к gnuplot на ANSI C, C++, Perl, Fortran доступна собственно на сайте gnuplot и на сайте Николаса Девиларада (Nicolas Devillard), разработчика интерфейса к gnuplot на ANSI C.

FIXME: Собрать ответы на вопросы по gnuplot в отдельную статью gnuplot

QtiPlot[править]

QtiPlot (Qt4) — кроссплатформенное приложение базирующееся на Qt4 и библиотеках Qwt (класс QwtPlot) и QwtPlot3D для построения 2D и 3D графиков с функциями аппроксимации, анализа построенных графиков, интегрирования LaTeX, экспорта в различные графические форматы. По функционалу близок к Origin. В платной версии доступна поддержка скриптов на Python, что позволяет использовать QtiPlot в связке с SciPy, NumPy, SymPy и т. д.

Примечание: поскольку исходники открыты на условиях GNU GPL, никто не мешает сделать полнофункциональную сборку бесплатно.

SciDAVis[править]

SciDAVis — форк QtiPlot, базирующееся на Qt4 приложение для построения 2D и 3D графиков, круговых и столбчатых диаграмм. Данные для построений могут быть введены как интерактивно, так и импортированы из ASCII файлов или вычислены при помощи стандартных функций или функций Python. Как и многие приложения этого класса, позволяет экспортировать результаты в различные форматы, от растровых и векторных графических до EPS и PDF. Проект сотрудничает с LabPlot, работая над созданием общего бэкенда, оставаясь при этом независимым от библиотек KDE.

LabPlot[править]

LabPlot (KDE) — приложение для анализа и визуализации данных для KDE с большим перечнем возможностей, среди которых построение 2D, 3D графиков, поверхностей, экспорт и импорт как результатов построений, так и данных и многое другое. По функционалу напоминает проприетарный пакет Origin и умеет импортировать файлы его проектов.

Veusz[править]

Veusz — основанный на Qt4 пакет для визуализации. Написан на Python с использованием PyQt4 для построений и графического интерфейса пользователя, и NumPy для манипуляций с числовыми данными. Veusz разработан для получения Postscript/PDF/SVG файлов качества, приемлемого для сопровождения публикаций графическим материалом.

Kst[править]

Kst — ПО для визуализации данных в KDE.

ROOT[править]

ROOT — разрабатываемое CERN на C++ приложение и набор библиотек для визуализации данных. Содержит один из самых полных наборов функций и методов, которые могут понадобиться для построения результатов научных экспериментов, расчётов и анализа данных, несмотря на свою узкую специализацию для задач физики.

GSEGrafix[править]

GSEGrafix (GNOME) - приложение для построения 2D и 3D графиков в GNOME. Графики строятся с использованием сглаживания при помощи виджета GNOME Canvas. Приложение может считывать данные для построения из ASCII файлов и вызываться из внешних программ и скриптов Octave.

RLPlot[править]

RLPlot — приложение для построения графиков, диаграмм, гистрограмм и др. на основе табличных данных. Имеет функцию экспорта в несколько растровых графических форматов, векторный SVG и в EPS.

Asymptote[править]

Asymptote — is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. Labels and equations are typeset with LaTeX, for high-quality PostScript output.

GLE[править]

GLE (Graphics Layout Engine) — скриптовый язык обработки графических данных, разработанный для создания изображений полиграфического качества (например, диаграммы, графики).

OpenDX[править]

OpenDX — открытая свободная версия IBM Visualization Data Explorer для 3D визуализации. После выхода версии 3.1.4B IBM открыл исходники VDE и пригласил к разработке сообщество. Графический интерфейс основан на OSF/Motif и X Window System.

CLUCalc[править]

CLUCalc 4.3.3 - программа для трехмерной визуализации и научных расчетов. Разрешено свободное использование в некоммерческих целях.

MayaVi и Mayavi2[править]

MayaVi Mayavi2 — две генерации средства 3D визуализации на Python.

VisIt[править]

VisIt — инструмент для визуализации данных, специализация на обработке больших объёмов данных, в том числе скалярных и векторных полей, с использованием распараллеливания вычислений, а также возможность реализации особенных алгоритмов обработки и работы с нестандартными моделями данных. VisIt имеет мощный графический пользовательский интерфейс, также имеются интерфейсы на C++, Python и Java. Для сборки нужны библиотеки VTK 5.0.0i, HDF4 4.2.5, Xdmf 2.1.1 версий не ниже, чем указаны.

ParaView[править]

ParaView — кроссплатформенное приложение для анализа и визуализации данных с упором на обработку экстремально больших объёмов данных в системах с распределённой памятью. Тем не менее никто не запрещает использовать его для небольших наборов данных.

VTK, VTKEdge, ITK[править]

VTK, VTKEdge, ITK — продукты компании Kitware для визуализации, обработки изображений, 3D графики. Базовым является VTK, предоставляющий C++ классы и интерфейсы на Tcl/Tk, Java и Python. VTKEdge и ITK базируются на VTK и расширяют функционал.

Grace[править]

Grace — визуальный инструмент для двухмерных построений для X Window System и Motif.

GD[править]

GD 1- GD написан на C, однако биндинги доступны для Perl, PHP, Python и др.

KmPlot (KDE Edu)[править]

KmPlot (KDE) — часть проекта KDE Edu, позволяет строить графики функций, заданных аналитически или параметрически, в прямоугольной или полярной системах координат на плоскости. Умеет строить производные 1-го и 2-го порядков и интеграл от заданных функций. Есть функция экспорта в один из растровых графических форматов (BMP and PNG), в векторный SVG и в формате XML.

KAlgebra (KDE Edu)[править]

KAlgebra (KDE) — часть проекта KDE Edu, позволяет строить 2D и 3D графики, заданные аналитически. Поддерживает язык разметки MathML. Позволяет экспортировать графики в SVG и PNG форматах.

Геометрические построения[править]

Kig (KDE Edu)[править]

Kig (KDE) — часть проекта KDE Edu, позволяет выполнять геометрически построения на плоскости. Является заменой заброшенного проекта KGeo. Позволяет экспортировать построения в несколько растровых графических форматов (BMP, JPEG, PNG), векторный SVG, формат XFig, XML и даже LaTeX.

KSEG[править]

KSEG (Qt3) - позволяет выполнять геометрические построения на плоскости. Проект заброшен, хотя при этом доступен во многих дистрибутивах и вполне работоспособен. Имеет встроенный калькулятор с элементарными функциями. Может экспортировать построения в один из нескольких растровых графических форматов и векторный SVG.

Dr. Geo[править]

Dr. Geo (1) — удобное кроссплатформенное приложение для выполнения геометрических построений на плоскости, написанное на Pharo Smalltalk.

Графы, блок-схемы, UML[править]

Graphviz[править]

Graphviz — удобное средство для построения графов. Описание графа выполняется на языке DOT. Есть как консольное приложение, так и простой графический интерфейс.

ArgoUML[править]

ArgoUML — среда UML моделирования с поддержкой стандарта UML 1.4 написанное на Java.

Dia[править]

Dia 1 (GTK+) - редактор блок-схем и диаграмм. Позиционируется как свободный аналог Visio от Microsoft. Умеет экспортировать в большое количество графических форматов, XML, поддерживает язык UML.

Umbrello[править]

Umbrello — Umbrello UML Modeller is a Unified Modelling Language diagram programme for KDE. Версия 2.* в KDE4.

ORA[править]

ORA — dynamic meta-network assessment and analysis tool developed by CASOS at Carnegie Mellon. It contains hundreds of social network, dynamic network metrics, trail metrics, procedures for grouping nodes, identifying local patterns, comparing and contrasting networks, groups, and individuals from a dynamic meta-network perspective.

Rocs (KDE Edu)[править]

Rocs (KDE) — часть проекта KDE Edu, среда разработки графов с поддержкой Qt Script.

Kivio[править]

Kivio — часть проекта KOffice. Ещё не доведён до стадии релиза, потому не поставляется в стабильных архивах исходного кода. Получить код можно, склонировав master-branch git-репозитория KOffice или из установив из репозитория вашего дистрибутива.

OpenOffice.org Draw[править]

OpenOffice.org Draw — упомянут здесь исключительно для полноты картины.

LibreOffice Draw[править]

LibreOffice Draw — упомянут здесь исключительно для полноты картины.

yEd[править]

yEd — редактор блок-схем с поддержкой UML на Java от компании yWorks.

UMLet[править]

UMLet - UML Tool for Fast UML Diagrams — ещё один редактор UML диаграмм на Java с простым интерфейсом и возможностью экспорта в JPEG, SVG, EPS, PDF. Доступен как плагин к Eclipse, так и отдельным приложением.

Violet[править]

Violet — ещё один UML редактор на Java.

NetworkX[править]

NetworkX — пакет к Python для создания, манипуляций и изучения структуры, динамики и функций комплексных сетей. (Взято на wiki.python.org)

Dunnart[править]

Dunnart Constraint-Based Diagram Editor — весьма скромно названный редактор диаграмм, пока с закрытым кодом, но с версией под Linux, посоветованный уважаемым AP в этой теме.

Gaphas[править]

Gaphas — написанный на Python виджет для построения диаграмм для GTK+.

Adaptagrams[править]

Adaptagrams — библиотека для применения в приложениях, связанных с адаптивным построением диаграмм. Среди возможностей: инструменты для рисования, автоматизированное создание структуры/макета документа/диаграммы, отрисовка графов и макетов диаграмм и др. Кстати, именно она используется в Dunnart, Inkscape, Graphviz, Arcadia, Gaphas.

Gliffy[править]

Gliffy — редактор диаграмм он-лайн.

Диаграммы состояний конечных автоматов (FSM - Finite-state machine)[править]

Qfsm[править]

Qfsm (Qt)- графический редактор диаграмм состояний конечных автоматов с интерактивной симуляцией, генерацией VHDL кода, экспортом в растровые и векторные графические форматы, EPS, LaTeX, HTML, обычный текст.

Просмотр временных диаграмм[править]

TimingAnalyzer[править]

TimingAnalyzer — редактор и просмотрщик временных диаграмм, написанный на Java, выглядит очень красиво, олдскульно я бы сказал. А также может принимать скрипты на Python для построения временных диаграмм, считывать VCD файлы и экспортировать в SVG, совместим с Visio.

GTKWave[править]

GTKWave — основанный на GTK+ просмотрщик временных диаграмм, умеет читать LXT, LXT2, VZT, FST, GHW файлы, а также стандартные Verilog VCD/EVCD.

Dinotrace[править]

Dinotrace — просмотрщик временных диаграмм для X11 от автора Verilator. Умеет читать Verilog Value Change Dumps, ASCII и другие форматы. Есть функции установки курсора, подсветки сигнала, поиска, печати и др. Имеется интерфейс к Emacs, позволяющий комментировать исходный код и файлы журналов значениями сигналов.

Gwave[править]

Gwave — утилита для визуализации таких данных, как выходные данные SPICE симуляторов. Gwave умеет читать "raw" файлы от spice2G6, spice3F5 и ngspice, табулированные ASCII файлы как от GnuCAP. Также поддерживает ряд бинарных и ASCII файлов коммерческих SPICE симуляторов (hspice, tspice, nanosim).

Библиотеки[править]

matplotlib[править]

matplotlib — библиотека языка Python для построения разнообразных 2D графиков. Может использоваться как в Python-скриптах, так и в интерактивной среде iPython. Может быть расширена за счёт ряда тулкитов, в том числе mplot3d для 3D и Natgrid для разреженных сеток.

PLplot[править]

PLplot — кроссплатформенная библиотека для построения различных типов научных графиков, как 2D, так и 3D. Хотя сама библиотека написана на С, она имеет множество биндингов: Ada, C/C++/D, Fortran 77/90, Java, Lisp (cl-plplot), Lua, OCaml, Octave, Perl, Python, Tcl/Tk. Имеет Cairo, Gtk+, Qt, Tcl/Tk, wxWidgets, X интерфейсы. Может выполнять экспорт в растровые и векторные графические форматы: CGM, GIF, JPEG, LaTeX, PBM, PDF, PNG, PostScript, SVG, Xfig.

Лицензия: LGPL.

MathGL[править]

MathGL — библиотека для построения более 55 видов 2D и 3D графиков, разрабатываемая Алексеем Абалакиным aka abalakin. Имеет Qt, FLTK, OpenGL интерфейсы, может быть вызвана из C++/C/Fortran/Python/Octave и других программ и выполнять экспорт в растровые и векторные графические форматы. Поддерживает собственный скриптовый язык MGL.

FIXME: Алексей Абалакин aka abalakin, исправьте или добавьте, пожалуйста, что считаете нужным.

Графические фронтенды[править]

UDAV — кроссплатформенный графический фронтенд к MathGL.

Qwt[править]

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

Интерфейсы и биндинги[править]

PyQwt — биндинги к Qwt для Python.

Korundum/QtRuby — проект, в том числе содержащий биндинги Qwt для Ruby.

Дополнения[править]

QwtPolar — дополнение к Qwt, библиотека классов для отображения данных в полярной системе координат.

QwtPlot3D[править]

QwtPlot3D — основанная на Qt и OpenGL C++ библиотека для построение 3D графиков, поверхностей, векторных полей.

DISLIN[править]

DISLIN — поддерживает работу с Fortran, C, Perl, Python Java. Доступна для не-коммерческого использования. Исходники поставляются только с коммерческими версиями, без права распространения.

OpenCSG[править]

OpenCSG — библиотека для рендеринга изображений методами конструктивной блочной геометрии (CSG - Constructive Solid Geometry) при помощи OpenGL.

GLEW[править]

GLEW - The OpenGL Extension Wrangler Library — кроссплатформенная библиотека на С/С++ с открытым исходным кодом для загрузки расширений OpenGL. GLEW предоставляет эффективные механизмы для определения поддерживаемых на целевой платформе расширений OpenGL.

Среды разработки[править]

KDevelop[править]

KDevelop

Lazarus[править]

Lazarus — IDE для FPC, по принципу работы схожа с Delphi IDE.

Eclipse[править]

Eclipse

NetBeans[править]

NetBeans

Geany[править]

Geany — простая IDE на GTK+. Поддерживает множество ЯП.

GNU Emacs[править]

GNU Emacs

Scintilla/SciTE[править]

Scintilla/SciTE

gVim[править]

gVim

Code::Blocks[править]

Code::Blocks

Qt Creator IDE[править]

Qt Creator IDE — мощная IDE для ЯП C++ с набором библиотек Qt, умеет хорошее автодополнение, debuger, системы контроля версий и т.д.

PyDev[править]

PyDev — Eclipse-плагин для разработки на Python, Jython и IronPython.

Komodo IDE[править]

Komodo IDE — платная IDE для Python, PHP, Ruby, JavaScript, Perl и Web Dev от ActiveState. Кто знает чем она хуже или, может быть, лучше вышеупомянутых свободных - добавьте.

Doxygen[править]

Doxygen - система документирования исходного кода C++, C, Java, Objective-C, Python, IDL (Corba и Microsoft flavors), Fortran, VHDL, PHP, C#, и до некоторой степени D. Может генерировать документацию для просмотра в HTML, в виде справочного описания в LaTeX. Также возможен вывод в форматы: RTF (MS Word), PostScript, hyperlinked PDF, compressed HTML и в страницы помощи Unix man. Документация формируется непосредственно из исходников, что делает более легким сохранение соответствия документации с исходными текстами.

Проектирование баз данных и ER-модели данных[править]

Open System Architect (OSA)[править]

Open System Architect (OSA) by CodeByDesign — свободное открытое ПО для разработки и верификации ERD с встроенным SQL редактором и поддержкой UML в стадии разработки.

DBDesigner[править]

DBDesigner — среда для проектирования структуры баз данных. Распространяется в бинарных пакетах.

DB Designer Fork[править]

DB Designer Fork — как ни странно, но это свободный форк вышеупомянутого DBDesigner от fabFORCE, причём вполне живучий, если судить по дате последнего выпуска и коммита. Поддерживает SQL скрипты БД Oracle, SQL Server, MySQL, FireBird, SQLite и PostgreSQL.

Visual Paradigm[править]

Visual Paradigm for UML — платный инструмент для разработки ERD с использованием UML. Доступны Enterprise Trial'ы и бесплатные Community Edition версии для некоммерческого пользования.

MySQL Workbench[править]

MySQL Workbench — кроссплатформенная среда проектирования баз данных для MySQL. С версии 5.2.34 (май 2011) построена на Python 2.7, что, наверное, есть добрый знак для тех, кто ей пользуется.