На входе программы-параметризатора будут координата Х точки привязки; координата Уточки привязки; длина пилим;
L; диаметр цилиндра D. Требуется найти координату Х точки А (обозначим Ах), координату У точки А (обозначим А координату Х точки В (обозначим Ду); координату Уточки В (обозначим By). Очевидно,что:
Ex = Х + 5 + L
А^ =Х+5; D |
Ay =Y+°-\ By =Y+D-
Y 2 у 2
Будем считать, что функция отображения SHOW вызывается из головной функции и ей передаются параметры Л, Г. L. Результаты расчета нужно записывать в локальные переменные функции SHOW. В переменную //»/; «пюснтся текуи результаты расчетов, а в переменную 1st - список рассчитанных координат. Этот список будет состоять in ;ш\\ )jii;mchh)h ( ю'
((А, Л, точка,-i |
гочк;) И |
А и В), каждый из которых, в свою очередь, тоже будет списком их двух координат: Х и У: 1st Ниже представлена программа функции SHOW (см листинг. 8.1).
(DEFUN show ( х у d 1 / tmp 1st)
;х,у,s, 1 - параметры
; tmp, 1st - локальные переменные
( SETQ tmp ( + х 5 )); координата х точки А записывается в переменную tmp
( SETQ 1st ( LIST tmp (+y(/d2))));B переменную 1st записывается список координат точки А
; координата х точки В записывается в переменную tmp
( SETQ tmp ( + х 5 1)); в переменную tmp записывается список координат точки В
( SETQ tmp ( LIST tmp (+y(/d2))));B список 1st добавляется точка В
( SETQ 1st ( LIST 1st tmp ))
( COMMAND "СТЕРЕТЬ" "РАМКА"'(-10000 -10000 ) '(10000 10000)""); Удаляем все объекты
; Рисуем осевую линию красным цветом (код 1)
; и штрих-пунктирно (тип линии CENTER)
( COMMAND "ЦВЕТ" 1 "ТИПЛИН" "УСТАНОВИТЬ" "ОСЕВАЯ2" "")
( COMMAND "ПЛИНИЯ" ( LIST х у ) ( LIST ( + х 1 10 ) у )"")
; Рисуем контур детали белым цветом (код 1)
; и сплошной линией (тип линии CONTINUOS)
( COMMAND "ЦВЕТ" 7 "ТИПЛИН" "УСТАНОВИТЬ" "CONTINUOUS""")
(COMMAND "ПЛИНИЯ"
( LIST ( + х 5 ) у ); левая точка пересечения осевой с контуром
( CAR 1st); точка А
( CADR 1st); точка В
( LIST ( + х 1 5 ) у ); правая точка пересечения осевой с контуром
"") ( COMMAND "ЗЕРКАЛО" ( CAR 1st) "" ( LIST х у ) ( LIST ( + х 1) у ) "Н")
( COMMAND "ЦВЕТ" 1 ) (COMMAND "РАЗМЕР!"
"ГОР" ; размер горизонтальный
( CAR 1st) ; начало первой выносной линии - точка А
( CADR 1st); начало второй выносной линии - точка В
( POLAR ( CAR 1st) (/ PI 2 ) 30 ); размерная линия ; отстоит от контура на 30мм
""); размерный текст ставится автоматически ; Проставляем диаметр
(COMMAND "РАЗМЕР!" "ВЕР" ( CADR 1st) ( LIST ( CAR ( CADR 1st)) (- ( CADR ( CADR 1st)) d )) ( POLAR ( CADR 1st ) 0 30 ) ( STRCAT "%%c" ( RTOS d 2 2 ))) ( COMMAND "ПОКАЖИ" "ВСЕ" )
);конец функции
Листинг 8.1 - Функция расчета координат базовых точек и отрисовки
Размерные параметры конкретного изделия вводятся конструктором с клавиатуры. Функция ввода данных GF.TD1M входе не имеет параметров, а возвращает несколько чисел, объединенных в список. (DEFUN getdim (/Id) ; ввод длины и диаметра
(IN1TGET 7 ); запрет пустого ввода и ввода чисел <=0 ( SETQ 1 ( GETREAL "\пВведите длину валика: ")) (IN1TGET 7)
( SETQ d ( GETREAL "\пВведите диаметр валика: ")) ( LIST d 1); возвращаемое значение ); конец функции getdim
Листинг 8.2 - Функция ввода параметров
Головная функция выполняет подготовительные операции и циклический вызов двух остальных функций: GETDIM SHOW. Для удобства перед именем головной функции добавлены символы "С:". Тогда в AutoCAD появится новая команда
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.