Открытые программы для проектирования и дизайна (САПР)

Открытые программы для проектирования и дизайна в данный момент существенно отстают по функциональности от более популярных коммерческих приложений. Но они прекрасно подойдут тем, кто хочет научиться автоматизированному проектированию прежде, чем покупать программные комплексы класса Hi-End стоимостью до нескольких тысяч долларов (типичный пример — AutoCAD). В этой статье я расскажу о четырех чертенятах, которые абсолютно бесплатно помогут вам начертить великолепный чертеж.

Бóльшая часть этой статьи посвящена описанию очень мощной открытой и бесплатной системы BRL-CAD, разработанной в Военной исследовательской лаборатории США. Затем в обзорном порядке я познакомлю вас с функциями более простых, но по-своему очень интересных программ для специализированных задач.

Матерый черт BRL-CAD идет первым не только по алфавиту, он, собственно, вообще первый и поэтому дает хорошее представление о принципах работы и возможностях программ проектирования.

Черт побери! — Есть, сэр!

С конца 1950-х компьютеры использовались для расчетов, связанных с разработкой систем вооружений. Этот адский труд требовал огромного количества денег и времени — как для того, чтобы чертежи превратились в полномасштабную модель, так и для совершенствования при тестировании и проведении испытаний.

В 1979 г. Военная баллистическая лаборатория США (U.S. Army Ballistic Research Laboratory (BRL), ныне известная как U.S. Army Research Laboratory (ARL) — Военная исследовательская лаборатория) испытывала острую потребность в средствах компьютерного моделирования систем вооружения — танков, ракет, самолетов и прочей чертовщины.

Поскольку ни одна из существовавших на тот момент САПР-систем не была признана годной, программисты BRL приступили к разработке собственного пакета приложений, предназначенного для отображения, редактирования и совмещения геометрических моделей. Так был создан BRL-CAD — чертовски привлекательный пакет приложений для твердотельного моделирования (constructive solid geometry, CSG). Благодаря примерно миллиону строк C-кода BRL-CAD стал мощнейшим пакетом графического моделирования, лицензированным более в чем 2 тыс. организаций по всему миру. Он содержит большое количество инструментов, утилит и библиотек, в том числе:

  • MGED (Multiple-Device Geometry Editor) - независимый от устройства вывода интерактивный редактор геометрии;
  • rt (raytracer) - средство визуализации на основе самого правильного метода (трассировки лучей света);
  • nirt - интерактивный трассировщик лучей;
  • remrt - сетевой трассировщик для распределения сложных задач визуализации;
  • ассортимент конверторов импорта и экспорта для различных геометрических форматов, включая Euclid, ACAD, AutoCAD DXF, TANKILL, Wavefront OBJ, Pro/ENGINEER, JACK (модель человека для исследования нагрузок и проверки usability - пригодности к использованию), Viewpoint Data Lab, NASTRAN, Digital Equipment's Object File Format (OFF), Virtual Reality Mark-up Language (VRML), Stereo Lithography (STL), данные Cyberware Digitizer и FASTGEN4.

И это еще далеко не весь список... Тысяча чертей! BRL-CAD поддерживает одновременно еще два способа взаимодействия с пользователем — с помощью командной строки и графического интерфейса пользователя (GUI).

Фундаментальное свойство пакета заключается в его способности конструировать и анализировать реалистичные модели на основе сложных объектов, состоящих из относительно небольшого набора графических примитивов (primitive shapes). Для построения сложных объектов используются булевы операции: объединение, вычитание и пересечение. Еще одна сильная сторона пакета — быстрота средств визуализации, трассировщика света, который является одним из самых быстрых среди существующих. И наконец, пользователи BRL-CAD могут вырисовывать модели с дьявольской точностью, от субатомных до галактических масштабов по принципу «все детали, все время».

Я не знаю, как это могло случиться — видимо, черт попутал! — но американские военные после 20 лет использования BRL-CAD для своих нужд вдруг открыли исходный код программы. Может быть, приняли на вооружение что-то более мощное. Но факт остается фактом: система автоматизированного проектирования BRL-CAD, использовавшаяся еще Военной исследовательской лабораторией США на системах PDP-11, распространяется теперь бесплатно, с открытыми исходниками.

