Тема: Расчет промежуточных точек Spline
Добрый день.
Необходимо расчитать промежуточные точки Spline. Не могу найти описание как вытащить все необходимые для этого параметры.
Помогите пожалуйста. Советы, ссылки на описания и т.д.
Спасибо
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Расчет промежуточных точек Spline
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый день.
Необходимо расчитать промежуточные точки Spline. Не могу найти описание как вытащить все необходимые для этого параметры.
Помогите пожалуйста. Советы, ссылки на описания и т.д.
Спасибо
> Беликов Сергей
В каком смысле "рассчитать"? Получить координаты или вывести формулу описывающую кривую?:)
К тому же сплайн (полноценная NURBS-кривая) может содержать либо два типа управляющих вершин: "Сontrol point" и "Fit Point", либо только "Control point". Еще бывают 2D-Spline, образованные из полилинии командой pedit>spline, там вершины называются "vertex" и принцип построения кривой по-моему другие.
Это что касается моих наблюдений над сплайнами. Более детально нужно в хелпе смотреть. Там все есть.
Расчитать - получить координаты.
Речь идет ополноценном Spline.
Расчитать — получить координаты.
И?..
Есть методы GetControlPoint(Index) и GetFitPoint(Index).. есть свойства сплайнов NumberOfControlPoints и NumberOfFitPoints для определения границ цикла считывания..
Спасибо поигрался, НО
Эти свойства дают возможность считать значения точек сплайна. Как найти точки между ними.При аппроксимации сплайном расчитываются коэффициенты уравнения для каждого узла и затем с их помощью расчитывается любая точка "внутри" сплайна. Как вытянуть эти значения из ACAD.
> Беликов Сергей
Забыть про VBA и написать программу на lisp или ObjectARX
Спасибо за совет. Но мне проще написать программу аппроксимации чем освоить новый язык.
> Беликов Сергей
Я не зря предложил эти языки - для них задача решается в пару строк и главное (!!!) апроксимация будет абсолютно такой, как и в самом AutoCAD. Придумать же на VBA алгоритм апроксимации сплайна, который будет выдвать в точности теже точки, что и сам AutoCAD - задача значительно более сложная. Но если ты не ищешь легких путей - вперед! :)
Если я правильно понял, на LISP есть возможность использовать алгоритмы ACAD. Можно ли это делать на VBA. Именно это и интересует.
Спасибо
> Беликов Сергей
Именно этот алгоритм на VBA использовать нельзя - только на Lisp или ObjectARX. Об этом я все время и говорю...
Александр подскажите какую литературу почитать.
Програмирую много лет только на VB.
Какой язык выбрать.
Спасибо
> Беликов Сергей
Я бы посоветовал ObjectARX (C++), хотя если много лет пишешь на VB и очень нехочется с него "слезать" и программы должны работать на AutoCAD 2006, 2007 и т.д. (но не младше) то можешь попробовать воспользоваться VB.NET
Спасибо.
В любом случае нужен доступ к алгоритмам ACAD.
Где можно прочитать об этом (названия функций ...)
> Беликов Сергей
Уточни. ObjectARX или C# или VB.NET?
> Беликов Сергей
Можно воспользоваться Autodesk.AutoCAD.DatabaseServices.Curve.GetPointAtParameter()
Задавая параметры от минимального до максимального можно получить набор точек, лежащих на сплайне.
Следует учесть, что Spline - это производный от Curve класс.
Есть еще один вариант - более точный и красивый - преобразовать Spline в Autodesk.AutoCAD.Geometry.NurbCurve3d (геометрическое представление сплайна) и затем воспользоваться одним из методов Autodesk.AutoCAD.Geometry.Curve3d.GetSamplePoints() (NurbCurve3d производный класс от Curve3d).
Александр огромное спасибо.
Буду искать описание этих функций.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Расчет промежуточных точек Spline
Форум работает на PunBB, при поддержке Informer Technologies, Inc