программирование в AutoCAD — AutoLisp

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

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

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

  • AutoLisp;
  • Visual C++;
  • VBA;
  • ARX;
  • Delphi;
  • DCL.

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

В качестве примера использования AutoLisp приведу "лисп" (программный код, сгенерированный в AutoLisp), который умеет чистить и проверять файлы на ошибки при сохранении.

Сначала - некоторые глобальные дела:Программирование в AutoCAD - AutoLisp

Таким образом гарантированно загрузится ActiveX-расширение и будет определена глобальная переменная – маркер текущего документа.

Далее обозначим собственные реакции комплеса AutoCAD на команды:Программирование в AutoCAD - AutoLisp

Здесь проверяется присутствие глобальной переменной *vlr-cmd* и определяется реактор – для начала команды, для окончания команды, для отмены команды и для случая, когда выполнение команды привело к ошибке.

Теперь пишем собственно реакторы:Программирование в AutoCAD - AutoLisp

Данная функция обрабатывает событие для начала команды. Во избежание ошибок обработки системной переменной dimpost рекомендуется использовать AutoCAD версий 2010-2014.

А сейчас займемся проверкой и очисткой:программирование в AutoCAD - AutoLisp

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

И в конце делаем проверку файла:Программирование в AutoCAD - AutoLisp

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

Смотри видео на YouTube: "Программирование в AutoCAD - AutoLisp".

А вы пользуетесь AutoCAD AutoLisp?

1 884 просмотров

  •  
  •  
  •  
  •  
  •  
  •  
  •  
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Метки: , , , , , , , ,
Опубликовано в информатика
2 комментария на “программирование в AutoCAD — AutoLisp
  1. Антон:

    Уже лет двенадцать пользуюсь различными CAD и CAM системами. в том числе и AutoCAD, но программированием в нем никогда. Даже не представляю зачем конструкторам и проектантам «железа» оно вообще нужно. Может быть программистам для выпуска различных дополнений и модулей под него и надо.

  2. Леонид:

    Как выполнить порядок прорисовки блоков в AutoCAD-2014. Стандартными командами «Порядок» и «Маскировка» это не получается. Можно ли написать соответствующую программу в AutoLISP?

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

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

*

*

Регистрация в майнинг пуле с моментальным выводом на WebMoney!

новости
Подписка на madcash.ru