Сначала были открытые и бесплатные версии для SGI Irix (версия Unix от фирмы Silicon Graphics), затем для Linux и наконец в 2005 г. появилась версия для платформы Win32¹. Переписав пакет BRL-CAD с сайта http://brl-cad.sourceforge.net, я приготовился к тяжким испытаниям, но напрасно.

Рис. 1. Первые пользователи BRL-CAD проектировали в ней еще на ЭВМ серии PDP-11/70

Интерфейс программы по-военному строг и аскетичен, а потому прост и понятен. В пункте меню Help я нашел все, что нужно для изучения программы. Выбрал Help • Manual и сразу приступил к выполнению упражнений. Не сложнее, скажу я вам, чем маршировать на плацу. На рис. 1 представлен исторический снимок, где видно, что интерфейс этой программы всегда был прозрачен для пользователя.

Итак, работа в BRL-CAD выглядит следующим образом. Создадим для начала необходимый инструмент чертовой кухни — нет, не сковороду и не котелок, а нечто среднее между ними — хорошую объемистую кружку.

Делай раз. Создаем новую базу данных (так называются файлы с объектами), даем ей название (title MGED Tutorial Geometry) и выбираем единицы измерения (units in).

Делай два. Даем команду нарисовать цилиндр со скругленными углами (in outside.s rcc). Программа уточняет параметры фигуры: центр (0 0 0), вектор высоты (0 0 .35) и радиус (1.75). Потом рапортует о своих успехах: «Есть, сэр! Создано 42 вектора за 0,006435 секунды, сэр!». Создаем еще один цилиндр (in inside.s rcc 0 0 0.25 0 0 3.5 1.5). Таким же образом рисуем пересекающий его тор:

mged> in ring.s eto 0 2.5 1.75 1 0 0 
Enter X, Y, Z, of vector C: .6 0 0 
Enter radius of revolution, r: 1.45 
Enter elliptical semi-minor axis, d: 0.2 
2479 vectors in 0.087375 sec 

Делай три. Выполняем булевы операции над объектами: вычитаем один тор из другого (comb cup.c u outside.s — inside.s), «отгрызаем» пересекающий их кусок тора (comb handle.c u ring.s — outside.s) и создаем так называемый «регион» (r mug.r u cup.c u handle.c), объединяющий оба полученных комплексных объекта.

Получилась бездонная кружка. Не беда, дно можно сделать с помощью сферы, расположенной снизу и пересекающей тор:

mged> in 
Enter name of solid: ball.s 
Enter solid type:  sph 
Enter X, Y, Z of vertex:  0 0 0 
Enter radius:  3 
51 vectors in 0.117187 sec 

Простейшая модель армейской кружки готова. Поскольку шар нам больше не нужен, уберем его из поля зрения с помощью команды Z, прорисуем кружку заново (draw mug.r) и выберем правильную точку зрения (ae 35 25).

Кстати, в окне просмотра каркасной модели вы можете вертеть ее в любую сторону посредством клавиш управления курсором, а кнопки X, Y, Z заставят модель вращаться постоянно вокруг соответствующей оси по часовой стрелке или, наоборот, против — при нажатой клавише . Нажав, например, два раза на Y, вы заставите модель быстро крутиться вокруг оси Y, нажав +Y, — замедлите вращение, повторив +Y еще раз, — остановите, а следующее нажатие этого сочетания заставит модель поворачиваться в обратную сторону.

Итак, оценим результат. На мой взгляд, кружка получилась по-военному основательная и вполне пригодная для эксплуатации. Теперь выберем для нее материал:

mged> mater mug.r 
Shader = 
Shader?  ('del' to delete, CR to skip) plastic 
Color = (No color specified) 
Color R G B (0..255)? ('del' to delete,  
CR to skip) 32 128 32 
Inherit = 0:  lower nodes (towards leaves)  
override Inheritance (0|1)? (CR to skip) 0 

И наконец визуализируем. Для этого создайте буфер изображения (exec fbserv 1 /dev/sgip &), выберите наиболее интересный ракурс (рекомендую вернуться к ae 35 25) и запустите программу трассировки света (rt). Данного примера вполне достаточно для того, чтобы получить представление о принципах работы этой замечательной программы.

Тем не менее в руководстве описываются все более изощренные способы манипулирования объектами — удаление, пересечение, использование вспомогательных (невидимых) объектов, добавление дна, дополнительных торов сверху и снизу кружки для придания краям приятной округлости, etc.

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

