Базовые команды FairCurveModeler. Приложение AutoCAD
Базовые команды Программы FairCurveModeler позволяют моделировать NURBS кривые (плоские и пространственные) высокого качества. Каркасы и сети, составленные из смоделированных кривых высокого качества, можно использовать для моделирования поверхностей штатной команой AutoCAD _Loft.Команда V_Curve (V_Curver) строит v-кривую.
Команда V_Elevate повышает степень кубической NURBzS кривой со сглаживанием кручения.
Команда V_BSpline строит b-сплайновую кривую.
Команда V_Subdiv уплотнет сплайновую кривую.
Команда V_Test (V_Testr, V_TestR) тестирует сплайновую кривую.
Команда V_Clothoid формирует участок клотоиды.
Процедура FrenchCurve аппроксимирует таблично заданную лекальную кривую.
Ограничения.
Рекомендации по моделированию и редактированию кривых линий.
Упражнения для изучения базовых команд программы FairCurveModeler.
Команда V_Curve (V_Curver)
строит v-кривую на опорной ломаной (на 3м полилинии AutoCAD), или на касательной ломаной (на 3м квадратичной сплайн-полилинии AutoCAD). V-кривая (виртуальная кривая) на выпуклых участках кривой принадлежит классу кривых 5-ого порядка гладкости. V-кривая аналитического выражения не имеет. Аппроксимируется кубической NURBS кривой в формате представления Безье (кубической NURBzS кривой).Для определения касательного вектора в концевых точках кривой можно задавать объекты вида отрезка и окружности. Кривизну в концевых точках кривой можно также задавать объектами вида отрезка и окружности. Отрезок определяет нулевую кривизну.
Команда: V_Curve
Select object [3D-polyline/3D-quadratic spline-polyline]: (выберите 3м полилинию / 3м квадратичную сплайновую полилинию)
For start tangent select object [Circle / 3d-polyline (1 segm)]
Если был указан объект для касательной, то запросит объект для кривизны
For start curvature select object [Circle / 3d-polyline (1 segm)]
For last curvature select object [Circle / 3d-polyline (1 segm)]
Если был указан объект для касательной, то запросит объект для кривизны
For last curvature select object [Circle / 3d-polyline (1 segm)]
Вариант команды V_Curver отрабатывается после выполнения команды V_Curve по уже введенным исходным граничным параметрам и строит v-кривую и выводит графики кривизны. Рекомендуется использовать для редактирования кривой "почти в реальном режиме времени” на исходной опорной или касательной ломаной. После первой отработки V_Curver и анализа графиков кривизны можно редактировать ломаную с помощью ручек и восстановить кривую и вывести графики кривизны одним нажатием "пробела”.
Команда: V_Curver
Команда V_Elevate
поднимает степень кубической NURBzS кривой до 6-ой с выравниванием крутки пространственной кривой. Рекомендуется использовать непосредственно после отработки команды V_Curve при моделировании пространственных кривых с кручением.Команда: V_Elevate
Select (cubic NURBzS): ( выберите NURBzS кривую)
Команда V_BSpline
аппроксимирует v-кривую в представлении кубической NURBzS кривой посредством b-сплайновой кривой 8-ой степени. Благодаря уникальной методике аппроксимации, b-сплайновая кривая наследует высокое качество v-кривой. При этом улучшает плавность кручения пространственных кривых и плавность кривизны кривых с точками перегиба.Рекомендуется использовать непосредственно после отработки команды V_Curve при моделировании плоских кривых с точками перегиба и при моделировании пространственных кривых с кручением.
Команда: V_BSpline
Select v-curve (cubic NURBzS): (выберите кубическую NURBzS кривую)
Команда V_Subdiv
уплотняет спецификацию кривой. Увеличивает количество сегментов сплайновой кривой вдвое. Увеличивает количество управляющих точек. Тип кривой и степень не изменяются. Уплотненная кривая геометрически совпадает с исходной кривой.Если NURBS кривая с неравномерной параметризацией, то уплотнение выполняется как для сплайновой кривой с равномерной параметризацией. При этом выдается предупреждающее сообщение
*** NURBS with non uniform nods
Команду рекомендуется использовать для более подробного локального редактирования NURBS кривой.
Команда: V_Subdiv
Select spline curve: (выберите сплайновую кривую)
Команда V_Test (V_Testr, V_TestR)
тестирует геометрические характеристики сплайновых кривых. Показывает график кривизны и график центров кривизны (эволюту) тестируемой сплайновой кривой.Команда: V_Test
Select spline curve:
Выберите примитив кривой линии вида СПЛАЙН, ОКРУЖНОСТЬ, ЭЛЛИПС, СПИРАЛЬ на чертеже. Сплайновые полилинии необходимо предварительно конвертировать в примитив СПЛАЙН.
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:(введите значение)
Задает тип графика: 0 - график центров кривизны, 1 - график кривизны.
Если была дана опция отображения графика кривизны, то задает коэффициент масштабирования.
Enter a scale with sign for curvature < -0.25>: (Введите коэффициент масштабирования для кривизны)
Задает максимальную ординату кривизны в отношении от длины кривой. При отрицательном значении график кривизны откладывается с противоположной стороны кривой от графика эволюты.
Enter a number of interpolated points < 100 >:(введите количество интерполируемых точек)
Задает количество точек 3м полилинии, которая будет представлять график кривизны или график эволюты сплайновой кривой на чертеже.
V_Testr - повторное тестирование после команды V_Test. Удобно использовать после выполнения команды V_Test. Для повторного отображения объекта достаточно нажать "пробел”. Рекомендуется использовать для редактирования b-сплайновой кривой "почти в реальном режиме времени”. После первой отработки V_Testr и анализа графиков кривизны можно редактировать b-сплайновую кривую с помощью ручек и выводить графики кривизны одним нажатием "пробела”.
V_Testb – тестирование с построением граничных касательных и соприкасающихся окружностей. Выполняется после команды V_Test или V_Testr. Формируются геометрические объекты - окружности кривизны и касательные векторы в граничных точках кривой, лекальная кривая в виде 3м полилинии интерполированных точек.
Комбинированное применение "лекальных кривых" и универсальных методов моделирования кривых
Предположим, локальный участок кривой совпадает с окружностью. Необходимо обеспечить постоянную кривизну на этом участке. Трудно ожидать от дизайнера точного ввода точек без привлечения самой окружности. В этом случае естественно применение "лекальной кривой” - окружности.
Другой случай – участок сопряжения кривой с прямолинейным отрезком или участок с точкой перегиба. И необходимо обеспечить монотонное изменение кривизны. В этом случае на помощь дизайнеру придет ”лекальная кривая” - клотоида (команда V_Clothoid в программе FairCurveModeler).
Кроме окружности и клотоиды дизайнер может использовать в качестве лекальной кривой другие "замечательные" кривые. В этом случае используется команда аппроксимации таблично заданных лекальных кривых FrenchCurve.
Команда V_Clothoid
формирует участок клотоиды (спирали Корню). Клотоида обладает уникальным свойством: кривизна линейно увеличивается от нулевого значения. Это свойство используется при моделировании функциональных кривых линий и поверхностей в САПР.Собственно клотоида определяется скоростью линейного изменения кривизны по длине кривой. Задается в процедуре длиной участка кривой от нулевой точки и радиусом кривизны в конечной точке участка спирали. Или фиксированной точкой, через которую должна пройти клотоида.
Начальный участок клотоиды от нулевой точки может выделяться различным способом:
- длиной участка от нулевой точки;
- значением радиуса кривизны в конечной точке.
Из начального участка можно выделить участок с заданным радиусом кривизны в начальной точке. Сформированный участок клотоиды аппроксимируется NURBzS шаблоном и может использоваться в комбинированном моделировании кривых линий.
Команда: v_clothoid
Задает динамический параметр клотоиды: длину l_max начального участка и радиус r_min в конечной точке участка.
Specify dynamic params for curve r_min <...>: (введите радиус в конечной точке)
Specify dynamic params for curve l_max <...>: (введите длину участка)
Формирует участок клотоиды.
Командная строка: Enter an option [Dynamic/Radius/Length/Point/Startr]:
Командная строка: Enter an option [Dynamic/Radius/Length/Point/Startr/Create]: (введите опцию)
Параметры и функции:
Dynamic - переопределяет динамический параметр клотоиды;
Radius – выделяет начальный участок клотоиды по радиусу r (r>r_min);
Length - выделяет начальный участок клотоиды по длине l (l
Create – фиксирует участок клотоиды в виде кубического NURBzS-шаблона или интерполированного массива точек.
Функция - Create
Командная строка: Enter an option [toNurbzs/toPolyline/eXit]: (введите параметр)
Параметры:
toNurbzs – формирует кубический NURBzS-шаблон участка клотоиды. Устанавливает количество сегментов кривой
Enter a number of segms of NURBzS: (введите значение).
toPolyline – формирует 3м полилинию на интерполированных точках клотоиды;
Процедура FrenchCurve. Аппроксимация таблично заданной лекальной кривой
Процедура на AutoLISP формирования NURBzS шаблона уникальной кривой по таблице дифференциальных характеристик кривой.Обращение к процедуре
(FrenchCurve xyz dxyz cvt).
Параметры кривой задаются тремя списками xyz, dxyz, cvt. Список xyz содержит точки (x y z), список dxyz содержит векторы касательных (dx dy dz), список cvt содержит значения кривизны cvt.
Для формирования списков рекомендуется написать программу на AutoLISP. Пример программы на AutoLISP формирования параметров для уникальной кривой «Окружность» приведен ниже
(defun TEST_Create_French_Curve ( / xyz dxyz cvt)
(setq xyz ( list (list -100. 0. 0.) (list 0. 100. 0.) (list 70.7107 70.7107 0.)
(list 0. -100. 0.) (list -100. 0. 0.)))
(setq dxyz ( list (list 0. 1. 0.) (list 1. 0. 0.) (list 0.707107 -0.707107 0.)
(list -1. 0. 0.) (list 0. 1. 0.)))
(setq cvt ( list 0.01 0.01 0.01 0.01 0.01))
(FrenchCurve xyz dxyz cvt)
)
Дизайнер для концептуального конструирования может ввести в набор "лекальных кривых” другие замечательные кривые. Для этого необходимо подготовить списки точек xyz командой (setq xyz (list (x0,y0,z0), (x1, y1, z1), …,(xn,yn,zn)), касательных векторов dxy командой (setq dxyz (list (dx0,dy0,dz0), (dx1, dy1, dz1), …,(dxn,dyn,dzn)) и значений кривизны cvt командой (setq cvt (list cvt0, cvt1, …,cvtn)) этих кривых. С помощью процедуры (FrenchCurve xyz dxyz cvt) программы FairCurveModeler на основе этих списков формируются их кубические NURBzS шаблоны.
Ограничения
При восстановлении v-кривой накладываются определенные ограничения на форму исходных ломаных (опорных или касательных ломаных):1) Угол между смежными звеньями ломаной должен быть больше 90 градусов;
2) Граничные касательные векторы не должны противоречить форме ломаной. Это значит, что
- проекция вектора на звено ломаной должна быть положительной;
- ориентация вектора и инцидентного звена и ориентация смежных звеньев ломаной должны быть одного знака;
- касательный вектор не должен совпадать с направлением первого / последнего звена ломаной;
- нельзя задавать касательный вектор, если в начале / конце ломаной задан прямолинейный участок;
3) Прямолинейный участок v-кривой задается не менее чем 3-мя точками, лежащими на одной прямой. При этом точки геометрически точно должны лежать на прямой линии.
4) Не должно быть совпадающих точек;
5) Выпуклый участок должен определяться не менее чем 3-мя звеньями ломаной. То есть не допускается "пилообразная” форма ломаной;
6) Количество точек ломаной должно быть не меньше 5 точек.
При нарушении этих ограничений фиксируется ошибка и выводится соответствующее сообщение.
При аппроксимации v-кривой b-сплайновой кривой 8-ой степени необходимо учитывать следующее.
1) Точность аппроксимации прямолинейных участков v-кривой будет меньше требуемой. Это необходимая плата за обеспечение изогеометричности. На прямолинейных участках необходимо уточнить приближение редактированием s-полигона.
2) Не всякая конфигурация узловых точек v-кривой допускает построение b-сплайновой кривой 8-ой степени без петель s-полигона. При возникновении петли программа сохраняет допустимую изогеометричную конфигурацию s-полигона предыдущего цикла итерации. Точность аппроксимации v-кривой будет меньше требуемой или завершится с фиксацией ошибки приближения. При неудачной аппроксимации рекомендуется более "выразительно" и плавно перераспределить точки по контуру моделируемой кривой. Выразительность и плавность распределения точек по контуру кривой означает следующее: 1) количество точек ломаной должно быть минимальным при адекватном задании формы контура моделируемой кривой, 2) длины звеньев ломаных и площади треугольников, составленных из смежных звеньев ломаной, должны изменяться по контуру кривой плавно. В полнофункциональной Программе при построении v-кривой можно использовать опцию Arrange перераспределения точек по контуру моделируемой кривой. Включенная опция перераспределяет точки по контуру кривой с плотностью пропорциональной кривизне.
Рекомендации по моделированию и редактированию кривых линий
При построении v-кривойСовет 1!
При построении v-кривой на опорной ломаной для плавного выхода кривой на фиксированный круг кривизны рекомендуется несколько граничных точек основной ломаной построить на этом круге кривизны.
При построении v-кривой на касательной ломаной рекомендуется несколько последних звеньев построить касательными к кругу кривизны.
При редактировании NURBS кривой в b-сплайновом формате
Совет 1! 1) Увеличение угла треугольника смежных вершин управляющей ломаной локально уменьшает кривизну. 2) M вершин на прямой определяют прямолинейный участок, где M больше степени NURBS кривой.
Совет 2! Три граничные вершины управляющей ломаной определяют: 1) касательную и 2) кривизну. Три граничные вершины на прямой линии определяют нулевую кривизну. Величина кривизны пропорциональна площади треугольника, составленного из граничных вершин.
Упражнения для изучения базовых команд программы FairCurveModeler
Для выполнения упражнений загрузите Программу командой Меню > Сервис > Приложения ... > (на панели Загрузка/Выгрузка Приложений найдите папку FairCurveModeler для AutoCAD с Программой, в папке с Программой выделите файл s_init.fas, нажмите кнопку Загрузить и затем кнопку Закрыть)Упражнения составлены так, что для освоения команд их необходимо выполнять строго последовательно. Упражнение Nb выполняется сразу после упражения Na.
Упражнение 1a. Построение v-кривой на опорной ломаной
Упражнение 1b. Редактирование v-кривой на опорной ломаной
Упражнение 2a. Построение v-кривой на касательной ломаной
Упражнение 2b. Редактирование v-кривой на касательной ломаной
Упражнение 3a. Аппроксимация v-кривой b-сплайновой кривой 8-ой степени
Упражнение 3b. Уплотнение и редактирование b-сплайновой кривой
Упражнение 4a. Построение начального участка клотоиды
Упражнение 4b. Построение плавной кривой сопряжения клотоиды и окружности
Упражнение 5а. Построение участка клотоиды по двум радиусам
Упражнение 5b. Построение плавной кривой сопряжения двух окружностей с монотонным изменением кривизны
Упражнение 6a. Поcтроение пространственной v-кривой
Упражнение 6b. Повышение степени NURBzS шаблона пространственной v-кривой с выглаживанием кручения
Упражнение 7a. Поcтроение пространственной v-кривой
Упражнение 7b. Аппроксимация пространственной v-кривой b-сплайновой кривой 8-ой степени
Упражнение 8. Аппроксимация NURBzS шаблоном таблично заданных кривых
Упражнение 1a. Построение v-кривой на опорной ломаной
Нарисуйте 3м полилинию. Для этого выделите и скопируйте нижеследующий текст от _3DPOLY до ;;;
_3DPOLY
-99.999,-0.451006,0.0
78.6365,61.7762,0.0
99.434,10.6245,0.0
38.2575,-92.3924,0.0
-32.4435,-94.5908,0.0
-86.888,-49.5023,0.0
_C
_zoom _all
;;;
Зафиксируйте курсор в командной строке для ввода команды. Нажмите ПК "мышки" и в контекстном меню выберите "вставить". Скопированная последовательность команд перейдет в командную строку. AutoCAD нарисует замкнутую 3м полилинию. Точки 3м полилинии принадлежат окружности радиуса 100
Постройте v-кривую. Выполните команду
Команда: V_Curve[ENTER]
Select object [3D-polyline/3D-quadratic spline-polyline]: (выберите 3м полилинию)
For start tangent select object [Circle / 3d-polyline (1 segm)]
For last tangent select object [Circle / 3d-polyline (1 segm)]
Программа построит v-кривую в NURBzS формате.
Упражнение 1b. Редактирование v-кривой на опорной ломаной
Выполняется сразу после выполнения Упражнения 1a.Повторите построение v-кривой. Выполните команду
Команда:V_Curver[ENTER]
Команда повторяет построение v-кривой по исходным данным. Выводит график эволюты кривой.
Выделите исходную опорную ломаную. С помощью узелка (ручки) переместите точку опорной ломаной.
Нажмите "Пробел".
Команда повторяет построение v-кривой по измененным исходным данным. Выводит график эволюты кривой.
Упражнение 2a. Построение v-кривой на касательной ломаной
Нарисуйте 3м полилинию. Для этого выделите и скопируйте нижеследующий текст от _3DPOLY до ;;;
_3DPOLY
-135.824,-7.78785,0.0
-40.1194,108.692,0.0
83.5374,86.7258,0.0
104.098,-8.22147,0.0
74.4656,-84.4208,0.0
-29.5589,-110.511,0.0
_C
_zoom _all
;;;
Зафиксируйте курсор в командной строке для ввода команды. Нажмите ПК "мышки" и в контекстном меню выберите "вставить". Скопированная последовательность команд перейдет в командную строку. AutoCAD нарисует замкнутую 3м полилинию. Точки 3м полилинии принадлежат оркужности радиус 100.
Установите системную переменную SPLINETYPE = 5.
Команда: splinetype[ENTER]
Новое значение SPLINETYPE <6>: 5[ENTER]
Постройте квадратичную сплайн-полилинию. Выполните
Команда:_PEDIT [ENTER]
Выберите полилинию или [Несколько]: (выберите нарисованную 3м полилинию)
Задайте опцию [Замкнуть/Вершина/СПлайн/Убрать сглаживание/Отменить]: сп[ENTER]
Команда построит квадратичную сплайн-полилинию.
Постройте v-кривую. Выполните команду
Команда:V_Curve[ENTER]
Select object [3D-polyline/3D-quadratic spline-polyline]: (выберите 3м полилинию)
Программа построит v-кривую в кубическом NURBzS формате.
Проверьте график кривизны v-кривой.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную v-кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:1[ENTER]
Enter a scale with sign for curvature < -0.25>: [ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны - окружность.
Упражнение 2b. Редактирование v-кривой на касательной ломаной
Выполняется сразу после выполнения Упражнения 2a.Выполните команду
Команда:V_Curver[ENTER]
Команда повторяет построение v-кривой по исходным данным. Выводит график эволюты кривой.
Выделите исходную касательную ломаную. С помощью узелка (ручки) переместите точку касательной ломаной.
Нажмите "Пробел".
Команда повторяет построение v-кривой по измененным исходным данным. Выводит график кривизны кривой.
Упражнение 3a. Аппроксимация v-кривой b-сплайновой кривой 8-ой степени
Нарисуйте 3м полилинию.Повторите упражнение 1a.
Программа построит v-кривую в кубичесом NURBzS формате.
Выполните команду
Команда:V_BSpline[ENTER]
Select v-curve (cubic NURBzS):(укажите v-кривую в кубическом NURBzS формате)
Программа построит b-сплайновую кривую 8-ой степени (NURBS кривую 8-ой степени на равномерной сетке с единичными весовыми коэффициентами).
Упражнение 3b. Уплотнение и редактирование b-сплайновой кривой
Выполняется сразу после выполнения Упражнения 3a.Выполните команду
Команда:V_Subdiv[ENTER]
Select spline curve:(укажите NURBS кривую)
Программа уплотнит b-сплайновую кривую 8-ой степени.
Выполните команду
Команда: V_Test[ENTER]
Select spline curve: (укажите построенную b-сплайновую кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:1[ENTER]
Enter a scale with sign for curvature < -0.25>: [ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны
Выполните команду
Команда:V_Testr[ENTER]
Команда повторяет построение графика кривизны.
Выделите b-сплайновую кривую. С помощью узелков (ручки) переместите вершины s-полигона на звено исходной ломаной.
после каждого перемещения нажимайте "Пробел".
Команда повторяет построение графика кривизны редактируемой b-сплайновой кривой. В результате будет построен участок сплайновой кривой, соприкасающийся со звеном. Сплайновая кривая сохраняет порядок непрерывности исходной сплайновой кривой.
Упражнение 4a. Построение начального участка клотоиды
Установите окно зумирования -50,-50 300,300. ВыполнитеКоманда: _zoom -50,-50 300,300
Постройте начальный участок клотоиды. Выполните
Команда: v_clothoid
Задайте динамический параметр клотоиды: длину l_max = 500 начального участка и радиус r_min = 50 в конечной точке участка.
Specify dynamic params for curve r_min <...>: 50
Specify dynamic params for curve l_max <...>: 500
Программа draws фантом клотоиды с длиной 500 и радиусом в конечной точке 50.
Задайте параметры для построения шаблона участка клотоиды.
Задайте радиус кривизны в конечной точке Radius = 60
Командная строка: Enter an option [Dynamic/Radius/Length/Point/Startr]: R[ENTER]
Specify end radius on clothoid curve:60[ENTER]
Программа draws участок клотоиды.
Постройте шаблон участка клотоиды в формате NURBzS кривой
Enter an option [Dynamic/Radius/Length/Point/Startr/Create]:c[ENTER]
Enter an option [toNurbzs/toPolyline/eXit]:n[ENTER]
Enter a number of segms of NURBzS:10[ENTER]
Программа draws NURBzS шаблон начального участка клотоиды.
Проверьте график кривизны участка клотоиды.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:0[ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график центров кривизны
Создайте граничные объекты и лекальную кривую
Команда:V_Testb[ENTER]
Программа нарисует лекальную кривую в виде 3м полилинии интерполированных точек, касательные отрезки и окружности кривизны в граничных точках.
Упражнение 4b. Построение плавной кривой сопряжения клотоиды и окружности
Выполняется сразу после выполнения Упражнения 4a.Контур кривой, составленный из участков клотоиды и дуг окружностей, имеет непрерывную кривизну, но график кривизны является кусочно линейным. Для многих приложений требуется более плавный график кривизны. В данном упражнении показывается методика построения плавной кривой сопряжения клотоиды и окружности.
Нарисуйте 3d polyline с привязками "конточка","ближайшая". Первые 6 точек снимите с шаблона клотоиды, 3 последние точки снимите с окружности.
Постройте v-кривую на 3м полилинии с граничными параметрами вида касательной и кривизны. Выполните команду
Команда:V_Curve[ENTER]
Select object [3D-polyline/3D-quadratic spline-polyline]: (выберите нарисованную 3м полилинию)
For start tangent select object [Circle / 3d-polyline (1 segm)]
For start curvature select object [Circle / 3d-polyline (1 segm)]
For last tangent select object [Circle / 3d-polyline (1 segm)]
For last tangent select object [Circle / 3d-polyline (1 segm)]
Программа построит v-кривую в NURBzS формате.
Проверьте график кривизны участка клотоиды.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:0[ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны.
Выделите окружность в конечной точке шаблона клотоиды. Убедитесь, что радиус кривизны построенной v-кривой совпадает с центром окружности.
Упражнение 5b. Построение плавной кривой сопряжения двух окружностей с монотонным изменением кривизны
Выполняется сразу после выполнения Упражнения 5a.Нарисуйте 3d polyline с привязками "конточка","ближайшая". Первые 3 точки снимите с первой окружности, 6 точек, начиная с начальной точки и заканчивая конечной точкой, снимите с шаблона клотоиды, 3 последние точки снимите со второй окружности.
Постройте v-кривую на 3м полилинии с граничными параметрами вида касательной и кривизны. Выполните команду
Команда:V_Curve[ENTER]
Select object [3D-polyline/3D-quadratic spline-polyline]: (выберите нарисованную 3м полилинию)
For start tangent select object [Circle / 3d-polyline (1 segm)]
For start curvature select object [Circle / 3d-polyline (1 segm)]
For last tangent select object [Circle / 3d-polyline (1 segm)]
For last tangent select object [Circle / 3d-polyline (1 segm)]
Программа построит v-кривую в NURBzS формате.
Проверьте график кривизны участка клотоиды.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:0[ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны. Выделите окружности в граничных точках шаблона клотоиды. Убедитесь, что радиусы кривизны построенной v-кривой совпадают с центрами окружностей.
Упражнение 6a. Поcтроение пространственной v-кривой
Выделите и скопируйте нижеследующий фрагмент текста, начиная с _3DPOLY, и кончая ;;;_3DPoly
0.0,0.0,0.0
30.0,20.0,10.0
30.0,50.0,20.0
0.0,70.0,30.0
-30.0,50.0,40.0
-30.0,20.0,50.0
0.0,0.0,60.0
_VPoint 1,1,1
_Zoom _All
;;;
Зафиксируйте курсор в командной строке AutoCAD и вставьте скопированный фрагмет (нажмите ПК "мышки", выберите из контекстного меню "Вставить").
AutoCAD нарисует пространственную 3м полилинию.
Постройте пространственную v-кривую. Выполните команду
Команда:V_Curve[ENTER]
Select object [3D-polyline/3D-quadratic spline-polyline]: (выберите нарисованную 3м полилинию)
For start tangent select object [Circle / 3d-polyline (1 segm)]
For last tangent select object [Circle / 3d-polyline (1 segm)]
Программа построит v-кривую в NURBzS формате.
Проверьте график кривизны кривой.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную v-кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:1[ENTER]
Enter a scale with sign for curvature < -0.25>: [ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны.
Из-за разрывности кручения график представляет пространственную кусочно разрывную линию.
Упражнение 6b. Повышение степени NURBzS шаблона пространственной v-кривой с выглаживанием кручения
Выполняется сразу после выполнения Упражнения 6a.Поднимите степень кубическиой NURBzS кривой. Выполните
Команда:V_Elevate[ENTER]
Select v-curve (cubic NURBzS):(укажите v-кривую)
Программа поднимет степень NURBzS шаблона v-кривой до 6-ой степени с коррекцией b-полигона для сглаживания кручения кривой.
Проверьте график кривизны кривой.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную v-кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:1[ENTER]
Enter a scale with sign for curvature < -0.25>: [ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны.
График представляет пространственную непрерывную линию.
Упражнение 7a. Поcтроение пространственной v-кривой
Повторите Упражнение 6a.Упражнение 7b. Аппроксимация пространственной v-кривой b-сплайновой кривой 8-ой степени
Выполняется сразу после выполнения Упражнения 7a.Постройте b-сплайновую кривую на v-кривой. Выполните
Команда:V_Bspline[ENTER]
Select v-curve (cubic NURBzS):(укажите v-кривую)
Программа построит пространственную b-сплайновую кривую 8-ой степени с плавным кручением
Проверьте график кривизны кривой.
Команда:V_Test[ENTER]
Select spline curve: (укажите построенную b-сплайновую кривую)
Specify options to display evolute or curvature graph of a curve
Enter an option for curvature graph [0 - Radiuses / 1 - Curvature ]<0>:1[ENTER]
Enter a scale with sign for curvature < -0.25>: [ENTER]
Enter a number of interpolated points < 100 >:[ENTER]
Программа выведет график кривизны в виде плавной пространственной линии.
Упражнение 8. Аппроксимация NURBzS шаблоном таблично заданных кривых
Постройте NURBzS шаблон окружности с помощью процедуры FrenchCurve. Отладочная процедура AutoLISP (defun TEST_Create_French_Curve ..... ) готовит данные для построения NURBzS шаблона по таблице точек (список xyz), векторов касательных (список dxyz), кривизн (список cvt).Выделите нижеследующий фрагмент текста от (defun.. до ;;;
(defun TEST_Create_French_Curve ( / xyz dxyz cvt)
(setq xyz ( list (list -100. 0. 0.) (list 0. 100. 0.) (list 70.7107 70.7107 0.)
(list 0. -100. 0.) (list -100. 0. 0.)))
(setq dxyz ( list (list 0. 1. 0.) (list 1. 0. 0.) (list 0.707107 -0.707107 0.)
(list -1. 0. 0.) (list 0. 1. 0.)))
(setq cvt ( list 0.01 0.01 0.01 0.01 0.01))
(FrenchCurve xyz dxyz cvt)
) (TEST_Create_French_Curve)
_zoom _all
;;;
Подведите курсор к командной строке AutoCAD и вставьте скопированный текст в командную строку. AutoCAD выполнит процедуру AutoLISP TEST_Create_French_Curve. Построит NURBzS шаблон окружности.
Проанализируйте текст процедуры. Попробуйте осмысленно изменить значения точек, касательных векторов и кривизн и постройте другой NURBzS шаблон.