Какой бы хорошо проработанной и удобной чертежной системой ни был Автокад, абсолютное совершенство - вещь недостижимая,
кроме того невозможно учесть все возникающие обстоятельства при черчении и индивидуальные потребности различных
пользователей. Но в Автокаде есть встроенный язык программирования - Автолисп, который помогает решить почти любые проблемы. Даже,
если проблем нет, Автолисп позволяет сделать процесс черчения приятней и легче.
   Например: на плане стены имеется дверной проем, который отображается, как разрыв в стене; в проеме
имеется изображение двери с открыванием, и требуется повернуть дверь так, чтобы правое открывание поменялось
на левое (или наоборот). Можно применить команду "Mirror", но тогда необходимо будет указать ось симметрии, а для этого - провести
вспомогательное построение: сначала начертить отрезок от одного края проема до другого, затем - восстановить перпендикуляр
из центра этого отрезка, а в завершение - удалить вспомогательное построение. При использовании приведенной ниже программы
эта задача будет решаться следующим обраом: поочередно курсором указываются два края дверного проеме на чертеже; затем
курсором выбираются объекты, составляющие чертеж двери, и, после подтверждения выбора (Enter или пробел), дверь автоматически
перерисовывается в зеркальном отображении относительно середины проема.
   Таким образом можно "эеркалить", как любые фрагменты чертежа, так и весь чертеж целиком; как плоские, так и трехмерные объекты (в плоскости, параллельной осям X и Y).
   Если имеется такая необходимость, чтобы в процессе применения программы текст, присутствующий в чертеже, не только менял свое положении, но так же и отображался зеркально,
не забудьте предварительно установить значение переменной Автокада "MIRRTEXT" равным единице (команда mirrtext), либо превратить данный текст в блок (команда block).
   Ниже приведен пример применения описанной программы и ее листинг.
   Пример применения программы
   Листинг для англоязычного Автокада
   Листинг для рускоязычного Автокада
   1. Пример применения программы
   < В меню >   < В начало >
   2. Листинг для англоязычного Автокада.
;Данная программа позволяет произвести зеркальное отображение
;объектов относительно мнимой оси симметрии, которая выражена
;двумя точками (или вершинами примитивов), взамно симметричными
;относительно нее.
;Команда PP (латинские символы) - Зеркальный перенос объектов
;(с удалением исходных объектов).
;Команда PPP - Зеркальное копирование (с сохранением исходных
;объектов).
;На запрос Автокада "Specify first point:" укажите курсором первую
;точку; на следующий запрос Автокада "Specify second point:"
;укажите вторую точку; на запрос Автокада "Select objects:"
;выберите объекты, которые необходимо отобразить зеркально;
;после подтверждения выбора (Enter или пробел) выбранные объекты
;займут положение, зеркальное первоначальному подобно указанным
;точкам.
;
;Функция ввода данных
(defun enterdata ()
(setq p0 (getpoint "\nSpecify first point: "))
(setq p01 (getpoint p0 "\nSpecify second point: "))
)
:Функция обработки ошибок
(defun *error* (msg)
(princ msg)
)
;Функция промежуточных вычислений
(defun calculations ()
(setq l (distance p0 p01))
(setq a (angle p0 p01))
(setq a1 (+ a (/ pi 2)))
;Секция определения точек оси симметрии
(setq p02 (polar p0 a (/ l 2)))
(setq p1 (polar p02 (- a (/ pi 2)) 1000000))
(setq p2 (polar p1 (+ a (/ pi 2)) 2000000))
)
;Секция отрисовки
(defun C:PP () ;команда для зеркального переноса
(enterdata)
(calculations)
(setq nabor (ssget)) ;выбираем объекты
(command "mirror" nabor "" p1 p2 "Y") ;"зеркалим" объекты
)
(defun C:PPP () ;команда для зеркального копирования
(enterdata)
(calculations)
(setq nabor (ssget)) ;выбираем объекты
(command "mirror" nabor "" p1 p2 "N") ; "зеркалим" объекты
)
(prompt "\n Command PP loaded")
(prompt "\n Command PPP loaded")
|
   Для установки программы на свой компьютер можно: выделить с помощью курсора текст, расположенный выше
