Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Федя от 22-02-2017, 14:34:00
-
у ломаной Autodesk.AutoCAD.Geometry.Polyline если я не ошибаюсь, есть свойство GetBulgeAt(int n), где n - вершины ломаной включая начальную и конечную точку, для прямого участка Bulge=0, для криволинейного сегмента Bulge = tg(fi), fi - угол между направлением с текущей вершины на середину кривой и с текущей вершины на следующую. Вопрос в следующем, значение чего возвращает метод для последней вершины?
-
Если дальше продолжать строить полилинию, или замыкать - то будет браться это значение из последней вершины. Если полилиния незамкнута, то значение из последней вершины не используется.
-
да оно и по смыслу не нужно, но если число есть, значит есть какой-то в нём смысл, лучше бы тогда исключение получить
-
да оно и по смыслу не нужно, но если число есть, значит есть какой-то в нём смысл, лучше бы тогда исключение получить
Зачем получать исключение? Во всех случаях, когда ты не видишь смысла должно возникать исключение? :o
Допустим я меняю у полилинии свойство Closed на true. По твоей логике у последней вершины может быть только Bulge == 0.0. Вывод - получить замкнутую по дуге полилинию в твоём варианте невозможно.
-
Федя
В своём вопросе ты сделал сразу несколько ошибок:
1. Нет в AutoCAD ломаных, а есть полилинии.
2. Нет класса Autodesk.AutoCAD.Geometry.Polyline, а есть класс Autodesk.AutoCAD.DatabaseServices.Polyline
3. GetBulgeAt(int n) не свойство, а метод
4. Bulge - это тангенс четверти ( 1/4 ) угла дугового сегмента.
-
не спорю, я не программист, всё по памяти, не очень хорошей.
И всё таки, если сегмента нет, есть число, угла нет
-
и хотел спросить что такое четверть дуги, это длина? или угол?
-
я заметил, что две одинаковые ломаные имеют разные числа, причём это значение сохраняется при перемещении и вращении примитива.
кстати я не писал что GetBulgeAt() свойство, Свойство Bulge есть у CircularArcSegmet после взятия методом GetArcSegment, да и каждое свойство это метод
-
то есть это число служит для того чтобы работало замыкание? Оно случайное? Я когда замыкаю дуговым сегментом ломаная действительно замыкается какой-то дугой. В любом случае спасибо, про замыкание я не подумал, потыкаю немножко.
-
и хотел спросить что такое четверть дуги, это длина? или угол?
Угол.
-
4. Bulge - это тангенс четверти ( 1/4 ) угла дугового сегмента.
Вы знаете, я тоже хотел об этом написать. Но, как оказалось, это: Bulge = tg(fi), fi - угол между направлением с текущей вершины на середину кривой и с текущей вершины на следующую
геометрически - то же самое значение. :)
-
кстати не нашёл русскоязычного определения этого понятия
-
существует какая-либо документация по методам и свойствам polyline, так как некоторые методы не очевидны?
Например свойство ReferenceVector у объекта ArcSegment, может я с ним код свой могу упростить!
-
кстати не нашёл русскоязычного определения этого понятия
Ты про Bulge? По-русски это кривизна.
существует какая-либо документация по методам и свойствам polyline, так как некоторые методы не очевидны?
Например свойство ReferenceVector у объекта ArcSegment, может я с ним код свой могу упростить или сообщество!
1. Один вопрос - одна тема. Это правило форума.
2. Что за объект ArcSegment? Ты имеешь в виду CircularArc3d?
3. Всё существующая документация входит в состав ObjectARX SDK
-
да CircularArc3d
Термин кривизна, у нас не очень популяризован, хотя должно быть относится к элементарным, и по формулам - рассуждения, в наших, Российских учебниках избегают его употребление, может я куда-то не туда смотрю
-
Autodesk ObjectARX SDK for AutoCAD это именно то что нужно