• Читателям
  • Авторам
  • Партнерам
  • Студентам
  • Библиотекам
  • Рекламодателям
  • Контакты
  • Язык: English version
490
Как создается инженерное наукоемкое ПО мирового класса

Как создается инженерное наукоемкое ПО мирового класса

Всего несколько десятилетий назад рутинные расчеты и оформление технической документации занимали основную часть рабочего времени инженера. Все изменилось после появления систем автоматизированного проектирования (САПР). Сегодня САПР и инженерное программное обеспечение (ПО) – это важнейшая для промышленности отрасль, общий объем которой составляет более 10 млрд долл. в год. С момента своего рождения и на протяжении уже пятидесяти лет эта индустрия является интенсивным потребителем научных исследований и разработок. Предметная область, включающая в себя задачи вычислительной математики, математического моделирования, оптимизации, исследования операций и других дисциплин, постоянно требует усовершенствования известных подходов и разработки новых методов и алгоритмов. Одним из таких направлений стало геометрическое моделирование. Использование геометрических моделей позволяет решить широчайший спектр производственных задач, давая такие преимущества, как сокращение затрат на проектирование, возможность оперативно вносить изменения в конструкцию изделия, удешевление производства, сокращение сроков вывода нового продукта на рынок

В сознании большинства людей разработка программного обеспечения в первую очередь связана с веб-дизайном, интернет-поиском, документооборотом или компьютерными играми. Мы ежедневно пользуемся подобными приложениями на работе и дома, а названия корпораций Microsoft, Google, Facebook и Apple сможет написать без ошибок даже первоклассник.

Сложные трехмерные САПР-модели: а – модель сверхзвукового истребителя F-14, разработка которого велась в США с 1960-х гг.; б – модель спортивного автомобиля Jaguar E-Type, производимого с 1961 по 1974 г.; в – модель Chevrolet Corvette C7 (полупрозрачный вид, при котором удобно просматривать внутренние части автомобиля); г – модель колеса с покрышкой. Если говорить о реальной производственной модели автомобиля, то она представляет собой сборку из огромного количества деталей. Даже обыкновенное колесо является	очень сложным механизмом

Еще 50 лет назад для создания таких моделей потребовалась бы целая армия инженеров-проектировщиков. А сегодня САПР выполняет за инженера значительную часть работы, избавляет его от рутинных техниче­ских расчетов и оформления документации, оставляя больше пространства для новаторских идей. Разумеется, настоящие цифровые модели являются одним из ключевых секретов производства, доступ к которым тщательно охраняется. Тем не менее подобия таких моделей с высокой степенью детализации могут быть выполнены энтузиастами практически в домашних условиях, например, при помощи специализированных веб-сайтов, таких как 3dcontentcentral.com или GrabCAD.com

В то же время индустрия разработки ПО, которая за полувековую историю своего существования самым решающим образом повлияла на наше окружение – от дизайна электрического чайника или мебели до архитектуры домов и проектирования самолетов, по-прежнему остается малоизвестной широкой аудитории. Речь идет об инженерном ПО: автоматизированном проектировании (Computer-Aided Design, CAD, или САПР), производстве (Computer-Aided Manufacturing, CAM), средствах инженерного анализа (Computer-Aided Engineering, CAE) и управлении жизненным циклом изделия (Product Lifecycle Management, PLM), являющихся неотъемлемыми инструментами повседневной работы современного инженера.

В 1970-х гг. появляется математический аппарат и программный инструментарий: изобретены NURBS (неоднородные рациональные B-сплайны), разработаны способы цифрового представления трехмерного сплошного тела, предложены базовые алгоритмы. Одновременно выпускаются первые версии коммерческих систем, и происходит становление нового рынка программного обеспечения. К концу 1980-х гг. индустрия уже приобрела приблизительно те формы, которые мы видим сейчас: на рынке присутствуют CATIA, NX (Unigraphics), AutoCAD и Pro/Engineer

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

