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

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

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

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

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

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

При подборке ПО кроме собственного опыта были использованы материалы 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, что, наверное, есть добрый знак для тех, кто ей пользуется.