на каком языке написан автокад программирования

Язык программирования Lisp: функции, синтаксис, среда разработки

Более сорока лет назад разработан и внедрен в использование для выполнения целей искусственного интеллекта язык программирования LISP (ЛИСП), позднее ставший популярным среди пользователей ПО AutoCAD. Он создан для символьных вычислений. С течением времени был преобразован, чтобы соответствовать новым потребностям ИИ.

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

Это imperative language (императивный), действия которого описывают выполнение алгоритма, отличается от других, декларативных, предполагающих определение ограничений и соотношений в предметной сфере поставленной цели. По сравнению с другими подобными разработками С++ и FORTRAN, ЛИСП наделен большей функциональностью. Его популярность обусловлена большими возможностями для программирования в сочетании с мощным набором:

Это средства построения данных структур обозначения высокого уровня.

Конструкция

LISP синтаксис и семантика, разработанные программистами, обусловлены теорией рекурсивных функций. Символьные, s-выражения, являются элементами предложений, сочетаний. В них представлены софты и файлы. Они могут отображаться в виде списка (list) или атомов (atom).

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

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

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

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

Язык LISP относится к языкам программирования, которые используются для создания дополнительных загрузок к ПО по проектированию и моделированию. Для их использования необязательно хорошо разбираться в компьютере на уровне профессионала.

После изучения основных принципов работы в таких пакетах, как AutoCAD или ZWCAD Professional, который является аналогом ACAD, появляется необходимость упростить выполнение длительных рутинных операций или полностью избавиться от них. Для этого дополнения и нужны. Если они написаны на ЛИСПе, скрипты называются LISP-приложения. Каждое из них представляет собой текстовый файл с определенным встроенным кодом для выполнения команды и подсказками от производителя. Определитесь с нужными для работы свойствами, выбирайте надстройку, скачивайте ее и загружайте в ZWCAD или другую платформу. Начиная с версии ZWCAD 2020, в платформу встроен Отладчик Lisp приложений, разработанный на базе Visual Studio Code от Microsoft.

Рассмотрим возможности одного такого модуля на образце скрипта «Выравнивание текстов».

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

Примеры программ на ЛИСПе (lisp)

Приложение форматирует страницу горизонтально и вертикально по заданной точке. Это полезная возможность, непредусмотренная в основном ПО. Файл с расширением *.lsp открывается двумя кликами левой кнопки мыши. В окне появится «блокнот».

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

Чтобы сгладить и уподобить несколько напечатанных строк в готовом чертеже, обычно приходится выполнять однообразные действия много раз. Со скачанным скриптом это выполняется одной командой (в примере указана Z-TEXT-ALIGN).

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

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

Как загрузить вспомогательную часть в ПО

После выбора нужного вложения возникает надобность его внедрения. Если речь идет об ACAD, для него доступны файлы с такими расширениями:

Помимо файлов lisp также поддерживается загрузка форматов:

На примере того же модуля для выравнивания текста рассмотрим, как подгрузить в основную программу его файл.

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

Этапы установки LISP (их можно отследить по истории):

Важно: при каждом запуске базовой утилиты нажмите кнопку «Добавить» в разделе «Добавить в автозагрузку». Если этого не сделать, то будет выполнен единоразовый вход в модуль, который не сохраняется с закрытием софта.

Команды LISP-программы для Автокада (Autocad)

В главном ПО их посмотреть невозможно, поэтому нужно обратиться к исходному файлу дополнения. Он открывается в «Блокноте», вверху которого находится название команды для запуска лиспа и вся необходимая информация для работы от его создателей. В примере указано z-text-align, что и нужно ввести в командную строку, чтобы вызвать нужный инструмент.

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

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

Обратите внимание: в случае отсутствия подобной подсказки, ищите ее в коде – в строке «defun c: z-text-align».

Вложения, написанные на диалекте, разработаны только для внедрения в полную версию ACAD и в схожие программы, например, ZWCAD 2018 Professional, NanoCAD, они не подгружаются. Для них существуют другие приложения.