На пути к российскому ядру

Легендарный 88-летний М. Дассо, основатель аэрокосмической компании Dassault Aviation; Д. Кармель, один из сотрудников Dassault Aviation, и Ф. Бернар, будущий генеральный директор Dassault Systemes, за экраном компьютера обсуждают начало разработки системы CATIA Фундаментом всех современных CAD, позволяющих работать с трехмерной цифровой моделью изделия, является программная компонента, называемая ядром трехмерного геометрического моделирования. Основные функции ядра включают в себя средства топологического представления трехмерной модели сплошного тела в виде специальных структур данных (таких как B-Rep, Boundary Representation, граничное представление), операции создания тел произвольной формы (например, вытягивание двумерного контура вдоль заданной траектории или булевы операции над двумя телами) и средства диагностики модели (расчет массово-инерционных характеристик, определение столкновений и др.). Общее же количество функций ядра может достигать нескольких сотен.

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

История развития отрасли показывает, что разработка промышленного ядра геометрического моделирования – это одна из самых трудных задач при создании инженерного программного обеспечения. Сегодня на мировом рынке известны лишь несколько поставщиков промышленных геометрических ядер (в основном речь идет о двух конкурентах – ACIS и Parasolid, имеющих одни и те же научные корни в британском Кембридже), от которых коммерчески и технологически зависит огромная часть рынка САПР и смежных продуктов. Эти программные компоненты начали создаваться с середины 1980-х гг., и к настоящему моменту общая трудоемкость их разработки составила несколько сотен человеко-лет.

