Polyline bulge

Автор Тема: Polyline bulge  (Прочитано 8768 раз)

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

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Polyline bulge
« : 22-02-2017, 14:34:00 »
 у ломаной Autodesk.AutoCAD.Geometry.Polyline если я не ошибаюсь, есть свойство GetBulgeAt(int n), где n - вершины ломаной включая начальную и конечную точку, для прямого участка Bulge=0, для криволинейного сегмента Bulge = tg(fi), fi - угол между направлением с текущей вершины на середину кривой и с текущей вершины на следующую. Вопрос в следующем, значение чего возвращает метод для последней вершины?
« Последнее редактирование: 22-02-2017, 17:38:17 от Федя »

Отмечено как Решение Александр Ривилис 22-02-2017, 19:57:33

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Polyline bulge
« Ответ #1 : 22-02-2017, 15:00:17 »
Если дальше продолжать строить полилинию, или замыкать - то будет браться это значение из последней вершины. Если полилиния незамкнута, то значение из последней вершины не используется.

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #2 : 22-02-2017, 17:37:34 »
да оно и по смыслу не нужно, но если число есть, значит есть какой-то в нём смысл, лучше бы тогда исключение получить

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline bulge
« Ответ #3 : 22-02-2017, 19:57:12 »
да оно и по смыслу не нужно, но если число есть, значит есть какой-то в нём смысл, лучше бы тогда исключение получить
Зачем получать исключение? Во всех случаях, когда ты не видишь смысла должно возникать исключение?  :o
Допустим я меняю у полилинии свойство Closed на true. По твоей логике у последней вершины может быть только Bulge == 0.0. Вывод -  получить замкнутую по дуге полилинию в твоём варианте невозможно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline bulge
« Ответ #4 : 22-02-2017, 20:44:30 »
Федя
В своём вопросе ты сделал сразу несколько ошибок:
1. Нет в AutoCAD ломаных, а есть полилинии.
2. Нет класса Autodesk.AutoCAD.Geometry.Polyline, а есть класс Autodesk.AutoCAD.DatabaseServices.Polyline
3. GetBulgeAt(int n) не свойство, а метод
4. Bulge - это тангенс четверти ( 1/4 ) угла дугового сегмента.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #5 : 24-02-2017, 17:11:42 »
не спорю, я не программист, всё по памяти, не очень хорошей.
И всё таки, если сегмента нет, есть число, угла нет

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #6 : 24-02-2017, 17:15:23 »
и хотел спросить что такое четверть дуги, это длина? или угол?

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #7 : 24-02-2017, 17:19:55 »
я заметил, что две одинаковые ломаные имеют разные числа, причём это значение сохраняется при перемещении и вращении примитива.
кстати я не писал что GetBulgeAt() свойство, Свойство Bulge есть у CircularArcSegmet после взятия методом GetArcSegment, да и каждое свойство это метод

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #8 : 24-02-2017, 17:40:45 »
то есть это число служит для того чтобы работало замыкание? Оно случайное? Я когда замыкаю дуговым сегментом ломаная действительно замыкается какой-то дугой. В любом случае спасибо, про замыкание я не подумал, потыкаю немножко.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline bulge
« Ответ #9 : 24-02-2017, 17:57:08 »
и хотел спросить что такое четверть дуги, это длина? или угол?
Угол.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Polyline bulge
« Ответ #10 : 24-02-2017, 21:45:37 »
4. Bulge - это тангенс четверти ( 1/4 ) угла дугового сегмента.
Вы знаете, я тоже хотел об этом написать. Но, как оказалось, это:
Bulge = tg(fi), fi - угол между направлением с текущей вершины на середину кривой и с текущей вершины на следующую
геометрически - то же самое значение.  :)

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #11 : 24-02-2017, 22:47:41 »
кстати не нашёл русскоязычного определения этого понятия

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #12 : 24-02-2017, 23:05:33 »
существует какая-либо документация по методам и свойствам polyline, так как некоторые методы не очевидны?
Например свойство ReferenceVector у объекта ArcSegment, может я с ним код свой могу упростить!

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Polyline bulge
« Ответ #13 : 24-02-2017, 23:08:35 »
кстати не нашёл русскоязычного определения этого понятия
Ты про Bulge? По-русски это кривизна.
существует какая-либо документация по методам и свойствам polyline, так как некоторые методы не очевидны?
Например свойство ReferenceVector у объекта ArcSegment, может я с ним код свой могу упростить или сообщество!
1. Один вопрос - одна тема. Это правило форума.
2. Что за объект ArcSegment? Ты имеешь в виду CircularArc3d?
3. Всё существующая документация входит в состав ObjectARX SDK
« Последнее редактирование: 25-02-2017, 00:05:38 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ФедяАвтор темы

  • ADN OPEN
  • Сообщений: 33
  • Карма: -1
Re: Polyline bulge
« Ответ #14 : 27-02-2017, 08:34:35 »
да  CircularArc3d
Термин кривизна, у нас не очень популяризован, хотя должно быть относится к элементарным, и по формулам - рассуждения, в наших, Российских учебниках избегают его употребление, может я куда-то не туда смотрю