Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 300033.doc
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
183.81 Кб
Скачать

ГОУВПО «Воронежский государственный технический

университет»

Кафедра компьютерных интеллектуальных технологий

проектирования

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 назв.

Рецензент д-р техн. наук, проф. О.Н. Чопоров

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. Е.Д. Федорков

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ГОУВПО «Воронежский

государственный технический

университет», 2009

Лабораторная работа № 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)))– то же самое – сложение, деление и вложенные операции.