Какой порядок B-сплайна в кате?

Поверхностное моделирование и дизайн.

Какой порядок B-сплайна в кате?

Сообщение MackManus » 10 май 2010 10:41

Уважаемые форумчане, кто-нибудь знает, B-сплайн какого порядка используется в кате при построении кривой с помощью "3D Curve" через т.н. Control Points или, говоря математически, задавая вершины определяющего многоугольника?
Сразу скажу, что занимаюсь судовыми поверхностями. В системе SeaSolution, например, в хелпе есть прямое указание, что используются B-сплайны 4-го порядка. В хелпе кати подобной информации не нашел.
MackManus
Новичок
Новичок
 
Сообщения: 4
Зарегистрирован: 10 апр 2010 19:45

Re: Какой порядок B-сплайна в кате?

Сообщение iak » 10 май 2010 21:22

Согласно хелп CATIA: "A B-Spline is a Curve in the 3D-Space (x, y, z - Space), which contains more than one segment. Each segment can be considered as a Bézier Curve. These Bézier Curves are merged very well to avoid Control Points and knots at the segment boundaries. The parameter values at the segment boundaries are called knots. These knots can be distributed equal spaces. Uniform B-Spline (UBS) or arbitrary distributed, Non Uniform B-Spline (NUBS)."

Я думаю, под B-spline вы имели ввиду именно это.
Что касается 3D curve, то при создании её по Control Points порядок сегмента определяется в Max Order, как указано на изображении ниже.

А вообще, тип любой геометрии, а также порядок и количество сегментов в NURBS кривой, можно определить с помощью функции Geometric Information в FreeStyle или в Generative Shape Design.

Что касается использования максимального порядка и количества сегментов в кривой, то вы должны руководствоваться не столько указаниями той или иной системы, а подвергать ваши кривые и поверхности анализу на кривизну и плавность перехода от одной кривой (поверхности) к другой на границах их сшивки. Необходимо стремиться описать требуемую геометрию кривой меньшего порядка и с количеством сегментов 1, если это возможно. Если нет, то увеличивать не порядок, а количество сегментов в первую очередь. И не забывать об условиях обеспечения сшивки. В автомобильном дизайне, например, принято не превышать порядок кривой, равный 6. Это позволяет избежать "волнистости" кривой (поверхности).
Вложения
Geometric information.JPG
Пиктограмма функции Geometric Information
Geometric information.JPG (1.03 КБ) Просмотров: 8112
Блок параметров функции 3D curve
iak
Участник
Участник
 
Сообщения: 169
Зарегистрирован: 10 янв 2009 22:31
Откуда: Minsk

Re: Какой порядок B-сплайна в кате?

Сообщение MackManus » 11 май 2010 15:10

Спасибо за развернутый ответ, но
1. R сожалению, инструмент Geometric Information применительно к кривой показывает лишь количество вершин задающего многоугольника. Эта информация взята не из хелпа, а получена опытным путем.
2. Параметр Max Order для меня пока остается загадкой. Order переводится как Порядок. В диалоговом окне его можно менять от 5 до 16. Но почему тогда не меняется кривая? Ведь чем выше становится порядок В-сплайна, тем меньше он напоминает свой управляющий многоугольник и становится более гладким. Например, В-сплайн порядка 2 совпадает со своим многоугольником и представляет собой ломаную. С другой стороны, если это MAX Order, то возможно имеется ввиду, что это порядок, который будет максимально допустим системой при построении некой кривой. Тогда возникает вопрос, какой для системы минимальный порядок?
3. Я с Вами полностью согласен, что с прикладной точки зрения не важно, какой конкретно В-сплайн используется в системе. Важно что он есть и есть инструменты и методы его редактирования. В данном случае мой интерес пока является чисто теоретическим с прицелом на то, что при решении каких-либо сложных прикладных задач в будущем немного информации о внутренней математике системы может ой как пригодиться.
Вообще говоря, в перспективе планируется начать поиск решения задачи параметризации судовой поверхности в рамках решения задачи оптимизации характеристик судна по одному или нескольким критериям.
MackManus
Новичок
Новичок
 
Сообщения: 4
Зарегистрирован: 10 апр 2010 19:45

Re: Какой порядок B-сплайна в кате?

Сообщение iak » 13 май 2010 18:03

MackManus писал(а):инструмент Geometric Information применительно к кривой показывает лишь количество вершин задающего многоугольника.


И не только. Важны, также:
1) тип кривой -- от этого зависит, какими инструментами с ней бороться;
2) количество компонентов (Безье кривых) по U в составе NURBS кривой;
3) обрезанная эта кривая (trimmed) или в своих естественных границах -- от этого зависит, как с ней работать.