в рамке; скопировать его в буфер обмена; затем запустить текстовый редактор Блокнот; вставить в него из
буфера скопированный текст, и сохранить его на своем жестком диске, присвоив файлу имя с расширением ".LSP" (например
MIRROR.LSP).
   Для применения программы: в окне Автокада в меню выберите пункт Tools - Load Application,
или в командной строке наберите команду APPLOAD (или просто - AP); в
верхней части открывшегося окна загрузки приложений будет отображена файловая структура Вашего компьютера; найдите в ней
имя сохраненного Вами файла; выделив его, кликните на кнопке "Load". Произойдет загрузка программы, после чего
можно ее применять.
   Для зеркального переноса объектов (без сохранения исходных объектов в чертеже) в командной строке
Автокада введите команду pp (две латинские буквы p); для зеркального копирования (с сохранением исходных объектов) в
командной строке введите команду ppp (три латинские буквы p).
   < В меню >   < В начало >
   3. Листинг для русскоязычного Автокада.
;Данная программа позволяет произвести зеркальное отображение
;объектов относительно мнимой оси симметрии, которая выражена
;двумя точками (или вершинами примитивов), взамно симметричными
;относительно нее.
;Команда ЗЗ (2 буквы З) - Зеркальный перенос объектов
;(с удалением исходных объектов).
;Команда ЗЗЗ - Зеркальное копирование (с сохранением исходных
;объектов).
;На запрос Автокада "Укажите первую точку:" укажите курсором
;первую точку; на следующий запрос Автокада "Укажите вторую точку:"
;укажите вторую точку; на запрос Автокада "Выберите объекты:"
;выберите объекты, которые необходимо отобразить зеркально;
;после подтверждения выбора (Enter или пробел) выбранные объекты
;займут положение, зеркальное первоначальному подобно указанным
;точкам.
;
;Функция ввода данных
(defun enterdata ()
(setq p0 (getpoint "\nУкажите первую точку: "))
(setq p01 (getpoint p0 "\nУкажите вторую точку: "))
)
:Функция обработки ошибок
(defun *error* (msg)
(princ msg)
)
;Функция промежуточных вычислений
(defun calculations ()
(setq l (distance p0 p01))
(setq a (angle p0 p01))
(setq a1 (+ a (/ pi 2)))
;Секция определения точек оси симметрии
(setq p02 (polar p0 a (/ l 2)))
(setq p1 (polar p02 (- a (/ pi 2)) 1000000))
(setq p2 (polar p1 (+ a (/ pi 2)) 2000000))
)
;Секция отрисовки
(defun C:зз () ;команда для зеркального переноса
(enterdata)
(calculations)
(setq nabor (ssget)) ;выбираем объекты
(command "зеркало" nabor "" p1 p2 "д") ;"зеркалим" объекты
)
(defun C:ззз () ;команда для зеркального копирования
(enterdata)
(calculations)
(setq nabor (ssget)) ;выбираем объекты
(command "зеркало" nabor "" p1 p2 "н") ; "зеркалим" объекты
)
(prompt "\n Команда ЗЗ загружена")
(prompt "\n Команда ЗЗЗ загружена")
|
   Для установки программы на свой компьютер можно: выделить с помощью курсора текст, расположенный выше
в рамке; скопировать его в буфер обмена; затем запустить текстовый редактор Блокнот; вставить в него из
буфера скопированный текст, и сохранить его на своем жестком диске, присвоив файлу имя с расширением ".LSP" (например
MIRROR_RUS.LSP).
   Для применения программы в окне Автокада в меню выберите пункт Сервис - Приложения
или в командной строке наберите команду ЗАГПРИЛ (или просто - ЗАГ); в
верхней части открывшегося окна загрузки приложений будет отображена файловая структура Вашего компьютера; найдите в ней
имя сохраненного Вами файла; выделив его, кликните на кнопке "Загрузить". Произойдет загрузка программы, после чего
можно ее применять.
   Для зеркального переноса объектов (без сохранения исходных объектов в чертеже) в командной строке
Автокада введите команду зз (две русские буквы з); для зеркального копирования (с сохранением исходных объектов) в
командной строке введите команду ззз (три русские буквы з).
   < В меню >   < В начало >