Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Выполнение команд AutoCAD из AutoLISP

 

Очень важной является функция command, которая имитирует ввод пользователя в командной строке AutoCAD с клавиатуры.

Синтаксис функции:

(command [<параметр1> [<параметр2>... [<параметрN>]... ] ])

Возвращаемое значение - nil.

Функция может вызываться без параметров - это равносильно нажатию клавиши <Esc>, что прерывает действие активной команды. Если параметры используются, то их количество может быть любым. Каждый из параметров обычно является текстовой строкой, имитирующей набор символов строки на клавиатуре с последующим нажатием клавиши <Enter>. Возвращаемое значение - nil.

Предположим, что нужно нарисовать отрезками рамку формата размером 210 на 297 (левый нижний угол рамки взять в точке 0,0 и верхний правый - в точке 210,297). Вспомним, что команда рисования отрезков в системе AutoCAD называется ОТРЕЗОК (LINE).

Листинг 9.1. Построение прямоугольника (вариант 1)

(command "_LINE" "0,0" "210,0" "210,297" "0,297" "_С")

Можно указанное построение выполнить в несколько строк (в несколько обращений к функции command).

Листинг 9.2. Построение прямоугольника (вариант 2)

(command "_LINE" "0,0" "210,0")

(command "210,297" "0,297")

(command "_С")

В листинге 9.2 использовано трехкратное обращение к функции command, в каждом из которых количество параметров должно быть не меньше одного.

Можно координаты точек задавать не как строку, а как списки из двух чисел целого или вещественного типа.

Листинг 9.3. Построение прямоугольника (вариант 3)

(command "_LINE" '(00) ' (210 0) ' (210 297) ' (0 297) "_С")

Апостроф опускать нельзя, т. к. выражение (210 0) без апострофа будет рассматриваться как обращение к функции 210 с аргументом 0.

Там, где требуется ввод чисел, можно в качестве аргументов подавать функции command именно числа, а не строки с числами, например:

(command "_COLOR" "1") (command "_COLOR" 1)

Оба выражения выполняют одну и ту же операцию (в качестве текущего устанавливают красный цвет, который имеет номер 1), но в первом случае номер цвета задается как строка, а во втором - как целое число.

Можно в одной функции command обратиться сразу к нескольким командам системы AutoCAD, например:

(command "_COLOR" 1 "_ZOOM" "_E")

Эта программная строка выполнит команду ЦВЕТ (COLOR) для установки красного цвета и команду ПОКАЗАТЬ (ZOOM) с опцией ГРАНИЦЫ (EXTENTS).

Для имитации варианта, когда пользователь вместо ввода опции нажимает на клавишу <Enter>, в качестве параметра функции command выступает текстовая строка нулевой длины (""). Например, если бы вы в примере, приведенном в листинге 9.1, захотели завершить команду _LINE не опцией _с (замкнуть прямоугольник), а нажатием на клавишу <Enter> (не замыкать прямоугольник), то соответствующая программная строка выглядела бы так:

(command "_LINE" "0,0" "210,0" "210,297" "0,297" "")

 

 

<== предыдущая лекция | следующая лекция ==>
Символы AutoLISP | Логические функции
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 749; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.