Кривая Безье -- это частный случай кривой NURBS , которая, в свою очередь, является частным случаем B-spline, который, опять же, является частным случаем Spline-кривой ( не путать со Spline в CATIA из Generative Shape Design -- это параметрическая кривая, и управляется она иным способом).
Вы говорите "многоугольник" о ломанной линии, соединяющей полюса кривой-- дело вкуса! Но, в случае с порядком 2, многоугольник как-то не звучит. Это уже прямой отрезок. Мне больше нравится "управляющий дескриптор кривой". Эта ломанная, также, определяет направление кривой, и первый и последний отрезки этой ломаной всегда касательны к кривой в первой и последней точках соответственно. В CATIA она называется "mesh"-- тоже вводит в заблуждение (ведь есть понятие mesh, как поверхностная или объемная апроксимация точной геометрии в различных приложениях, связанных с прочностным, динамическим, термическим и т.д. анализом модели, а также в приложениях, связанных с восстановлением поверхностей по облакам оцифрованных точек).

MackManus писал(а):Ведь чем выше становится порядок В-сплайна, тем меньше он напоминает свой управляющий многоугольник и становится более гладким.


Если менять прядок (количество полюсов, описывающих кривую) в сторону увеличения, то форма кривой не изменится, а многоугольник (т.е. ломаная линия, соединяющая полюса кривой) будет стремиться приблизиться по форме к этой кривой.
Кривая изменится, если менять её порядок в меньшую сторону от оригинала, например, с 6 к 5 или ниже. Дело в том, что согласно математике кривых Безье, определенную геометрическую форму можно описать кривой с неким минимальным порядком -- это условие достаточности. Увеличение порядка-- избыточность, а вот уменьшение его -- недостаточность!

MackManus писал(а):Например, В-сплайн порядка 2 совпадает со своим многоугольником и представляет собой ломаную.


Кривая Безье 2-го порядка-- это и есть прямая. Это единственный случай, когда геометрия кривой совпадает с её многоугольником. Кстати, например, окружность можно представить кривой Безье 8-го порядка.

MackManus писал(а):С другой стороны, если это MAX Order, то возможно имеется ввиду, что это порядок, который будет максимально допустим системой при построении некой кривой. Тогда возникает вопрос, какой для системы минимальный порядок?


Вы совершенно правы.
В случае, когда 3D curve строится по Control points, Max Order -- это максимально достижимая величина при создании монокривой, т.е. кривой Безье. Если количество введенных вами полюсов превышает это значение, то система создает мульти-кривую, состоящую из нескольких кривых Безье только 6 порядка (для обеспечения сшивки G2 (по кривизне) в граничных точках). Минимальный порядок в этом случае ограничен 5-ю.
В случае Near points ( создание апроксимированной кривой по набору точек -- это наиболее распростаненный способ построения кривых на практике) вы не сможете построить просто кривую Безье, или отдельный компонент (сегмент) в мульти-кривой NURBS с порядком выше, указанным в Max Order, если вы используете режим Auto. С Near points вы, также, можете регулировать количество компонентов (кривых Безье) в мульти-кривой NURBS. Минимальный порядок ограничен 2-мя.

MackManus писал(а):с прикладной точки зрения не важно, какой конкретно В-сплайн используется в системе. Важно что он есть и есть инструменты и методы его редактирования. В данном случае мой интерес пока является чисто теоретическим с прицелом на то, что при решении каких-либо сложных прикладных задач в будущем немного информации о внутренней математике системы может ой как пригодиться.


Вот выше я и постарался о теории немного расказать. Надеюсь, что-то получилось.

MackManus писал(а):Вообще говоря, в перспективе планируется начать поиск решения задачи параметризации судовой поверхности в рамках решения задачи оптимизации характеристик судна по одному или нескольким критериям.


Думаю, критерии, связанные с построением кривой по Control points врядли вы будете использовать. При модификации существующей кривой -- допускаю.
В эти критерии, возможно, попадут Max Order, Segmentation, как в случае построения кривой по Near points, с добавлением Max Deviation (максимальное отклонение кривой от заданных точек) в качестве управляющего или же контролирующего параметра.
И скорей всего, в создании геометрии судна, вы не ограничитесь только B-spline кривыми и поверхностями (Безье, NURBS), а задействуете также другие типы кривых (типа Spline в CATIA) и поверхностей.
iak
Участник
Участник
 
Сообщения: 169
Зарегистрирован: 10 янв 2009 22:31
Откуда: Minsk

Re: Какой порядок B-сплайна в кате?

Сообщение MackManus » 14 май 2010 15:24

