< На главную страницу >



АВТОЛИСП
АВТОЛИСП
АВТОЛИСП
АВТОЛИСП
АВТОЛИСП


    Какой бы хорошо проработанной и удобной чертежной системой ни был Автокад, абсолютное совершенство - вещь недостижимая, кроме того невозможно учесть все возникающие обстоятельства при черчении и индивидуальные потребности различных пользователей. Но в Автокаде есть встроенный язык программирования - Автолисп, который помогает решить почти любые проблемы. Даже, если проблем нет, Автолисп позволяет сделать процесс черчения приятней и легче.
   Например: на плане стены имеется дверной проем, который отображается, как разрыв в стене; в проеме имеется изображение двери с открыванием, и требуется повернуть дверь так, чтобы правое открывание поменялось на левое (или наоборот). Можно применить команду "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).
   Для применения программы в окне Автокада в меню выберите пункт Сервис - Приложения или в командной строке наберите команду ЗАГПРИЛ (или просто - ЗАГ); в верхней части открывшегося окна загрузки приложений будет отображена файловая структура Вашего компьютера; найдите в ней имя сохраненного Вами файла; выделив его, кликните на кнопке "Загрузить". Произойдет загрузка программы, после чего можно ее применять.
   Для зеркального переноса объектов (без сохранения исходных объектов в чертеже) в командной строке Автокада введите команду зз (две русские буквы з); для зеркального копирования (с сохранением исходных объектов) в командной строке введите команду ззз (три русские буквы з).

   < В меню >   < В начало >



< На главную страницу >