Auto CAD

Написание программ AutoLISP


Я назвал эту главу "AutoLISP на примерах", потому что для того, чтобы показать ключевые свойства программирования, я оперирую примерами кодов.

Эта глава не предназначена для опытных программистов, она написана для пользователей AutoCAD. Когда я впервые решил попробовать AutoLISP, ссылка, к которой я обратился, начиналась с рассуждений об атомах, списках, лямбда-выражениях, функциях cons и mapcar, с примерами длиной в одну строку, которые для меня ничего не значили. У меня была определенная цель — написать команду, которая бы автоматически помещала один чертеж в другой. Я не смог решить задачу до тех пор, пока не рассмотрел существующие программы и не понял, как они работают. Вспоминая о собственном опыте, я собираюсь привести вам примеры программ и объяснить, как они работают. Все что от вас требуется — ввести их без ошибок, попробовать и прочитать пояснения. Это так просто.

Моя первая программа AutoLISP

Впервые я преподавал основы работы в AutoCAD в 1989 году. Я с самого начала знал, что мне придется оценивать работы студентов в электронном виде, чтобы проверить точность геометрии, поэтому каждую неделю я загружал все чертежи. Командами DIST (ДИСТ) и ID (КООРД) я проверял размеры и местоположение элементов, увеличивал области, в которых наиболее вероятны ошибки, и всеми другими способами старался обнаружить неточности и внести нужные исправления. Но, имея 60 студентов, каждый из которых делает по чертежу в неделю, я тратил на проверку чертежей все свое время. Тогда я предпринял мозговой штурм, вы, наверное, тоже о нем подумали, когда начали читать это примечание. Почему бы не поместить мой чертеж поверх работы студента, в отдельный слой, с типом линий и цветом, которым студенты не пользуются? Таким образом, я бы смог избавиться от ряда шагов.

Этот способ помог, но недостаточно. Я решил автоматизировать процесс, что означало, что мне необходимо срочно изучить AutoLISP. Мне показалось несложным создать новую команду при помощи функции defun и выполнять команды AutoCAD из программы AutoLISP. Но моя программа не работала. После часов безуспешных попыток я открыл все программы AutoLISP, которые смог найти, в надежде, что какая-либо из них имеет дело с файлами чертежей. И я обнаружил интересную деталь: если в программе имеется ссылка на имя файла, в пути файла имя файла и папки разделяются двойной обратной наклонной чертой. Неужели из-за этого я не мог вставить чертеж? Неужели все так просто?

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

Комментарии закрыты