Проделывание отверстия цилиндрической формы в заготовке. (а – исходная заготовка, б – заготовка и созданное тело-инструмент, в – результат булевой операции вычитания «материала» инструмента из заготовки. Пример выполнен в системе T-Flex CAD

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

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

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

Исходя из необходимости решать перечисленные задачи и вместе с тем учитывая потребность развивать отечественную технологическую базу, Министерство промышленности и торговли РФ в 2011 г. инициировало трехлетний НИОКР-проект по созданию собственного ядра геометрического моделирования («Российское геометрическое ядро»). Над проектом работает комплексный коллектив ведущих российских групп разработчиков под руководством Московского государственного технологического университета СТАНКИН. В область ответственности компании ЛЕДАС входит разработка ключевого модуля и алгоритмов ядра для решения задачи конструирования пересечения кривых, поверхностей и топологических структур.

Булевы операции вычитания одного тела из другого (а) и пересечение поверхностей (б), при которых необходимо попарно пересекать грани и ребра тел

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

Однако разработка и реализация современных методов, выполненная на хорошем научно-техническом уровне, является лишь самым начальным этапом создания работоспособного ПО. Первая версия реализованного алгоритма неизбежно не будет учитывать сотни специфических случаев, о которых редко упоминают в технических публикациях, но они невероятно часто встречаются в инженерной практике. К ним можно отнести разнообразные случаи частичного касания, пересечения или прилегания ребер или граней тела, проблему точностей или специальную обработку канонических поверхностей (плоскостей, цилиндров, сфер, торов). Конечно, речь идет не об обычных ошибках кодирования или так называемых багах ПО, а о том, что не существует универсального метода, пригодного для применения во всех случаях. Поэтому реализацию алгоритмов необходимо отлаживать и «полировать» на тысячах индустриальных сценариев, взятых из реального производства.

Геометрический решатель – «великий комбинатор»

Другой важной компонентой САПР является геометрический решатель ограничений. Компания ЛЕДАС с 2002 г. разрабатывала продукты LGS 2D и LGS 3D (LEDAS Geometric Solver) и успешно вывела их на международный рынок, который с начала 1990-х гг. был по сути монополизирован британской компанией D-Cubed (сейчас – подразделение Siemens PLM Software). Эти решатели были лицензированы десятками компаний-производителей САПР из России, США, Японии, Италии, Германии, Южной Кореи, Израиля, Китая и других стран.

Примеры пересечения поверхностей: а – простейший случай пересечения двух поверхностей по одной кривой; б – пересечение двух торов образует несколько кривых с так называемыми сингулярными точками; в – множество кривых пересечений, образующихся в результате пересечения тора с волновой поверхностью

Параллельно с работой над собственным продуктом специалисты ЛЕДАС в течение многих лет занимались разработкой аналогичной программной компоненты по специальному заказу Dassault Systemes. Эта компонента была встроена в продукты CATIA, и в ее составе ¬используется инженерами на сотнях тысяч рабочих мест по всему миру, в том числе в корпорациях Toyota, Honda, Airbus, Boeing и др. Чтобы проиллюстрировать, почему так важен геометрический решатель ограничений, рассмотрим несколько задач проектирования.

ЛЕДАС – одна из российских компаний, специализирующихся на создании уникальных технологических компонент для индустрии инженерного программного обеспечения. За 14 лет существования она смогла вывести на мировой рынок собственные высокотехнологические программные продукты и выполнить по заказу ведущих мировых поставщиков САПР ряд проектов по разработке математических компонент, используемых в компаниях Honda, Toyota, Bombardier и др.
Можно назвать две причины, по которым компания ЛЕДАС смогла за относительно короткое время занять заметное место на мировом рынке САПР в нише разработки высокотехнологических математических компонент. Во-первых, это общая технологическая и математическая культура сотрудников. В новосибирском Академгородке, где была основана и продолжает работать компания, существуют сильные научные школы в области программирования, вычислительной математики, кибернетики и оптимизации, связанные с именами А. П. Ершова, А. А. Ляпунова, Л. В. Канторовича, Н. Н. Яненко и др. Во-вторых, продвижению на мировой рынок способствовало многолетнее сотрудничество ЛЕДАС с французской корпорацией Dassault Systemes. Начав работать над совместным проектом по внедрению в CATIA технологии недоопределенных вычислений для решения широкого класса задач проектирования, специалисты ЛЕДАСа сумели точнее понять проблематику актуальных задач САПР.
На сегодняшний день портфолио компании состоит из десятков успешных проектов, выполненных по заказу ведущих мировых поставщиков CAD и CAM и нескольких собственных продуктов, успешно выведенных на мировой рынок. О некоторых из них – от создания и управления цифровой моделью изделия до вопросов производства ее физического экземпляра – рассказывают авторы статьи

Слово «design» в переводе на русский язык имеет как минимум два значения: графический дизайн и проектирование. При этом если дизайнер часто предпочитает рисовать исходный эскиз от руки, то инженеру требуется построение точных форм с заранее заданными соотношениями и свойствами.

Типичная задача инженера-конст­руктора – сборка трехмерной модели механизма, состоящей из деталей, точно позиционированных по отношению друг к другу. Позиционирование происходит с помощью таких геометрических ограничений, как параллельность, расстояние, угол, касание, концентричность и др. Чтобы собрать механизм, необходимо решить систему из таких ограничений. Это и является функцией специальной программной компоненты – геометрического решателя. Имея заданную систему ограничений, геометрический решатель генерирует систему нелинейных алгебраических и тригонометрических уравнений, находит допустимое решение и в качестве ответа применяет пространственные трансформации к каждой детали в сборке. В итоге детали оказываются в таком положении, при котором все принятые ограничения удовлетворены.

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

Несмотря на то что решение нелинейных систем – это хорошо известная задача вычислительной математики, практика показывает, что системы уравнений, получающиеся из геометрических ограничений в САПР, весьма специфичны. Они могут быть недоопределенными, переопределенными и разреженными. Чаще всего ¬системы -уравнений недоопределены. Каждая твердотельная трехмерная деталь имеет шесть степеней свободы: три трансляционных и три ротационных. Инженер с помощью ограничений фиксирует только часть степеней свободы механизма (чтобы в нем остались определенные кинематические сочленения), а система уравнений для его расчета оказывается недоопределенной. Из бесконечного множества возможных решений геометрический решатель должен выбрать тот, при котором положение деталей максимально приближено к начальному (эскизному).

Дверное крепление – пример механизма с одной внутренней степенью свободы. Для разрешения подобных задач необходимо уметь решать недоопределенные системы нелинейных уравнений (слева). Использование геометрического решателя LGS 3D внутри системы КОМПАС – самой продаваемой российской САПР, выпускаемой компанией АСКОН (Санкт-Петербург) (справа)

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

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

Использование геометрического решателя LGS 3D для задачи обратной кинематики. Чтобы определить, каким должно быть движение всех сочленений промышленного робота для обеспечения нужной траектории движения инструмента, необходимо решить недоопределенную систему ограничений (слева). Прямое моделирование с ограничениями на основе LGS 3D. Создание форм деталей с помощью ограничений является значительно более сложной задачей, чем сборка деталей механизмов (справа)

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

Автоматизация листового раскроя: пилите, Шура, пилите

Итак, цифровая модель изделия спроектирована, и пришло время производства физического экземпляра. Появившиеся в последнее время технологии 3D-печати (Бэкстрем, 2012]), вполне пригодные для изготовления макетов или прототипов изделий, пока еще не созрели для серийного производства деталей. Реальных альтернатив станкам с ЧПУ (с числовым программным управлением – NC, numerical control) на горизонте пока не видно.