Рис. 2. Военно-полевая кухня программы BRL-CAD предоставит в ваше распоряжение простые и чертовски качественные инструменты для приготовления трехмерных моделей

Важно понимать, что BRL-CAD реализует подход Unix. Это среда моделирования, состоящая из множества небольших модулей. Вы можете использовать любой компонент или разработать свой. Многие, например, критикуют интерфейс редактора MGED из поставки пакета. Поэтому на сегодняшний день разработано несколько альтернативных редакторов. В Windows-версию включен один из них. Это более дружественный, чем MGED, и такой же гибкий инструмент Archer (hbc/ 3).

По сравнению с MGED Archer больше ориентирован на использование мыши для просмотра и редактирования модели. С помощью специальных кнопок на основной панели инструментов вы можете создавать графические примитивы. Любые созданные объекты, в том числе и комплексные, отображаются в дереве объектов в левой части окна. Выбрав один из них, вы можете поменять его свойства на панели справа. И наконец, у правого края окна расположена панель с кнопками, позволяющими переключаться между режимами вращения, осмотра, масштабирования и центрирования всей модели или выбранного объекта.

Частица черта в нас...

Разработчик FreeCAD Юрген Райгель, работающий в корпорации DaimlerCrisler, позиционирует свою программу как первый бесплатный инструмент проектирования механики на основе библиотеки OpenCascade. Цель программы — предоставить базовый инструментарий этой библиотеки в интерактивном режиме.

Так же как и боевое подразделение хорошо вымуштрованных чертей BRL-CAD, вольнонаемный чертенок FreeCAD работает в графическом и командном режиме. Однако графический интерфейс FreeCAD пока обладает лишь базовыми функциями просмотра и редактирования, рисует 3D- и 2D-модели и позволяет просматривать дерево объектов. Программа не содержит функций моделирования и может использоваться лишь как вспомогательное средство для просмотра моделей и объектов. Попробуйте — глядишь, сгодится. Чем черт не шутит...

Рис. 3. Редактор Archer из поставки BRL-CAD for Windows предоставит еще более дружественный интерфейс для моделирования

Чертик из табакерки

Программа TinyCAD позиционируется разработчиками как простое приложение для рисования и редактирования электронных схем, которые используются в самых разных устройствах — ну, вы знаете, всякие там ящички, коробочки с электронной начинкой... Все эти хитрые табакерки удобно проектировать с помощью TinyCAD. Чертик прост и услужлив, все необходимые инструменты толкает под руку, а вы просто составляете схему из готовых символов электронных компонентов и связываете их с помощью соединительных линий или шины (токопроводящая дорожка на плате).

