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

Обновлено: 07.07.2024

AutoCAD - это коммерческое приложение для автоматизированного проектирования (САПР) и черчения . Разработан и продается компанией Autodesk , [1] AutoCAD впервые был выпущен в декабре 1982 года в качестве настольного приложения , работающие на микрокомпьютеров с внутренними графическими контроллерами . [2] До появления AutoCAD большинство коммерческих программ САПР выполнялось на мэйнфреймах или миникомпьютерах , при этом каждый оператор (пользователь) САПР работал на отдельном графическом терминале . [3] AutoCAD также доступен в виде мобильных и веб-приложений .

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

Содержание

AutoCAD была получена из программы , которая началась в 1977 году, а затем выпущен в 1979 [4] под названием Взаимодействовать CAD , [5] [6] [7] также упоминается в ранних документах Autodesk как MicroCAD, которая была написана до Autodesk ( в то Marinchip Software Partners), основанная соучредителем Autodesk Майклом Риддлом. [8] [9]

Первая версия Autodesk была продемонстрирована на выставке Comdex 1982 года и выпущена в декабре того же года. AutoCAD поддерживает компьютеры CP / M -80. [10] Как флагманский продукт Autodesk, к марту 1986 года AutoCAD стал самой распространенной программой САПР во всем мире. [11] Выпуск 2020 года стал 34-м основным выпуском AutoCAD для Windows . Выпуск 2019 стал девятым годом подряд AutoCAD для Mac . Собственный формат файлов AutoCAD - .dwg . Этот и, в меньшей степени, формат файла обмена DXF , стали де-факто, хотя и являются собственностью, стандартами взаимодействия данных САПР , особенно для обмена 2D-чертежами. [12] AutoCAD включает поддержку .dwf , формата, разработанного и продвигаемого Autodesk, для публикации данных САПР.

ESRI ArcMap 10 позволяет экспортировать файлы чертежей AutoCAD. Civil 3D позволяет экспортировать как объекты AutoCAD, так и LandXML . Существуют сторонние конвертеры файлов для определенных форматов, таких как Bentley MX GENIO Extension, PISTE Extension (Франция), ISYBAU (Германия), OKSTRA и Microdrainage (Великобритания); [13] также возможно преобразование файлов .pdf , однако точность результатов может быть непредсказуемой или искаженной. Например, могут появиться неровные края. Некоторые поставщики, например Cometdocs, бесплатно предоставляют онлайн-преобразования.

AutoCAD и AutoCAD LT доступны для английского, немецкого, французского, итальянского, испанского, японского , корейского , китайского упрощенного , китайского традиционного , бразильского португальского , русского , чешского , польского и венгерского языков (также через дополнительные языковые пакеты). [14] Степень локализации варьируется от полного перевода продукта только до документации. Набор команд AutoCAD локализован как часть локализации программного обеспечения.

  • продукты, расширяющие функциональность AutoCAD на определенные поля
  • создание таких продуктов, как AutoCAD Architecture , AutoCAD Electrical, AutoCAD Civil 3D
  • стороннее приложение на основе AutoCAD

В магазине приложений Autodesk Exchange Apps доступно большое количество подключаемых модулей (дополнительных приложений) AutoCAD. [15] AutoCAD DXF , формат обмена чертежами, позволяет импортировать и экспортировать информацию о чертежах.

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

  • AutoCAD Advance Steel
  • AutoCAD Electrical
  • AutoCAD ecscad
  • AutoCAD Map 3D
  • AutoCAD Mech
  • AutoCAD MEP
  • AutoCAD Structural Детализация
  • AutoCAD Utility Design
  • AutoCAD P&ID
  • AutoCAD Plant 3D
  • Autodesk Civil 3D

Начиная с AutoCAD 2019, несколько вертикалей включены в подписку AutoCAD в качестве отраслевого набора инструментов.

Например, AutoCAD Architecture (ранее называвшаяся Architectural Desktop) позволяет дизайнерам-архитекторам рисовать трехмерные объекты, такие как стены, двери и окна, с более интеллектуальными данными, связанными с ними, а не с простыми объектами, такими как линии и круги. Данные могут быть запрограммированы для представления конкретных архитектурных продуктов, продаваемых в строительной отрасли, или извлечены в файл данных для расчета цен, оценки материалов и других значений, связанных с представленными объектами.