Хорошая у нас с вами дискуссия получается. Спасибо что так подробно разобрали мой пост. Вы немного заблудились в дебрях вычислительной геометрии. Не сочтите за оскорбление, но это так. Но видимо по части поверхностного моделирования в кате у вас опыт побогаче моего будет.
Сам я по образованию не математик, а инженер-кораблестроитель, поэтому не скажу, что знаю её (математику) досконально. Кстати я ещё не совсем уловил, то что мы обсуждаем относится к Дифференциальной или все-таки к Вычислительной геометрии? Ладно, это так, к слову.
Все комментировать не стану, скажу только что:
1. С точки зрения математики, любая NURBS кривая представляет собой составную кривую, состоящую из нескольких кривых. В одних случаях эти компоненты – кривые Безье, в других – нет.
2. Инструмент Geometric Information показывает не компоненты, о которых я сказал в п.1, а нечто другое. Что - мне пока не совсем понятно, тут вы скорее лучше знаете.
3. Уравнение кривой NURBS позволяет описывать В-сплайны, кривые Безье, а также интерполировать любые конические сечения (окружность, эллипс, параболу, гиперболу). Поэтому можно сказать, что В-сплайн и кривая Безье являются частными случаями кривой NURBS. Кстати именно по причине универсальности NURBS эти кривые получили такое широкое распространение в САПР.
4. Не стоит путать три характеристики кривой NURBS: степень, порядок и кол-во управляющих точек. Кол-во управляющих точек кривой NURBS не есть её порядок. Изменение их кол-ва не влияет на порядок. В частности в этом замечательное отличие NURBS от кривых Безье. Я так понимаю, в кате под Порядком понимают именно кол-во управляющих точек, тем самым вводя пользователей в заблуждение. Возможно дело в том, что в разных странах терминология немного отличается.
5. Не стоит путать кривые Безье и NURBS – между ними есть принципиальные отличия.

Таким образом, я заключаю, что в кате под Order (порядок) применительно к NURBS понимается кол-во управляющих точек, а не порядок кривой в математическом смысле. Пока чисто визуально предполагаю, что используются кривые пятого порядка.

Может быть кто-то ещё из специалистов откликнется и поможет разобраться с вопросом?

PS. Предполагая критику в свой адрес сразу дам ссылку на источники, из которых были взяты знания по части кривых и поверхностей:
- Кунву Ли. "Основы САПР. CAD/CAM/CAE" из-во Питер. 2004. Гл. 6 и 7.
- Д. Роджерс, Дж. Адамс. "Математические основы машинной графики" из-во Мир. 2001. Гл. 5.
Надеюсь, что компетентность авторов книг сомнения не вызывает.
MackManus
Новичок
Новичок
 
Сообщения: 4
Зарегистрирован: 10 апр 2010 19:45

Re: Какой порядок B-сплайна в кате?

Сообщение iak » 15 май 2010 19:22

MackManus писал(а):Вы немного заблудились в дебрях вычислительной геометрии. Не сочтите за оскорбление, но это так. Но видимо по части поверхностного моделирования в кате у вас опыт побогаче моего будет.
Сам я по образованию не математик, а инженер-кораблестроитель, поэтому не скажу, что знаю её (математику) досконально.


Заблудился? Допускаю. Оскорбился? Да бог с вами. Наоборот, спасибо! Этим вы сподвигли меня на то, чтобы немного глубже влезть в теорию B-spline с точки зрения математики. Ведь я тоже инженер-механик и все премудрости математики предпочитаю видеть в виде геометрических построений. Тем не менее пришлось полистать подобную вашим переводное издание:
-"Математика и САПР" Волков Н.Г., Москва "Мир", 1988 г.

А также поюзать интернет на сей счет и помучать CATIA.
Не буду спорить о теории кривых, а перейду непосредственно к ответу на ваш ворос:

MackManus писал(а):B-сплайн какого порядка используется в кате при построении кривой с помощью "3D Curve" через т.н. Control Points или, говоря математически, задавая вершины определяющего многоугольника?


Так вот, поисследовав в этом направлении 3D curve и задействовав IGES-интерфейс для анализа B-spline кривых, могу вам сообщить:
-- С помощью функции 3D Curve посредством Control Points в случае, когда количество вершин определяющего многоугольника превышает значение параметра Max Order, создается B-spline типа NUPBS (Non Uniform Polynomial B-Spline) 5-й степени или же 6-го порядка ( согласно математическому определению этих терминов).
Вы это можете проверить путем экспорта вашей кривой в формат IGES с опцией Curve and surface type: Standard (the curve and surface types created in the Part are kept as is). И далее, открыв IGES-файл в текстовом редакторе, проанализировать вашу геометрию как объект типа 126 согласно спецификации.

