- •Методические указания
- •Лабораторная работа № 5 Доступ к AutoCad с использованием Visual Lisp
- •1. Цель работы
- •2. Теоретический материал
- •3. Вопросы для самоконтроля
- •4. Порядок выполнения
- •5 Контрольные вопросы
- •Лабораторная работа № 6 Доступ к средствам AutoCad с использованием Visual
- •1. Цель работы
- •2. Теоретический материал
- •3. Вопросы для самоконтроля
- •4. Практические задания
- •5. Контрольные вопросы
- •Лабораторная работа № 7 Автоматизация проектирования на базе системы Unigraphics
- •1. Цель работы
- •2. Теоретический материал
- •3. Вопросы для самоконтроля
- •4. Практические задания
- •5. Контрольные вопросы
- •Вопросы для самоконтроля
- •Библиографический список
- •Содержание
- •394026 Воронеж, Московский просп., 14
ГОУВПО «Воронежский государственный технический
университет»
Кафедра компьютерных интеллектуальных технологий
проектирования
316-2009
Методические указания
к выполнению лабораторных работ № 5-7
по курсу «Компьютерная графика»
для студентов специальности 230104
«Системы автоматизированного проектирования»
заочной формы обучения
Воронеж 2009
Составители: д-р техн. наук Е.Д. Федорков.
канд. техн. наук А.С. Кольцов
УДК 681.3.06
Методические указания к выполнению лабораторных работ № 5-7 по курсу «Компьютерная графика» для студентов специальности 230104 «Системы автоматизированного проектирования» заочной формы обучения / ГОУВПО «Воронежский государственный технический университет»; сост. Е.Д. Федорков, А.С. Кольцов. Воронеж, 2009. 23 с.
В методических указаниях рассматриваются методики создания программ с помощью VisualLISP, а также освоение возможности автоматизации доступа к разнообразным средствам AutoCad с использованием возможностей VisualLisp и основные примитивы построения чертежа системы Unigraphics, а также освоение приемов программирования сложных графических объектов.
Методические указания подготовлены на магнитном носителе в текстовом редакторе Microsoft Word 2003 и содержатся в файле KompGraf4.doc.
Предназначены для студентов 3 курса.
Ил. 3. Библиогр.: 10 назв.
Рецензент д-р техн. наук, проф. О.Н. Чопоров
Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. Е.Д. Федорков
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
© ГОУВПО «Воронежский
государственный технический
у
Лабораторная работа № 5 Доступ к AutoCad с использованием Visual Lisp
1. Цель работы
Практическое знакомство с методикой создания программ с помощью VisualLISP, а также освоение возможности автоматизации доступа к разнообразным средствам AutoCad с использованием возможностей VisualLisp.
2. Теоретический материал
Приведено описание языка программирования VisualLISP методики создания с его помощью программ для AutoCad.
Visual LISP представляет собой интегрированную среду разработки (integrated development environment - IDE), обеспечивающую удобный и простой в использовании интерфейс, который помогает создавать код, отлаживать его и тестировать программы
Для запуска Visual LISP в командной строке AutoCad набрать команду Vlide или выбрать Tool VisualLISP Visual LISP Editor (Инструменты VisualLISP VisualLISP ). С помощью одного из этих методов можно переключиться в Visual LISP в любой момент времени.
Создание нового файла, открытие, загрузка и редактирование файла VisualLISP с помощью Visual LISP осуществлятся из меню Visual LISP при выборе File Open (Файл Открыть). В диалоговом окне Open File to Edit/View (Открытие файла для редактирования/просмотра) найдите и выберите файл. Щелкните на кнопке Open(открыть). Visual LISP откроет выбранный вами файл в отдельном окне. В Visual LISP можно открыть любое количество файлов.
Все файлы VisualLISP должны иметь расширение .lsp. Однако для обеспечения безопасности и ускорения работы AL-программы можно компилировать как файлы проекта с расширением .fas или .vlx. AutoCAD сначала загружает файлы с расширением .vlx, затем .fas и наконец .lsp.
В окне Visual LISP содержится множество средств, облегчающих процесс программирования. Эти средства и обеспечивают разительное отличие между созданием кода VisualLISP в новой и более ранних версиях AutoCAD. Если раньше код VisualLISP приходилось вводить в обычном текстовом редакторе, то теперь специальные средства редактора помогут вам отформатировать и создать код.
Программирование на VisualLISP
Одним из важнейших элементов большинства языков программирования являются переменные. Важным фактором использования переменных является возможность присвоения им значений. Рассмотрим пример, в котором переменной radius присваивается значение 3.
(setq radius 3)
Эту операцию можно выполнить в окне Console Visual LISP. Если вы хотите использовать эту переменную в командной строке AutoCAD, перед ней следует поставить (!):
Command: !radius
3
Восклицательный знак перед переменной заставляет программу вычислить (оценить) значение, хранящееся в переменной, и вывести его в командную строку. При работе с переменными в окне Console восклицательный знак перед именем переменной не нужен, поскольку предполагается, что любая вводимая в этом окне информация представляет собой выражение VisualLISP.
Взаимосвязь между строковыми константами и переменными так же проста, как между числовыми константами и переменными.
(setq name "Robin")
"Robin"
Можно также использовать вложенные VisualLISP-выражения - включать их одно в другое:
(setq radiua (+ 2 1))
3
Можно создавать функции с аргументами. Аргумент - это значение, которое должно передаваться функции. Функция использует значение аргумента в процессе выполнения. При этом локальные переменные помещаются в круглых скобках после косой черты. Аргументы тоже располагаются в круглых скобках, но только до косой черты. Если локальные переменные в функции отсутствуют, косая черта не ставится. Ниже приводится пример функции с одним аргументом.
(defun chg2red (selected_object)
…
)
Для обращения к этой программе из AutoCAD или из другой VisualLISP-программы используется формат (chg2red selected_object). Здесь имя переменной, которая передается программе chg2red в качестве аргумента, находится после имени функции, и все выражение заключается в круглые скобки.
Списки - это основные структуры данных, используемые в программировании на языке VisualLISP. AutoCAD представляет данные об объекте в виде списка, который содержит много других списков меньшего размера. Список всегда заключается в круглые скобки. Одна из простейших и широко применяемых в AutoCAD списочных структур - набор координат точки, например:
3.5 2.0)
Этот список задает точку с координатами 1.0, 3.5, 2.0 в прямоугольной системе координат X, Y, Z. Так как список представляет собой группу элементов, может потребоваться извлечь из него один или несколько элементов. В табл. 3 приведен перечень функций извлечения элементов на примере списка (1.0, 3.5, 2.0).
Циклы обеспечивают возможность выполнения одного или нескольких операторов программы заданное количество раз. Один из способов организации цикла - использование оператора WHILE.
Для приостановки выполнения программы и ввода значений или указания точки на объекте в тело функции COMMAND можно включить функцию PAUSE. Например, выражение (command "circle" pause "3") делает паузу для того, чтобы пользователь определил центр, а затем создает окружность радиусом 3.
Включение в текст программы комментария. В начале программы включите комментарий с описанием ее функционального назначения. Это поможет другим пользователям вашей программу лучше понять ее логику, а вам самим - быстрее вспомнить собственный замысел несколько месяцев спустя. Строки комментария в VisualLISP-Программах начинаются с символа "точка с запятой"(;).
Комментарии также следует поместить и в тексте программы. Отсутствие комментариев может испортить даже самый лучший код. Большинство профессиональных программистов очень подробно комментируют и документируют свои программы.
Среда визуального программирования Delphi
Среда Delphi обеспечивает высокоэффективную работу программиста и является одной из популярных систем программирования/10/. Этим объясняется актуальность передачи расчетных параметров из программы созданной с помощью Delphi в AutoCAD. Рассмотрим варианты передачи расчетных данных в графический редактор AutoCAD.
Рассмотрим более подробно механизм передачи расчетных параметров в графический редактор AutoCAD. Текстовый файл name.txt формируется программой и представляет собой записанные в определенном порядке расчетные параметры. В конце файла могут быть указаны справочные данные, например, марка материала и масса инструмента и др.
Для осуществления связи между программой, написанной на языке Delphi и графической системой необходимо указать место нахождения последней. Для указывается полный путь к файлу acad.exe, после чего программа проверяет наличие запускающего файла в указанной директории. Для осуществления автоматической загрузки файла name.lsp, предусмотрено наличие файла с расширением .scr, в котором указанно имя lsp-файла, а так же название функции для прочерчивания инструмента. Файл acad.exe записывается со специальным ключом. Например: c:\program files\acad200\acad.exe /b name1.scr
В системе программирования VisualLISP предусмотрены специальные функции для считывания данных из текстового или какого-либо другого файла (atof (read-line f), где f—файловая переменная), после выполнения которых определенным переменным в программе VisualLISP присваиваются значения параметров, посчитанных в расчетной программе. Затем, командами, содержащимися в файле name.lsp, осуществляется автоматическое прочерчивание инструмента.
Ниже представлены основные процедуры и функции, используемые в программе:
(setq f (open "name.txt" "r")) – процедура, связывающая файловую переменную f с файлом обмена данных .txt.
(command "limits" "0,0" "420,300" ^c) – процедура, устанавливающая пределы чертежа. В дальнейшем команды, указываемые в кавычках, означают стандартные процедедуры ACAD’а, вызываемые Auto LISP’ом.
(setq a (atof(read-line f))) – процедура присваивания переменной а, значения первой строки текстового файла, причем функция atof переводит строковую переменную в переменную типа real.
(close f) – стандартная процедура, означающая конец работы с файлом.
(command "zoom" "180,180" "210,210" ^C) – процедура, увеличивающая окно с координатами, указанными в кавычках (без данного увеленичения не проставляется радиус дуги)
(setq pt2 (list x2 y2 )) – процедура, присваивающая списковой переменной pt2 два значения х2 и у2.
(command "line" pt0 pt1 ^c) – процедура рисования отрезка от точки pt0, к точке pt1.
(command "arc" pt1 pt2 pt3 ^c) – процедура вычерчивания дуги по трем точкам.
(command "linetype" "set" "center2" ^c)– процедура ACAD’а, устанавливающая новый тип линии -- "center2". (для линии центра вида сверху).
(setq ll( distance pd1 pd2 ) ) – функция, возвращающая в переменную ll расстояние от точки pd1 до точки pd2.
(command "dimlinear" pd1 pd9 pdi4 ^c) – процедура проставления вертикального или горизонтального размера от точки pd1, к точке pd9. Выноска размера устанавливается в точку pdi4.
(command "dimaligned" pt0 pt1 pdi1 ^c) – процедура проставления размера под углом базовой линии.
(command "dimradius" pt2 pdi2 ^c) – процедура проставления радиуса. Выноска осуществляется в точку pdi2.
(command "dimangular" "" pt0 pt4 pt1 ^c) – процедура проставления размера угла (по трем точкам pt0 pt4 pt1, в точку pt13).
(command "text" "366,10" "5" "0" "ВГТУ АМ971" ^c)– процедура вставления текста ВГТУ АМ971 размером 5 мм в точку с координатами 366,10.
(command "zoom" "e" ^c) – увеличение всего чертежа.
(command "erase" pause "all" "" ) – процедура удаления чертежа, после нажатия пользователем любой кнопки.
В программе можно использовать арифметические функции:
(setq xq3 (- x5 10 )) – переменной xq3 присваивается значение разности переменной х5 и 10.
(setq xc1 (+ a 15 )), (setq pt16 (list (+( - x4 (/ l 1.2))5) (+ b 7)))– то же самое – сложение, деление и вложенные операции.