Обработка листового материала на станке с ЧПУ. Разные типы станков могут использовать различные технологии (резка лазером или гидроабразивным способом), но математическая формулировка задачи раскроя материала будет похожей

К настоящему моменту станки с ЧПУ и CAM-системы решили две задачи производства. Во-первых, избавили оператора от необходимости пошагового управления инструментом станка. Вместо этого генерируется программа, записанная в виде так называемого G-кода – списка низкоуровневых управляющих команд, определяющих перемещение головки на определенную позицию или включение/выключение инструмента. Во-вторых, позволили инженеру работать непосредственно с цифровой моделью и чертежом в графическом представлении. Инженер указывает последовательность применяемых инструментов и траекторию их движения, после чего G-код генерируется CAM-системой автоматически.

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

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

Примером вычислительно сложной CAM-задачи, которой по заказу одного из ведущих мировых CAM-поставщиков в течение нескольких последних лет занимаются специалисты компании ЛЕДАС, является автоматизация раскроя листового материала (металла или разнообразных композитов). В этом случае необходимо решить две задачи: во-первых, автоматически и оптимально (с минимальным расходом материала) разместить детали на листах; во-вторых, определить набор требуемых инструментов, оптимальную последовательность их применения и траекторию движения.

Первая задача хорошо известна специалистам по дискретной оптимизации как задача оптимального раскроя (cutting problem), или задача упаковки (packing problem). Даже в простейшей одномерной постановке она является NP-трудной. Другими словами, невозможно получить оптимальное решение за приемлемое время. Если же говорить о реальном промышленном производстве, то оно имеет дело с существенно более сложной задачей – размещением на листе двумерных деталей произвольной формы. В этом случае для получения какого-либо квазиоптимального решения требуется привлечение широкого спектра методов вычислительной геометрии, оптимизации и исследования операций – от построения разности Минковского до алгоритмов поиска типа имитации отжига.

Вторая задача – расчет оптимальной последовательности обработки деталей – подразумевает необходимость учитывать большой набор трудноформализуемых технологических ограничений. Например, при простейшей лазерной резке необходимо специальным образом позиционировать точки включения лазера (на определенном расстоянии от контура детали), поскольку в этих точках лазер оставляет «наплывы».