Недостатка в символах нет. Стандартная поставка TinyCAD для Windows предоставит в ваше распоряжение больше, чем чертову дюжину, — аж 14 библиотек с 377 элементами электронных схем. Более того, вы можете сами изготовить библиотеку, используя встроенный редактор библиотек, или просмотреть архив Yahoo группы TinyCAD (http://uk.groups.yahoo.com/group/tinycad) на предмет библиотек, разработанных другими пользователями. Там же вы можете переписать такие примеры использования программы, как схема сигнализации или компьютерного управления телескопом. Имейте в виду: чтобы воспользоваться файловыми архивами TinyCAD Yahoo Group, вам вовсе не нужно продавать душу дьяволу, достаточно получить Yahoo ID и зарегистрироваться в группе (Sign In). Только после этого вы сможете использовать все возможности Yahoo группы TinyCAD (рис. 4).

Рис. 4. TinyCAD может использоваться для разработки электронных схем любой сложности. На снимке экрана представлена часть системы компьютерного управления телескопом

Нарисовав схему, вы можете воспользоваться специальными функциями для проверки ее на корректность, добавления легенды и составления списка используемых элементов. Черт TinyCAD знает, что это такое! Готовую схему с помощью буфера обмена можно переместить из огня да в полымя — выделить и скопировать в любую другую программу (например, в Word или OpenOffice) или распечатать. В последнем случае схема может быть масштабирована до размеров листа или распечатана по частям.

Одна сатана

QCAD в отличие от TinyCAD годится для проектирования не только электронных схем, но и ландшафтного дизайна. Эта программа для автоматизированного проектирования в двух измерениях (2D). В ней вы сможете создавать точные технические чертежи, такие как планы зданий, интерьеров, механические детали, схемы (в том числе электронные) и диаграммы. QCAD работает в Windows, Mac OS X, множестве Linux- и Unix-систем.

Исходный код базовой версии этой программы распространяется по лицензии GNU GPL. Версия для Windows ограниченно годная (после 50 запусков время работы программы лимитировано десятью минутами). Стоимость же лицензии для профессиональной версии QCAD составляет всего 24 евро.

Рис. 5. QCAD — самая удобная открытая программа для простого черчения (2D)

Разработчики программы QCAD не только серьезно подошли к функциональному наполнению программы, но и сделали ее максимально удобной для неподготовленного пользователя. Программа имеет четкий, продуманный интерфейс, все нужные инструменты для черчения под рукой. Вам не нужен опыт работы в других САПР-системах для того, чтобы начать рисовать в QCAD. Вы можете просто пригласить чертенка QCAD и заставить его работать.

Пользователи нашли этот инструмент настолько удобным, что создали библиотеки элементов для строительных чертежей и даже ландшафтного дизайна своих чертовых куличек. На сайте http://www.ribbonsoft.com/qcad_library.html размещена библиотека графических элементов на все случаи жизни. Есть даже заготовки для чертежей формата A3 и A4 согласно ГОСТу. В общем, это лучшая в обзоре программа для простого двухмерного черчения, но она не подойдет тем, кому необходимо создавать трехмерные модели, для этих целей лучше воспользоваться описанным выше BRL-CAD.

* * *

Как видите, из существующих на данный момент открытых программ для проектирования и дизайна достаточно развит лишь проверенный временем и прошедший все круги военного ада пакет BRL-CAD. Остальные приложения еще весьма черненькие и чумазенькие, они ретиво бьют копытом, но хороши пока лишь для специализированных задач.

TinyCAD поможет составить и проверить дизайн электронной схемы. QCAD позволяет чертить отличные двухмерные чертежи. Со временем мы узнаем, что нам готовит молодой и дерзкий проект под названием FreeCAD, но уже сейчас видно, что в его основе лежит довольно мощная технология, и рожки у этого чертенка режутся крепкие. В общем, открытые программы для проектирования и дизайна действуют с адским энтузиазмом, но развиваются с неспешностью, как и подобает бессмертным существам.


¹Ранее была также ограниченно годная версия для DOS, но об этом так мало известно, что я в это просто не верю.


BRL-CAD

Мощнейший инструментарий для автоматизированного проектирования и дизайна от U.S. Army Research Lab.
Оценка: 5 из 5
Операционная система:
Windows 2K/XP, Mac OS X, Linux, Unix.
Системные требования: Pentium II-266, 40-Мбайт жесткий диск, 64-Мбайт ОЗУ.
Размер дистрибутива Windows: 13,9 Мбайт.
Веб-сайт: http://www.brlcad.org


FreeCAD

Относительно новый инструментарий для автоматизированного моделирования и проектирования на основе библиотеки OpenCascade.
Оценка: 3 из 5
Операционная система:
Windows 9х/Me/2K/XP, Linux, Unix.
Системные требования: Celeron-333, 76-Мбайт жесткий диск, 64-Мбайт ОЗУ.
Размер дистрибутива Windows: 22,5 Мбайт.
Веб-сайт: http://free-cad.sourceforge.net


TinyCAD

Программа для проектирования электронных схем с большим набором готовых элементов.
Оценка: 4 из 5
Операционная система:
Windows 9х/Me/2K/XP.
Системные требования: Pentium II-266, 6-Мбайт жесткий диск, 32-Мбайт RAM.
Размер дистрибутива Windows: 2,38 Мбайт.
Веб-сайт: http://tinycad.sourceforge.net


QCAD

Отличная программа для 2D-моделирования и черчения.
Оценка: 4 из 5
Операционная система:
Windows 2K/XP, Mac OS X, Linux, Unix.
Системные требования: Pentium II-333, 32-Мбайт жесткий диск, 64-Мбайт RAM.
Размер дистрибутива Windows: 11,1 Мбайт.
Веб-сайт: http://www.ribbonsoft.com/qcad.html