Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГГМ / AutoLISP / Программирование на AutoLISP в AutoCAD.ppt
Скачиваний:
36
Добавлен:
03.03.2016
Размер:
115.2 Кб
Скачать

Манипуляции с набором

примитивов

(ssget [“режим”] [<Точка1>] [<Точка2>]) (ssget) действует как команда select (ssget “w” ‘(0 0) ‘(5 5))

(ssget “L”)

(ssget “x” <фильтр>)

(ssget “x” (cons 0 “circle”)) – набор всех окружностей

(ssget “x” (list (cons 8 “1”) (cons 62 1))) набор красных примитивов на слое 1

(setq S (ssget …)) S – переменная набора, для ее использования:

Select objects:!S

(sslength <набор>) число примитивов.

(ssname <набор> <номер>) имя примитива из набора по номеру (от 0).

(setq S (ssadd)) пустой набор.

(setq SS (ssadd e)) набор SS, содержащий e (ssadd e1 SSS) SSS:=SSS+e1

(ssdel e S) S:=S-e

(ssmemb e S) e принадлежит S? возврат e иначе nil

Доступ к таблицам

Таблицы – описание поименованных объектов (слои, блоки, именованные виды, ПСК, типы линий, образцы штриховки и т.п.).

(tblnext <таблица> [<первый>]) (tblsearch <таблица> <элемент>)

Таблица “LAYER”, “LTYPE”, “VIEW”, “STYLE”, “BLOCK” …

Управление экраном

(graphscr)

(textscr)

(grdraw <от> <к> <цвет> [<подсветка>]) – рисует вектор

Цвет=-1 – рисование цветом фона

(grtext <№ бокса> <текст> [<подсветка>]) – вывод в зону экранного меню

(redraw) – перерисовка

(redraw e) – перерисовка примитива с именем e

(redraw e <режим>) Режим:

1 – перерисовка;

2 – стирание (рисование цветом фона);

3 – подсветка;

4 – убрать подсветку.

Геометрические вычисления

(angle <Tочка1> < Tочка2>) - возвращает угол в радианах относительно оси Х.

(distance <Tочка1> <Tочка2>) - возвращает расстояние между двумя точками.

(inters <Tочка1> <Tочка2> <Tочка3> <Tочка4> [<отрезок>]) – возвращает точку пересечения прямых или отрезков

Если аргумент <отрезок> присутствует и не равен NIL, возвращает точку пересечения бесконечных прямых, заданных отрезками Tочка1Tочка2 и Tочка3Tочка4.

Если аргумент <отрезок> отсутствует или равен NIL, возвращает точку пересечения отрезков Tочка1Tочка2 и Tочка3Tочка4. Возвращает NIL, если прямые (отрезки) не пересекаются.

(polar <Tочка> <угол> <длина радиус- вектора>) - возвращает точку в полярной системе координат.

(osnap <Tочка> <список режимов привязки>) - возвращает точку в окрестностях <Tочка>, соответствующую условиям привязки (если такая точка не будет найдена, возврат – NIL).

Преобразование чисел

(rtos <число> [<режим> [<точность>]]) -

возвращает строку, содержащую число в заданном формате.

<режим>(LUNITS):

1 - научный;

2 - десятичный;

3 - инженерный;

4 - архитектурный;

5 - дробные числа.

<точность>(LUPREC) - точность числа

Пример

программы

на

AutoLISP,

которая

рисует прямоугольник

полилинией

заданной ширины.

(defun c:rectang ( / cmde w pt1 pt2 os) (setq cmde (getvar “cmdecho”)) (setvar “cmdecho” 0 )

(setq os (getvar “osmode”)) (setvar “osmode” 0 )

(setq w (getreal “\nширина: ”)

pt1 (getpoint “\nпервый угол”) pt2 (getcorner pt1 “\nвторой угол”)

)

Соседние файлы в папке AutoLISP