Дополнительные инструменты позволяют создавать стандартные 2D-чертежи, такие как фасады и разрезы, из 3D-архитектурной модели. Аналогичным образом, Civil Design, Civil Design 3D и Civil Design Professional поддерживают объекты, зависящие от данных, упрощая стандартные расчеты и представления гражданского строительства.

Softdesk Civil был разработан как надстройка AutoCAD компанией из Нью-Гэмпшира под названием Softdesk (первоначально DCA). Softdesk был приобретен Autodesk, а Civil превратилась в Land Development Desktop (LDD), позже переименованную в Land Desktop. Позднее был разработан Civil 3D, и Land Desktop был закрыт.

Несмотря на то, что между полным пакетом AutoCAD и AutoCAD LT есть сотни небольших различий, есть несколько признанных основных различий [16] в функциях программного обеспечения:

AutoCAD WS начинался с версии для iPhone, а затем был расширен за счет включения версий для iPod Touch , iPad , телефонов Android и планшетов Android. [19] Autodesk выпустила версию для iOS в сентябре 2010 г. [20] вслед за версией для Android 20 апреля 2011 г. [21] Программа доступна для бесплатной загрузки в App Store ( iOS ), Google Play ( Android). ) и Amazon Appstore (Android).

В своей начальной версии для iOS AutoCAD WS поддерживал рисование линий, кругов и других форм; создание полей для текста и комментариев; а также управление цветом, слоем и измерениями - как в альбомном, так и в портретном режимах. Версия 1.3, выпущенная 17 августа 2011 г., добавила поддержку ввода единиц измерения, видимости слоев, измерения площади и управления файлами. [18] Вариант Android включает набор функций iOS, а также такие уникальные функции, как возможность вставки текста или подписей с помощью голосовой команды, а также вручную. [21] Обе версии для Android и iOS позволяют пользователю сохранять файлы в режиме онлайн или автономно при отсутствии подключения к Интернету. [21]

В 2011 году Autodesk объявила о планах перенести большую часть своего программного обеспечения в « облако », начиная с мобильного приложения AutoCAD WS. [22]

Согласно интервью 2013 года с Илаи Ротбайном, менеджером по продуктам AutoCAD WS для Autodesk, имя AutoCAD WS не имело окончательного значения и интерпретировалось по-разному как веб-служба Autodesk , белый лист или рабочее пространство. [23] В 2013 году AutoCAD WS был переименован в AutoCAD 360 . [24] Позже оно было переименовано в AutoCAD Web App .

AutoCAD предоставляется бесплатно студентам, преподавателям и образовательным учреждениям с возможностью продления на 12 месяцев. Лицензии, приобретенные до 25 марта 2020 г., составляли 36 месяцев с последним обновлением 24 марта 2020 г. [25] Версия AutoCAD для учащихся функционально идентична полной коммерческой версии, за одним исключением: файлы DWG, созданные или отредактированные версией для учащихся, имеют внутренний битовый флаг («образовательный флаг»). Когда такой файл DWG печатается любой версией AutoCAD (коммерческой или студенческой), более ранней, чем AutoCAD 2014 SP1 или AutoCAD 2019 и новее, на выходе будет штамп / баннер на всех четырех сторонах. Объекты, созданные в Студенческой версии, нельзя использовать в коммерческих целях. Объекты «Студенческая версия» «заражают» файл DWG коммерческой версии, если они импортируются в версиях старше AutoCAD 2015 или новее AutoCAD 2018. [26]


AutoCAD Release 12 в 1992 году был первой версией программного обеспечения, поддерживающей платформу Windows - в данном случае Windows 3.1 . После выпуска 14 в 1997 году поддержка MS-DOS, Unix и Macintosh была прекращена, и AutoCAD поддерживался исключительно Windows. Как правило, любая новая версия AutoCAD поддерживает текущую версию Windows и некоторые более старые версии. AutoCAD 2016–2020 поддерживает Windows 7 до Windows 10. [27]

Autodesk прекратил поддержку компьютеров Apple Macintosh в 1994 году. В течение следующих нескольких лет совместимых версий для Mac выпущено не было. В 2010 году Autodesk объявил, что в будущем он снова будет поддерживать программное обеспечение Apple Mac OS X. [28] Большинство функций, имеющихся в версии 2012 для Windows, можно найти в версии для Mac 2012 г. Основное отличие - это пользовательский интерфейс и верстка программы. Интерфейс разработан таким образом, что пользователи, которые уже знакомы с программным обеспечением Apple macOS , найдут его похожим на другие приложения Mac. [20] Autodesk также имеет встроенные различные функции, чтобы в полной мере использовать возможности трекпада Apple, а также полноэкранный режим в Apple OS X Lion.. [19] [20] AutoCAD 2012 для Mac поддерживает как редактирование, так и сохранение файлов в формате DWG, что обеспечивает совместимость файла с другими платформами, кроме OS X. [19] AutoCAD 2019 для Mac требует Apple OS X v10. 11 (Эль-Капитан) или новее.

