| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.01.2011, 11:00 | #1 | |
Програмка построения дуги по длине хорды и длине дуги
Конструктор
Омск
Регистрация: 19.06.2008
Сообщений: 35
|
||
Просмотров: 6552
|
|
||||
Конструктор Регистрация: 19.06.2008
Омск
Сообщений: 35
|
доработанный код
;*************** mLR.lsp ************************************************* ;Построение дуги по заданным параметрам ;------------------------------------------------------------------------- ;Параметры: ;P1, P2 — начальная и конечная точка хорды ;LenArc — длина дуги (princ "Новая функция: mLR") (defun C:MLR ( / p1 p2 LenArc LenHord k i kx ky diff Rad) (setq p1 (getpoint "\n Укажите первую точкку хорды:")) (setq p2 (getpoint p1 "\n Укажите вторую точку хорды:")) (setq LenHord (distance p1 p2)) (initget 7) (setq LenArc (getdist "\Укажите длину дуги: ")) (if (< LenArc LenHord) (princ "\n Длина дуги меньше длины хорды!") (progn (setq k (/ LenHord (* 2 LenArc))) (setq i 0.5) (while (<= i 180) (setq kx (sin (/ (* i Pi) 360))) (setq ky (/ (* k i Pi) 180)) (setq diff (abs (- (/ (fix (* 1000000 kx)) 1000000.0) (/ (fix (* 1000000 ky)) 1000000.0)))) (If (< diff 0.0000001) (progn (setq Rad (/ LenHord (* 2 (sin (/ (* i Pi) 360))))) (command "_arc" p1 (progn (command "_e" p2) (command "_r" Rad));end progn );end command (setq i 180) );end progn (setq i (+ 0.0001 i)) );end if );end while );end progn );end if (princ) );end defun Важно: Прога строит дуги по стягивающим углам от 0,5 до 180 град! Не удивляйтесь если для построения дуги с углом порядка 175 град придется немного подождать, т.к. проверка углов происходит с шагом 0,0001 град. Разница длины построенной дуги от введенного значения тысячные доли милиметра. Если по введенным параметрам дуга расчитывается с углом больше 180, она не строится и прога просто завершает работу. На этот случай никакого сообщения не выводится! Рекомендации по доработке приветствуются Последний раз редактировалось b_anton, 20.01.2011 в 06:21. |
|||
|
||||
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Построение дуги по хорде и длине дуги. | Verba | AutoCAD | 1 | 28.10.2009 13:29 |
Програмка для рисования дуги эллипса | solo123 | Программирование | 1 | 05.10.2009 16:43 |