Для примера, в архиве 3Dcurve.zip содержатся 2-ва документа, созданных в CATIA V5R20 :
3Dcurve.CATPart -- CATIA документ;
3Dcurve.igs -- IGES файл.
А вот линки на еще два документа:
http://www.uspro.org/documents/IGES5-3_forDownload.pdf -- спецификация IGES версии 5.3;
http://cao.etudes.ecp.fr/documents/atelier_15062006_vinter.pdf -- документ с математическими выкладками относительно кривых и поверхностей применительно к CATIA V5 (правда более старых релизов).

Вот содержание 3Dcurve.igs:

START RECORD GO HERE. S 1
1H,,1H;,5HPart1,11H3Dcurve.igs,44HDASSAULT SYSTEMES CATIA V5 R20 - http://www.3G 1
ds.com,32HCATIA Version 5 Release 20 SP 2 ,32,75,6,75,15,5HPart1,1.0,2, G 2
2HMM,1000,1.0,15H20100515.172150,0.001,10000.0,15HIhar_Andreichyk,5HMINSG 3
K,11,0,15H20100515.172150,; G 4
406 1 0 0 0 0 0 000010201D 1
406 0 0 1 15 0D 2
126 2 0 0 10000 0 0 000000001D 3
126 0 0 7 0 0D 4
406,1,10H3D Curve.1,0,0; 1P 1
126,6,5,0,0,1,0,0.0,0.0,0.0,0.0,0.0,0.0,233.9140651,467.8281303, 3P 2
467.8281303,467.8281303,467.8281303,467.8281303,467.8281303,1.0, 3P 3
1.0,1.0,1.0,1.0,1.0,1.0,-32.49378586,-201.2228851,0.0, 3P 4
-93.25659943,-132.6556854,0.0,-106.6355667,-68.54812622,0.0, 3P 5
-114.9974213,-5.555480957,0.0,-114.9974213,85.86746979,0.0, 3P 6
-71.51577759,171.7158508,0.0,-29.14904404,213.5251312,0.0,0.0, 3P 7
467.8281303,0.0,0.0,0.0,0,1,1; 3P 8
S 1G 4D 4P 8 T 1


Где:
126 --тип объект как RATIONAL B-SPLINE CURVE ENTITY;
6 -- количество сегментов в определяющем многоугольнике ( количество вершин -1);
5 -- степень базовой функции (степень B-spline).
А согласно теории B-spline кривых:
порядок = степень + 1 -- надеюсь, здесь я не ошибся.

MackManus писал(а):2. Инструмент Geometric Information показывает не компоненты, о которых я сказал в п.1, а нечто другое. Что - мне пока не совсем понятно, тут вы скорее лучше знаете.


А вы попробуйте разобрать вашу 3D curve с помощью функции Fragmentation во FreeStyle.
И еще сюда из хелпа CATIA: "For elements whose type is NURBS curve, Parameterized NURBS curve or NURBS surface, a (*) will be appended to the displayed type when the element is not rational, i.e., a polynomial one."
Вложения
3Dcurve.zip
(22 КБ) Скачиваний: 353
iak
Участник
Участник
 
Сообщения: 169
Зарегистрирован: 10 янв 2009 22:31
Откуда: Minsk

Re: Какой порядок B-сплайна в кате?

Сообщение MackManus » 16 май 2010 08:25

Спасибо за квалифицированный ответ. Я сам что-то не догадался сделать экспорт в IGES и изучить файл.
Таким образом, совместными усилиями нам удалось установить что:
1. Катя позволяет строить NURBS-кривые любых степеней n, при 1 ≤ n ≤ 15. Соответственно, любого порядка k, при 2 ≤ k ≤ 16.
2. Значение MaxOrder определяет максимальное значение количества вершин управляющего многоугольника, при превышении которого система автоматически строит NURBS 6-го порядка или 5-ой степени.

В общем, ответ на свой вопрос я получил. Будет время, надо будет узнать, можно ли задавать степень или порядок кривой принудительно и построить, например, по 14-ти управляющим точкам NURBS-кривую 10-ой степени.
MackManus
Новичок
Новичок
 
Сообщения: 4
Зарегистрирован: 10 апр 2010 19:45

Re: Какой порядок B-сплайна в кате?

Сообщение karma87 » 24 май 2010 22:01

Вот еще
Методы изогеометрической аппроксимации сплайнами ФИЗМАТЛИТ 2006 , в паблике есть.
karma87
Участник
Участник
 
Сообщения: 148
Зарегистрирован: 20 июн 2009 01:33


Вернуться в Shape Design & Freestyle

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1