AutoCAD LT 2013 был доступен в Mac App Store по цене 899,99 долларов. Однако полнофункциональная версия AutoCAD 2013 для Mac не была доступна в Mac App Store из-за установленного Apple предела цены в 999 долларов. AutoCAD 2014 для Mac можно было приобрести на веб-сайте Autodesk за 4 195 долларов, а AutoCAD LT 2014 для Mac за 1 200 долларов или у авторизованного реселлера Autodesk. [28] Самая последняя версия, доступная для Mac, - AutoCAD 2019 по состоянию на декабрь 2018 года. По состоянию на 2019 год в Mac App Store не указано ни одной версии AutoCAD для покупки.

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

Фактически все прогнозы сводятся к "исчезнет ли LISP", потому что иных языков может еще и много новых появиться. Теоретически, потому что практически Autodesk в сегодняшнем состоянии полностью поддакивает только Microsoft.

А какая роль LISP в AutoCAD? Если даже не рассматривать преимущества LISP как функционального языка, то в AutoCAD у него основное назначение - прямой интерфейс с системой. Через командную строку, через файлы, через меню. Здесь можно просто вводить LISP-выражения, которые интерпретируются и выполняются.

У LISP в AutoCAD примерно такая же роль, как у SQL в мире баз данных. Конечным пользователям БД SQL не нужен - им хватает "кнопок", но разработчикам без SQL не обойтись. Конечным пользователям AutoCAD LISP не нужен - им хватает "кнопок", но разработчикам без LISP не обойтись. Даже если они используют какую-то другую среду - а как встроить в AutoCAD свою дополнительную "команду"? Только "именованными командами" никак не обойтись.

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

В мире СУБД - это окно ввода SQL-выражений, дающее потрясающие возможности. Потому что SQL - интерпретатор. Вот в MS Access не такого окна, а только "кнопки" и это делает её СУБД "для блондинок" (так и задумано).

В ГИС Mapinfo есть окно Mapbasic - и это дает возможность неограниченного расширения системы по вкусу. Потому что Mapbasic - интерпретатор.

А у AutoCAD есть командная строка (не окно) в которую наилучшим образом вписывается именно LISP (от скобки до скобки). Туда не введешь "команды" на C++, да и нет таких.

LISP кажется заброшенным. А его и не надо "улучшать", например до уровня Common LISP. Именно простой диалект LISP, в отличие от других систем, дал возможность "простым инженерам", делать программы "под себя". Для этого нужен только текстовый редактор. Не нужны дополнительные среды разработки, компилирование и прочие "прелести". Главный недостаток - устаревший DCL. Приципиально ничего не мешает расширить DCL, а ещё лучше - дать возможность описывать интерфейс на XAML. Да еще бы обращение к функциям обычных, не COM dll.

Прогнозируя будущее, всегда надо вспоминать историю - а что было.

Большинство и не знает, что когда-то AutoCAD уже работал на 11 (!) ОС. Теперь - только Windows.
ARX-приложения можно было писать на любых языках и компилировать в любой среде. Теперь - только от MS. Объективных причин для этого нет.
Думаете Microsoft позволит своему вассалу "сбежать" на другую операционную систему? Да только если сама MS вздумает совершить агрессию.

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

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

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

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

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

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

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

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

  • ObjectId, известный также как EName (entity name). Число, создаваемое при открытии рисунка.
    Использование — идентификация объекта в базе в течении одной сессии, объект запрашивается из базы по его ObjectId
    Может меняться между разными открытиями, лучше не использовать для сохранения ссылок на объекты
  • Handle — число, неизменное между разными открытиями документа, удобно использовать для сохранения связей между объектами при сохранении файла.

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

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

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

Словари

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

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

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

Пример записи и получения строкового значения из ExtensionDictionary

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

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

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

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…

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

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

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

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

Конструкция

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

Во втором варианте включены числовые комбинации, цифры, буквы латинского алфавита и знаки: *, -, +, /,@, %, , &, _,<, >,

язык lisp

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

установка lisp

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

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

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

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

Читайте также: