AutoCAD API. Расчет кривизны дуги (bulge).

Автор Тема: AutoCAD API. Расчет кривизны дуги (bulge).  (Прочитано 588 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 1193
  • Карма: 219
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
Вопрос:
При построении дуговых элементов в качестве одного из параметров часто требуется указать кривизну дуги (bulge). В справочной информации AutoCAD .NET API указано:
Определение №1: Кривизна - это тангенс 1/4 центрального угла дуги (центральный угол дуги - α).
В различных других источниках можно найти дополнительные определения:
Определение №2: Кривизна - это отношение высоты сегмента дуги к половине длины его хорды (высота сегмента - h, длина хорды - d). Например, тут.
Определение №3: Кривизна - это тангенс угла, образуемого отрезками (угол β): первый - от середины дуги к ее начальной (или конечной) точке, второй - от начальной до конечной точки дуги. Например, тут.
Какое из дополнительных определений соответствует истине и может применяться для вычисления кривизны дуги?



Ответ:
Определение №2 и Определение №3 являются геометрически эквивалентными, т.к. tg(β) = h / (0.5 x d). Осталось выяснить, какая зависимость между углами α и β. Для этого выполним дополнительные построения:



Рассмотрим сперва треугольник OMC. Он прямоугольный, с двумя острыми углами: α/2 и γ. Отсюда получаем, что γ = 90° - α/2.
Далее, рассмотрим треугольник OBC. Он равнобедренный, с тремя углами: α/2 и β+γ = δ. Отсюда получаем, что (180° - α/2) / 2 = β+γ, следовательно: γ = 90° - α/4 - β.
Теперь, объединим эти два равенства:  90° - α/2 = 90° - α/4 - β. Отсюда получаем, что β = α/4, то есть, угол β равен четверти центрального угла дуги. А это как раз то, о чем идет речь в Определении №1.
Следовательно, оба дополнительных определения являются верными и для расчета кривизны можно применять любое из трех, исходя из имеющихся данных.
« Последнее редактирование: 08-06-2017, 17:24:15 от Дмитрий Загорулькин »

Оффлайн Debalance

  • ADN Club
  • ***
  • Сообщений: 212
  • Карма: 4
  • Баллы: 7548
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #1 : 08-06-2017, 15:51:23 »
Тема вычисления bulge (с разъяснением его геометрического смысла) уже довольно сильно "избита". В свое время я пользовался вот этой, одной из ранних статей на просторах интернета. Мне кажется там всё довольно подробно "разжёвано", так что и добавить особо нечего...

P.S.
Я удивлён что в справочной информации существует так много трактовок одного понятия. Надо бы "причесать" документацию.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 6694
  • Карма: 733
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #2 : 08-06-2017, 15:56:14 »
Я удивлён что в справочной информации существует так много трактовок одного понятия. Надо бы "причесать" документацию.
В Autodesk'овской документации есть только одна трактовка - п.1 Причем эта трактовка проходит через несколько документов (в том числе и ObjectARX/AutoCAD .NET API/DXF)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Debalance

  • ADN Club
  • ***
  • Сообщений: 212
  • Карма: 4
  • Баллы: 7548
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #3 : 08-06-2017, 16:03:59 »
В Autodesk'овской документации есть только одна трактовка - п.1
Ну да, это я тоже отчётливо помню. Вот хотя бы здесь можно посмотреть.
Тогда, спрашивается, откуда автор топика взял ещё два определения?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 6694
  • Карма: 733
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #4 : 08-06-2017, 16:06:33 »
Тогда, спрашивается, откуда автор топика взял ещё два определения?
Он где-то написал, что другие источники - это источники Autodesk? Читаем внимательно:

В различных других источниках можно найти дополнительные определения:
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Debalance

  • ADN Club
  • ***
  • Сообщений: 212
  • Карма: 4
  • Баллы: 7548
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #5 : 08-06-2017, 16:19:41 »
Он где-то написал, что другие источники - это источники Autodesk?
Я полагал что да, ибо про п.1 было сказано что это только в AutoCAD .NET API. Поэтому, (во избежание путаниц) надо бы приводить сразу ссылочки (это же не так трудно сделать). И потом, что это за источники? На сколько они надёжны? И стоит ли проверять их все и писать по этому поводу статьи?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 6694
  • Карма: 733
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #6 : 08-06-2017, 16:22:52 »
И потом, что это за источники? На сколько они надёжны? И стоит ли проверять их все и писать по этому поводу статьи?
Стоит, так как Дмитрий Загорулькин доказал, что все эти определения эквиваленты и:
Следовательно, оба дополнительных определения являются верными и для расчета кривизны можно применять любое из трех, исходя из имеющихся данных.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Debalance

  • ADN Club
  • ***
  • Сообщений: 212
  • Карма: 4
  • Баллы: 7548
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #7 : 08-06-2017, 16:27:48 »
... так как Дмитрий Загорулькин доказал ...
Я не ставлю под сомнение доказательство Дмитрий Загорулькин, я лишь прошу дополнить статью соответствующими ссылками на первоисточники.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 1193
  • Карма: 219
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #8 : 08-06-2017, 17:24:53 »
дополнить статью соответствующими ссылками на первоисточники
Добавил.

Оффлайн Debalance

  • ADN Club
  • ***
  • Сообщений: 212
  • Карма: 4
  • Баллы: 7548
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #9 : 09-06-2017, 13:07:16 »
Добавил.
Так получается, что это источник Autodesk!

Он где-то написал, что другие источники - это источники Autodesk?
Требую чтобы Ривилис дезавуировал свой вопрос.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 6694
  • Карма: 733
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AutoCAD API. Расчет кривизны дуги (bulge).
« Ответ #10 : 09-06-2017, 13:26:42 »
Так получается, что это источник Autodesk!
Это в терминах MAP 3D.
Требую чтобы Ривилис дезавуировал свой вопрос.
Щас! :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение