Как найти радиус - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Сообщество > Разное > Как найти радиус

Как найти радиус

Закрытая тема
Поиск в этой теме
 
Непрочитано 04.06.2009, 11:43
#21
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


zenon, то есть ты решил? Да?
Makswell вне форума  
 
Непрочитано 04.06.2009, 12:03
#22
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


Вырази одну формулу через другую (т. е. избавься от угла a), а потом подставляй радиус пока он не совпадет с самим собой с достаточной точностью.
Я ведь выше уже подобное выкладывал (см. рис. с формулой).
RrRR вне форума  
 
Непрочитано 04.06.2009, 12:39
#23
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


RrRR, так в том-то вся и фишка, что zenon привёл систему, котрая сводится к уравнению, написанному тобой ещё 9 постов назад. Если честно, не знаю, что он хотел этим сказать?

RrRR, вообще-то то, что ты написал, я хотел услышать от zenon'а. Но видимо так и не услышу - он у нас только улыбается.

ЗЫ Солидворкер, я почему спросил-то? Погрешность, скажем прямо, жуткая у тебя получилась. И ещё. RrRR, подбирает в Экселе, я вот тоже когда-то давно-давно такой файл состяпал (см. прилож. файл). А ты как?

ЗЗЫ Хотя ладно - наверное пора закругляться.

Считаю, что в Автокаде всё это можно сделать только лиспом. Методом итераций. И, соответственно этому методу, радиус будет получен только с какой-либо некритичной пользователю погрешностью.

Как-то так:
Код:
[Выделить все]
;;;Нахождение радиуса дуги по её длине и хорде
;;;l - длина дуги
;;;h - длина хорды 
;;;fuzz - точность
(defun test (l h fuzz / r a h1)
  (setq	r  fuzz
	a  (/ (* 360 l) (* 2 pi r))
	h1 (* 2 r (sin (/ a 2)))
  )
  (while (> (- h h1) fuzz)
    (setq r  (+ r fuzz)
	  a  (/ (* 360 l) (* 2 pi r))
	  h1 (* 2 r (sin (* (/ a 2) (/ pi 180))))
    )
  )
  r
)
Результаты работы:
Цитата:
_$ (test 3900 3170 1)
1785
_$ (test 3900 3170 0.1)
1785.9
_$ (test 3900 3170 0.01)
1785.94
ЗЗЗЫ В принципе, думаю гуру типа Kpblc'a или VVA могут сделать этот код более красивым, применив рекурсию. Это им "с полпинка", как говорил уже здесь Андрей. Мой же слабый ум рекурсии пока не понимает, поэтому в итоге вот - цикл с неизвестным заранее количеством итераций.
Вложения
Тип файла: zip Вычисление требуемой длины хорды.zip (9.8 Кб, 113 просмотров)

Последний раз редактировалось Makswell, 04.06.2009 в 13:22. Причина: была небольшая ошибка в коде...
Makswell вне форума  
 
Непрочитано 04.06.2009, 14:11
#24
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Мда немного смущает строка (setq r (+ r fuzz) ...
то есть строчка (test 3900 3170 0.01) сделает "всего-навсего" 178594 цикла? конечно это для совсременных компов и не осень внушительная цифра, но если радиус раз в 40 больше случайно окажеться. Сейчас голова совсем не соображает - да и лень просто - но ИХМО подбирать надо методом если больше то вычитать, если меньше то прибывалять половину разницы между максимальным и минимальным значением.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 04.06.2009, 14:28
#25
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Согласен, за минимальное стартовое значение, принимаем половину хорды...

Код:
[Выделить все]
(defun test (l c / A R)
 (if (> l c)
  (progn (setq r (/ c 2.))
         (while (not (equal c (setq a (* 2 r (sin (/ l r 2)))) 1e-8))
          (setq r (+ r (/ (- c a) 4)))
         ) ;_  while
         r
  ) ;_  progn
  (princ "\n Длина дуги, не может быть короче хорды!!!")
 ) ;_  if
)
точность поставил постоянную - восемь знаков.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/

Последний раз редактировалось Елпанов Евгений, 04.06.2009 в 14:48. Причина: добавил проверку на валидность данных
Елпанов Евгений вне форума  
 
Непрочитано 04.06.2009, 15:24
#26
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 23,267
<phrase 1=


Цитата:
Сообщение от Makswell Посмотреть сообщение
ЗЫ Солидворкер, я почему спросил-то? Погрешность, скажем прямо, жуткая у тебя получилась. И ещё. RrRR, подбирает в Экселе, я вот тоже когда-то давно-давно такой файл состяпал (см. прилож. файл). А ты как?
Построил просто по заданным размерам и померил. Параметрика, всеж таки. А какая у меня, на твой взгляд погрешность? Я до целых округлял.
Солидворкер вне форума  
 
Непрочитано 04.06.2009, 15:52
#27
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Солидворкер Посмотреть сообщение
Построил просто по заданным размерам и померил. Параметрика, всеж таки. А какая у меня, на твой взгляд погрешность? Я до целых округлял.
Я так понял, это в солидворксе? Неплохо. В смысле Солид неплох.

А на счёт округления - по результатам получается, что если округлять, то однозначно получается 1786. Хотя это не важно. Просто интересен был твой метод.

PS Дима_ и Евгений, всё верно, согласен - так лучше. Я ведь так и говорил, придет кто-нибудь с мозгами нормальными и улучшит.
Makswell вне форума  
 
Непрочитано 04.06.2009, 16:18
#28
sudakov

инженер-конструктор
 
Регистрация: 16.10.2007
Киев
Сообщений: 544


Задача сводится к решению уравнения
kXarccos(a/X)-b=0,
где k=pi/180, a=Lхорды/2, b=Lдуги/2

А вот решить его я уже, к своему стыду, не могу.
sudakov вне форума  
 
Непрочитано 04.06.2009, 16:20
#29
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 23,267
<phrase 1=


Makswell, вообще, у меня получилось 1785,94605069, но я подумал, что радиус 1786 мм не очень круглый, да и разница в 1 мм для строителей не сильно важна...
Солидворкер вне форума  
 
Автор темы   Непрочитано 05.06.2009, 00:08
#30
sm44k410


 
Регистрация: 03.06.2009
Сообщений: 4


Всем спасибо за предложенные варианты. Сегодня нет времени отвечать на некоторые вопросы , постараюсь завтра . Я решил эту проблему с помощью EXCEL . Там есть такая функция "Подбор параметра" . Для получения результата я задал формулу где есть две известных мне велечин и одна не известная в том случае это был угол касательной к хорде ( это можно построить в ACAD ) , когда я ввёл произвольный угол , прописал размер хорды, естественно получил длину дуги не ту . А с помощью команды "Подбор параметра" я ввел что мне нужен размер дуги 3900 и EXCEL мне вывел угол касательной к хорде который мне нужен. После получения результата я смог построить то что мне требовалось.

P.S. Если бы была возможность построить по 3-м точкам , я бы не задавал этот вопрос.

Пост 7 Яне думаю что в школе это преподавали . Есть книга где что то описывается в этом роде
Теория по вопросу:
2. Выгодский Справочник по высшей математике. Гл. 39. Разыскание центра и радиуса окружности. стр 54 Москва 1956
Я не думаю что это школа или я..........

Пост 14 : Там нет такого . Есть в архикаде (вроде) , так что будте более точны в своих постах, не наводите тумана . если есть конкретные решения то опешите подробно .

Пост 17 : Есть компромисс но он устарел:
Выгодский М.Я. Справочник по элементарной математике. Москва 1966

Используется формула Гюйгенса для длины дуги. Формула дает приближенные значения.
p = 2l + 1/3*(2l + L)
p - длина дуги
L - длины хорды
l - длины хорды для половины дуги
Преобразуем формулу для вычисления хорды для половины дуги
l = (3p + L)/8
Проверьте правильность моего преобразования.

Далее чертим хорду с перпендикулярной линией по середине. На перпендикулярной линии откладываем точку хорды для половины дуги. Строим дугу по трем точкам.
Опять метод подбора.

Пост 20 . Сам не обезьяна знаю где что мерить. Имеются просто данные и всё. (Ехать для замера далеко).

Пост 22 . Подбор это для тех кто домики из спичек строит (я не в обиду).

Пост 29 . Каков был алгоритм решения ?

Последний раз редактировалось sm44k410, 05.06.2009 в 03:11. Причина: Добавить
sm44k410 вне форума  
 
Непрочитано 05.06.2009, 11:11
#31
Ильнур

КМ (+КМД), КЖ (КЖФ)
 
Регистрация: 30.05.2007
Далече
Сообщений: 25,645


Цитата:
Сообщение от sm44k410 Посмотреть сообщение
P.S. Если бы была возможность построить по 3-м точкам , я бы не задавал этот вопрос.
Правильно, нет же 3-х точек.
Но в Автокаде эту задачу с практической точностью можно решить очень и очень просто за 5 сек.
Строим любую дугу с заданной хордой и образмеряем длину дугу опцией "Длина дуги". Затем хватаем дугу за среднюю точку и таскаем вверх и вниз, глазами отслеживая за цифрами "длиной дуги". Поймали заданную, зафиксировали. Замерили радиус. Точность - в пределах дрожания пальцев для выбранного зума .
Цитата:
Я не думаю что в школе это преподавали
Есть такие вещи с тригонометрическими функциями - их даже в ВУЗах не преподают. Пример:пришлось как-то составлять градуировочную таблицу для горизонтальной емкости. Это типа площадь круга (объем по длине емкости), отсеченная линией уровня жидкости по мере заполнения жидкостью. Причем результат должен быть через каждый сантиметр высоты. Там и сектор, и сегмент, и аркфунции и тд. Есть нормы на точность и т.д., но нигде нет практичной методики - не знаю, как в старину делали (видимо на логарифмической линейке) - но пришлось в экселе спецтаблицу составлять...
__________________
Воскресе
Ильнур вне форума  
 
Непрочитано 05.06.2009, 12:20
#32
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 23,267
<phrase 1=


sm44k410, комментарий к посту 29
Алгоритм следующий:
1. Открываешь любой параметрический CAD
2. По данной хорде и длине дуги строится окружность
3. Замеряется радиус

По поводу метода подбора. Ты от него и не денешься никуда, поскольку у тебя неопределенное уравнение, для однозначного математического решения тебе нужно знать угол при вершине.
Солидворкер вне форума  
 
Непрочитано 05.06.2009, 12:22
#33
Ivan T

метрология (СИ массы и силы)
 
Регистрация: 15.10.2008
Новосибирск
Сообщений: 654
<phrase 1=


за слова про школу прошу прощения - погорячился. потом уже понял, что подбором параметра в Экселе проще всего (мне) - но народ уже дал правильный ответ.
так что - сорри за подкол.
Ivan T вне форума  
 
Непрочитано 09.06.2009, 11:04
#34
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Offtop: Только что вернулся с морей, - жуть как соскучился по умномуфоруму! Всем Привет!
Ivan T,
__________________
*...И Случай, бог изобретатель. *
skif58 вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Сообщество > Разное > Как найти радиус



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить минимальный радиус гиба троса, многожильного не изолированного провода? wwwmwww Инженерные сети 6 12.03.2009 01:28
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46
Как найти файл по содержащемуся в нем тексту? Visla AutoCAD 7 09.04.2004 12:16