Артефакты, возникающие при лазерной резке деталей. Учет различных технологических ограничений, связанных с процессом обработки материала на станке, – это наиболее трудоемкая часть разработки CAM-систем Наибольшее количество технологических ограничений требуется учитывать при генерации последовательности действий координатно-пробивных и вырубных станков (punching machine). Технология заключается в вырубании материала вокруг деталей отдельными ударами. Здесь необходимо учитывать необходимость перекрывания отпечатков соседних ударов (чтобы не появлялись заусеницы из-за неточности позиционирования), не допускать неконтролируемого выпадения металла, просчитывать возможные изгибы или провисания тяжелого листа, различные способы извлечения крупных деталей (например, с помощью индустриального робота) и десятки других требований. Также большое значение имеет количество смен инструментов и минимизация длины траектории движения.

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

Две фазы построения последовательности ударов для координатно-вырубного станка. Черным цветом отмечены «удары» станка, серым цветом – материал и финальные детали: а – одно из промежуточных состояний (выполнена «обрезка» листа, проделаны круговые отверстия разного диаметра); б – финальное состояние (проделаны отверстия прямоугольной формы под разными углами). Результатом являются две детали Не погружаясь глубоко в детали описания задач геометрического моделирования, инженерного анализа или управления данными об изделии, перечислим несколько актуальных направлений развития отрасли.

Во-первых, это поддержка современных многопроцессорных и многоядерных аппаратных платформ. Для этого необходимо разрабатывать специальные масштабируемые параллельные алгоритмы. Во-вторых, это технология запуска САПР в «облаке» (cloud computing), когда программное обеспечение доступно через веб-браузер или с помощью средств виртуализации. Особенно заманчиво здесь выглядит возможность управления «тяжелым» ресурсоемким САПР-приложением с любого смартфона. В-третьих, серьезной проблемой является трансляция трехмерной модели между разными форматами данных и САПР-платформами, поставляемыми конкурирующими производителями ПО. И, наконец, максимальная интеллектуализация и автоматизация производственных процессов, которая позволит инженеру сфокусироваться на новых идеях, а не на деталях их реализации.

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

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

Литература

Баранов Л., Козлов С., Сёмин Д., Снытников Н. Российское 3D-ядро: архитектура и приложения // http://isicad.ru/ru/articles.php?article_num=16129.

Бернар Ф. DASSAULT SYSTEMES: история успеха // http://isicad.ru/ru/articles.php?article_num=14122.

Бэкстрем М., Реннар Л.-Э., Коптюг А. В. Запчасти для скелета // Наука из первых рук. 2012. № 2 (44). С. 45—57.

Волков Ю. С., Мирошниченко В. Л., Фадеев С. И. Сплайны как инструмент геометрического моделирования (к 80-летию со дня рождения Ю. С. Завьялова) // Сиб. электрон. матем. изв. 2011 № 8. A.11-A.16.

Ершов А. Алгоритмы и программные системы для геометрических задач параметрического проектирования // Дис. канд. физ.-мат. наук. Новосибирск, 2007.

Ушаков Д. На ядре // http://isicad.ru/ru/articles.php?article_num=14210.

Ушаков Д. NURBS и САПР: 30 лет вместе // http://isicad.ru/ru/articles.php?article_num=14924.

Ушаков Д. Вариационное прямое моделирование, или как сохранить намерения проектировщика в САПР без истории построения // http://isicad.ru/ru/articles.php?article_num=12711.

Ярес Э. Русские САПРы // http://isicad.ru/ru/articles.php?article_num=1605368.

Coons S. A. An outline of the requirements for a computer-aided design system // Proceedings of the AFIPS ‘63 (Spring), May 21-23, (1963) 299-304.

David E. Weisberg. The Engineering Design Revolution // http://www.cadhistory.net/.

Понравилось? Поделись с друзьями!

Подпишись на еженедельную e-mail рассылку!

comments powered by HyperComments