Список функций лисп (LISP) – языка программирования для Autocad

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

Варианты, производимые этим оператором:

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

Есть участок кода: (setq gh (+ 4 5)), где setq – одна из прописанных единиц. Она объявляет вариацию gh. В скобках знак + тоже опция, числа 4 и 5 – данные, которые были введены в систему. Значение выражения в gh сохранится, то есть 4+5 =9, gh=9. При заданном условии (setqhj (* gh 2), в результат hj сохраняется 18 – gh = 9, 9 умножить на 2 равно 18.

Синтаксис отличен от привычной большинству математики. Его порядок представлен сначала задачей, а потом переменными. В школьном счете это выглядит, как (3+2), а здесь (+ 3 2), однако, смысл одинаковый.

Список функций lisp, работа которых является основой дополнительных приложений:

При помощи этого программного диалекта создают новые уравнения 3-х классов:

Язык, который не позволяет этого – бесполезен. Часто используется LISP в геодезии, инженерии и строительстве, применяя надстройку «Автокада».

С помощью ЛИСП изучают рекурсивную функцию, используя такую возможность, как «трассировка». Это основной и весьма эффективный способ организации вычислений, повторяющихся несколько раз.

На входе в эту ячейку печатают значения входящих параметров, а на выходе появляются результаты, полученные в ходе операции. Для этого есть специальная опция класса FSURB, называемая TRACE. При ее успешном завершении, возвращается наименование задачи. При неудачном – возврат «NIil».

Пример включения рассматриваемой возможности SUMLIST и произведения математических манипуляций, суммирования элементов списка (1 2 3 4 5):

на каком языке написан автокад программирования. Смотреть фото на каком языке написан автокад программирования. Смотреть картинку на каком языке написан автокад программирования. Картинка про на каком языке написан автокад программирования. Фото на каком языке написан автокад программирования

Обратите внимание на то, что ответ на поставленную задачку ведется в ином порядке – от последнего к первому.

Используемые только для AutoCAD (Автокад) LISP программы, устанавливаются исключительно на полноценную версию и не подходят по списку функций и команд для работы в пакетах типа Autodesk LT, Electrical, Mechanical. Исключений немного, ими выступают специальные разработки типа LT Extender, с типом расширения *.arx, *.lsp.

Источник

Первый опыт написания плагинов для Autocad на C#

Предыстория

Я начинающий разработчик, «школьный» уровень знания С++, небольшой (2 года) опыт программирования на С#, нулевой опыт работы в автокаде
Недавно попросили изменить LISP программки автокада, предназначенные для создания/изменения межевых планов и подготовки соответствующих документов MS Word / XML — пофиксить баги и добавить новый функционал.
Поскольку читабельность программ на Лиспе (по крайней мере для меня) оставляет желать лучшего, я решил переписать это на более понятный язык.
Т.к. мне не нужны были миллисекунды прироста скорости, я пропустил С++ и остановился на C#

Пишу эту статью, чтобы:

1. Разложить у себя в голове по полочкам, что я узнал об Autocad.
2. Помочь тем, кто так же как я продирается через очень малое количество документации.
3. Получить в комментариях информацию вида «это ты делаешь неправильно, проще и лучше будет сделать так. »

Начало работы. Создание плагина.

Создаем проект C# по шаблону ClassLibrary
Добавляем ссылки на managed библиотеки API Autocad’a, которые лежат в папке программы.
В моем случае это:
C:\Program Files\AutoCAD 2007\acdbmgd.dll
C:\Program Files\AutoCAD 2007\acmgd.dll

Наследование от IExtensionApplication необязательно, Autocad автоматически подцепит все public классы в библиотеки, но, как мне сказали, так будет быстрее. Плюс можно контролировать Initialize/Terminate плагина.

Компилируем, запускаем автокад, загружаем плагин командой netload (открывается окно выбора managed dll)
Теперь при вводе команды hello мы будем получать ожидаемый ответ.

Структура Autocad приложения:

То, что мы видим на экране, графические объекты, унаследованные от Entity
Кроме видимых, есть невидимые информационные объекты — Слои, Типы линий, Стили размерности (Dimension styles), Стили таблиц и т.д.
Все это хранится в Database Table Records, в хранилищах вида TYPETable и классах вида TYPETableRecord.

Идентификаторы объектов

Работа с базой данных

Обычно работа с базой идет с помощью транзакции. Объекты запрашиваются из базы данных, изменяются и commit’ом транзакции сохраняются обратно
Во время транзакции объект запрашивается из БД в одном из 3х режимов ForRead, ForWrite, ForNotify.
Назначение первых двух очевидно, третий как-то используется для механизма событий, с чем я пока не пересекался
В режиме ForWrite автокадом создаются дополнительные объекты, позволяющие отменить изменения в транзации.
Если нужно изменить объект, открытый как «ForRead», вызывается его метод UpgradeOpen().
Если вызвать этот метод на объекте, уже открытом в режиме изменения, метод выдаст исключение.

UPDATE: Как мне подсказали в комментариях, предпочтительнее всегда вызывать transaction.Commit(), кроме случаев, когда нужно отменить транзакцию. Если транзакция не коммитится, автоматически вызывается transaction.Abort(), влекущий за собой дополнительные расходы.

Словари

Словари я использовал для сохранения своих данных в DWG, чтобы не создавать лишних файлов
Я столкнулся с двумя видами словарей в рисунке — NamedObjectDictionary и ExtensionDictionary
Данные в словарях хранятся в записях (Record), которые в свою очередь хранят типизированные значения.
Адресуются данные по текстовым ключам.

NamedObjectDictionary — глобальный словарь рисунка. Создается автоматически при создании документа.
Его я использовал для хранения ссылок на главные используемые мной объекты.

ExtensionDictionary — словарь, свой для каждого объекта, его нужно создавать вручную.
Проверить его существование можно сравнив поле entity.ExtensionDictionary c ObjectId.Null

Работа с глобальным словарем почти такая же, только объект DBDictionary получается так:

С чем я еще столкнулся

Пояснения:
R17.0 — Autocad 2007
419 для русской версии
409 для английской версии
GeocomplexPlugin — создаваемый раздел
LOADCTRLS = 2 — загружать при старте автокада. Определенными ключами можно сделать запуск «по требованию», плагин загружается, когда вводится одна из его команд
LOADER — путь к плагину

Т.к. в плагине нельзя запустить пошаговую отладку в VS, мне пришлось на некоторых этапах выводить отладочные сообщения.
Поскольку editor автокада для этих целей использовать неудобно, сообщения я выводил стандартными средствами Debug.WriteMessage()
Дебаг будет выводиться только при компилировании в режиме отладки, выводимые данные можно посмотреть, запустив программу DebugView

UPDATE: Решил проблему пошаговой отладки:
Победил эту проблему таким образом:
В файле настройки автокада acad.exe.config установил среду исполнения на v4.0:

Поменял среду исполнения плагина на 4.0 client profile
И настройках сборки AssemblyInfo.cs закомментировал атрибут AllowPartiallyTrustedCallers

В автокаде пробел эквивалентен Enter, поэтому если послать команду без завершающего пробела, в результате в editor’e будет введено _e и он будет ожидать дальнейшего ввода

Однако этот способ не всегда можно использовать. Принцип работы команды SendStringToExecute такой, что команды посылается только после завершения работы фунции, вызыванной командой. Поэтому если вы сначала вызовите эту команду, а потом, например, предложите пользователю выбрать объект на рисунке, фунции выбора будет послано две строки «_zoom», «_e», которые она воспримет как неправильные объекты.
Приходится искать аналоги, выполняющиеся сразу же. В данном случае:

Для выбора объектов используются функции editor’a Get*
Например, выбор нескольких объектов — GetSelection, выбор одного объекта GetEntity…

Источник

Обзор средств программирования в AutoCAD

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

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

Особого внимания среди CAD-систем заслуживает программный комплекс AutoCAD. Эта система автоматизированного проектирования не только предоставляет пользователю удобный графический интерфейс и обеспечивает получение высококачественной графики, но и располагает широким набором инструментов программирования. Пользователь может модифицировать графический интерфейс AutoCAD, расширять функциональные возможности, добавлять новые команды. Гибкую систему программирования мы бы и назвали главным преимуществом AutoCAD. Практически все операции, выполняемые в среде AutoCAD, можно реализовать программно – для этого в системе предусмотрены средства создания сценариев и возможность использования языков программирования.

К средствам программирования AutoCAD относятся следующие языки:

— Visual Basic for Application (VBA);

Будучи частью AutoCAD, AutoLisp позволяет оперировать переменными различных типов и передавать их значения командам AutoCAD при вводе данных. При ответах на запросы команд AutoCAD существует возможность использовать выражения АutоL_sр, в которых могут выполняться различные арифметические и условные операции над числовыми значениями и значениями определенных переменных.

Помимо средств выполнения различных расчетов, AutoLisp содержит функции и средства, которые предоставляют доступ к графической базе данных текущего чертежа AutoCAD. Кроме того, AutoLisp позволяет управлять графическим редактором AutoCAD и обращаться к собственным командам системы. Благодаря возможностям программ АutоL_sр создаются функции, настроенные на конкретную область применения. Эти функции включают запросы к пользователю (диалоги), возможность выбора по условию из нескольких вариантов или использования нескольких значений по умолчанию. Хотя макроопределения, созданные при написании меню AutoCAD, могут быть довольно сложными, при отсутствии АutоL_sр они остаются всего лишь комбинациями стандартных команд системы. Включив же в меню функций макроопределения АutоL_sр, вы превращаете меню AutoCAD в интеллектуальное средство автоматизации проектирования.

Возможности, которые обеспечивает AutoLisp:

— использование переменных и выражений при ответах на запросы команд AutoCAD;

— чтение и создание внешних файлов (таким образом осуществляется обмен информацией с внешними программами, которые можно запускать из AutoCAD);

— создание различных функций и новых команд AutoCAD, что обеспечивает настройку и расширение графических возможностей системы;

— программный доступ (чтение и редактирование) к данным, которые относятся к объектам проектирования, а также к таблицам AutoCAD, содержащим информацию о блоках, слоях, видах, стилях и типах линий;

— программное управление графическим экраном AutoCAD, а также вводом/выводом из различных устройств.

Заметим, что AutoLisp может использоваться для автоматизации проектирования почти в любой области народного хозяйства: от машино- и кораблестростроения до строительства, геодезии и картографии.

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

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

При создании на АutоL_sр довольно сложных программ не всегда удается сделать наглядным и удобным ввод информации через командную строку. Диалог с программой можно усовершенствовать, используя язык программирования DCL (Dialog Control Language), который предоставляет графические меню, средства редактирования атрибутов и диалоговых окон. При совместном использовании с комплексом команд АutоL_sр этот язык обеспечивает возможность вызова и управления диалогом из Lisp-программы. Все это значительно расширяет возможности адаптации AutoCAD под конкретные прикладные задачи. Язык DCL позволяет влиять на способ вывода окна, а также на его состав: кнопки, списки, шкалы и т.д. Ограничения на размер и местоположение окна заданы правилами конструирования диалоговых окон. Расположение элементов окна напоминает расположение абзацев в форматированном тексте, поэтому нет необходимости задавать точные координаты фрагментов окон. Диалоговое окно из меню AutoCAD вызывается через функцию АutоL_sр, которая руководит диалогом.

Таким образом, использование этих двух языков программирования позволяет создавать довольно сложные системы автоматизированного проектирования на базе программного комплекса AutoCAD.

Одним из наиболее современных языков программирования под AutoCAD является язык VBA (Visual Basic for Application), который взаимодействует с AutoCAD через интерфейс ActiveХ Automation. В плане расширения возможностей AutoCAD этот язык существенно превосходит возможности AutoLisp. Через интерфейс ActiveХ Automation он получает доступ ко всем элементам среды AutoCAD, всем переменным и командам, благодаря чему можно без больших усилий модифицировать пользовательский графический интерфейс (изменять меню, линейки инструментов, графическое окружение, добавлять новые команды, работать с графической базой данных AutoCAD: слоями, блоками, вьюпортами, стилями отображения текста, линий, заливок).

Язык VBA имеет собственный набор переменных и развитую систему инструментов для выполнения математических, логических и системных операций. Это позволяет не только создавать программы осуществления сложных математических расчетов, модификации баз данных AutoCAD, автоматизации процессов черчения, но и использовать VBA при написании более сложных программ, связанных с системными событиями. Например, с помощью VBA несложно создать программы взаимодействия с системными командами Windows, а также с другими программами (Word, Excel, Access и др.). К достоинствам этого языка следует отнести и наличие разнообразных инструментов для взаимодействия с различными базами данных (Access, Oracle, FoxPro, dBase, Paradox).

Упомянутые возможности программирования на языке VBA позволяют создавать сложные системы автоматизации проектирования и подготовки конструкторской документации в режиме реального времени. В подтверждение достаточно упомянуть существующие системы для разработки электрических схем с автоматической вставкой электронных компонентов и последующим внесением информации о компонентах и всей электронной схеме в базы данных. По завершении разработки электронной схемы пользователь может получить в Excel или Access полную спецификацию использованных компонентов.

Таким образом VBA объединяет в себе функциональные возможности AutoLisp и DCL, дополнительно предлагая инструменты взаимодействия с программной средой Windows и прикладными программами различных фирм-разработчиков, которые поддерживают технологию ActiveХ Automation.

Продолжим наш обзор рассмотрением ObjectARX – объектно-ориентированного расширения программной среды AutoCAD. Используя язык программирования Visual C++ и библиотеки языка C++, ObjectARX позволяет разрабатывать программы, расширять классы AutoCAD и протоколы, а также создавать новые команды, которые работают аналогично командам, встроенным в AutoCAD.

Программы ObjectARX являются динамическими библиотеками (DLL), которые разделяют адресное пространство AutoCAD и выполняют прямые обращения к ядру AutoCAD. Это обеспечивает возможность создания новых примитивов, которые ведут себя как обычные примитивы AutoCAD (точки, линии, круги и т.д.).

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

Таким образом, ObjectARX позволяет создавать программы любой сложности. По функциональным возможностям он в несколько раз превосходит AutoLisp, DCL и VBA. Этот язык программирования позволяет написать и простой скрипт, и инструменты перепрограммирования ядра AutoCAD, а также взаимодействия с внешними устройствами. На ObjectARX и Visual C++ написаны Autodesk Mechanical Desktop, Autodesk Land Desktop, Autodesk Map, Autodesk Civil Design и многие другие приложения к AutoCAD.

Описанное позволяет сделать следующие выводы:

1. Используя современные языки программирования, можно существенно дополнить возможности базового программного обеспечения.

2. Четкое представление о возможностях каждого из языков позволяет оптимизировать процесс создания прикладных программ.

3. Каждый из языков наилучшим образом соответствует вполне определенным задачам:

— AutoLisp – автоматизация процесса подготовки проектирования, создание новых команд, получение и сохранение информации по текущему чертежу, создание скриптов и изменение информации в текущем файле;

— VBA – изменение и дополнение графического интерфейса пользователя, создание новых команд, объединение Windows-программ и AutoCAD в единый комплекс;

— ObjectARX – дополнение AutoCAD новыми объектами, классами, протоколами, методами и механизмами обработки информации; установление связи AutoCAD с различными системными событиями и внешними устройствами.

При разработке программы следует учитывать следующие два важных фактора. Первый – необходимость быстрого написания программного кода, второй – быстродействие создаваемой программы. Если более существенным представляется первый фактор, можно и нужно использовать совместный подход к написанию: параллельно задействовать все языки, упомянутые выше, и получить комплексный код программы. При этом используется определенный язык программирования, который позволяет выполнить задачу наиболее удобно и быстро. Если же преобладают соображения быстродействия, следует отдать безусловное предпочтение языкам C++, Assembler и ARX.

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *