Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METHOD / Основы САПР / AutoLISP2006.doc
Скачиваний:
88
Добавлен:
05.03.2016
Размер:
1.04 Mб
Скачать

Доступ к примитивам и средствам Автокада

ФУНКЦИЯ

Стр.

(entlast) возвращает «имя» последнего объявленного примитива

25

(entget ) возвращает «имя» указанного примитива

25

(entsel строка-подсказка) выбирается примитив

27

(entdel) позволяет удалять из ГБД примитив

27

(entnext имя_примитива) при вызове без параметра имя_примитива, возвращает имя первого не удаленного примитива в ГБД.

27

(assoc элемент_списка сложный_список) извлекает из сложного_списка элемент списка по ключу элемент_ списка.

28

(subst новый элемент старый элемент список) возвращает копию исходного списка с заменой всех найденных подсписков, идентичных старому элементу, на новый элемент.

28

(entmod список) функция обновляет информацию в ГБД.

28

(entupd список) обновляет изображение “подпримитива” в ГБД и на экране.

30

(handent метка) возвращает имя примитива, который указывается строковым параметром метка.

30

ПРИЛОЖЕНИЕ В

ПРИМЕР №1

Составить программу определения площади кругового сектора.

На рис.1 он выделен штриховкой.

Рис.1

(defun r()

;;Выбрать дугу и получить переменную ent с ее характеристиками

;; в формате DXF

(setq ent (entget (car (entsel"Entget ARC\n"))))

;;Получить значение радиуса по коду DXF 40

(setq rad (cdr (assoc 40 ent)))

;;Получить значение начального угла по коду DXF 50

(setq start_angl (cdr (assoc 50 ent)))

;;Получить значение конечного угла по коду DXF 51

(setq end_angl (cdr (assoc 51 ent)))

;;Определить значение центрального угла выбранной дуги

(setq angl (- end_angl start_angl))

;;Определить площадь сектора

(setq area_sec (* 0.5 rad rad angl))

;;Определить площадь равнобедренного треугольника

;;по двум сторонам и углу между ними

(setq area_3 (* 0.5 rad rad (sin angl)))

;;Определяем площадь сектора

(setq area_all (- area_sec area_3))

)

ПРИЛОЖЕНИЕ С DXF коды примитивов чертежа

Во второй колонке таблицы (..)отмечено, является ли этот подсписок точечной парой..

Коды общие для всех примитивов

Код DXF

(..)

Функциональное назначение подсписка

-1

Да

Имя примитива. Изменяется при загрузке

Чертежа.

0

Да

Тип примитива

1

Да

Первичное текстовое значение примитива

2

Да

Имя атрибута или блока

5

Да

Метка примитива, выраженная в виде

атрибута или блока

6

Да

Тип линии

7

Да

Имя гарнитуры шрифта

8

Да

Имя слоя

62

Да

Номер цвета

ARC

Код DXF

(..)

Функциональное назначение подсписка

0

Да

ARC (Дуга)

10

Нет

Центральная точка

40

Да

Радиус

50

Да

Начальный угол

51

Да

Конечный угол

CIRCLE

Код DXF

(..)

Функциональное назначение подсписка

0

Да

CIRCLE (Круг)

10

Нет

Центр

40

Да

Радиус

POLYLINE

Код DXF

(..)

Функциональное назначение подсписка

0

Да

POLYLINE (Полилиния)

10

Нет

Начальная точка

40

Да

Начальная ширина

41

Да

Конечная ширина

66

Да

Атрибуты (например, вертексы)

70

Да

Флаги полилидии:

1 – Полилиния замкнута отрезком,

2 – Полилиния замкнута кривой

LINE

Код DXF

(..)

Функциональное назначение подсписка

0

Да

LINE (Отрезок)

10

Нет

Начальная точка

11

Нет

Конечная точка

ATTDEF

Код DXF

(..)

Функциональное назначение подсписка

0

Да

ATTDEF (Определений атрибута блока)

1

Да

Значение по умолчанию

2

Да

Имя атрибута

3

Да

Запрос

7

Да

Стиль текста

10

Нет

Начальная точка текста

11

Нет

Точка выравнивания текста (если выравнен)

40

Да

Высота текста

41

Да

Коэффициент растяжения текста

50

Да

Угол поворота

51

Да

Угол наклона текста

70

Да

Флаги атрибута текста:

1 – Invisible (Скрытый),

2 – Constant (Постоянный),

3 – Verify (Контролируемый)

71

Да

Флаги генерации текста:

1 – Mirror on (Зеркальный),

4 – Upside-down (Перевернутый)

72

Да

Код выравнивания текста:

0 - Left (Левое),

1 – Centered (Центр),

2 - Right (Правое),

3 – Aligned (Выравненное ).

4 - "M" Centered (Середина)

5 - "F" Fit (Вписанный)

Соседние файлы в папке Основы САПР