Вы можете использовать системы компьютерной математики для подготовки геометрического определителя (ГО) Эрмита для последующей аппроксимации аналитической кривой посредством NURBS-кривой командой V_Hermite. ГО Эрмита представляется в виде таблицы координат точек опорной ломаной, векторов первых производных, положительных значений кривизны, длин сегментов кривой между опорными точками и единичных векторов кривизны. В файле HTM ( Sample Clothoid ) дается пример фрагмента программы на MathCAD для подготовки ГО Эрмита клотоиды. В файле PDF ( Sample Helix
>) дается пример фрагмента программы на Mathematica для подготовки ГО Эрмита пространственной конической спирали. Подготовленная таблица из системы компьютерной математики переносится в MS Excel. Примеры подготовленных ГО Эрмита различных аналитических кривых даются в файле MS EXcel 'Library_of_analytic_curves.xmls' в папке Samples данного приложения.
ГО Эрмита из MS Excel переносится в таблицу AutoCAD по стандартной схеме создания таблицы на основе связи с MS Excel. Таблицу необходимо разблокировать и для всех ячеек таблицы установить формат 'десятичный'. После этого можно вызвать команду V_Hermite и указать таблицу. Приложение аппроксимирует ГО Эрмита посредством NURBzS кривой.
Дополнительные команды FairCurveModeler. Приложение AutoCAD
Дополнительные команды приложения FairCurveModeler for AutoCAD предназначены для моделирования лекальных кривых на основе аналитических кривых.
При конструировании изделий с функциональными кривыми часто возникает необходимость использования
кривых со специфическими свойствами. Например:
- коническая кривая для моделирования окружностей, эллипсов, парабол и гипербол широко используется в
технике;
- цепная линия используется для моделирования элементов конструкций вида куполов или висячих конструкций;
- линия наискорейшего спуска используется для синхронизации времени движения частиц под действием тяжести
от произвольной точки кривой до концевой точки;
- спираль Архимеда с эволютой вида окружности широко используется в технике, например, в эвольвентных
зацеплениях.
- спираль Корню (или клотоида) с линейным законом изменением кривизны используется при трассировании
дорог и в других областях техники.
Команда V_Hermite дает возможность использования различных аналитических кривых. Метод аппроксимации геометрического определителя Эрмита обеспечивает точное и изогеометрическое приближение аналитических кривых.
Такие фундаментальные аналитические кривые, как конические кривые, метод построения v-кривой моделирует геометрически точно непосредственно в команде V_Model.
Можно моделировать участки клотоиды без применения математических пакетов. Построение участка клотоиды с различными опциями построения и аппроксимации реализовано командой
V_Clothoid.
Команда V_Hermite и процедура FrenchCurve аппроксимируют таблично заданную
лекальную кривую.
Команда V_Clothoid формирует участок клотоиды.
Упражнения для изучения дополнительных команд программы FairCurveModeler.
Command V_Hermite
Дизайнер для концептуального конструирования может ввести в набор "лекальных кривых” другие аналитические кривые. С помощью математических пакетов или без них необходимо подготовить таблицы в виде ГО Эрмитов в MS Excel или непосредственно в AutoCAD.
Можно использовать непосредственно AutoLISP-процедуру FrenchCurve построения NURBzS кривой на ГО Эрмита (Упражнение 2).
Для этого необходимо подготовить списки точек 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 шаблоны.
Для формирования списков необходимо написать программу на 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)
)
Команда 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м полилинию на интерполированных точках клотоиды;
Упражнения для изучения дополнительных команд программы FairCurveModeler
Упражнение 1. Аппроксимация NURBzS шаблоном ГО Эрмита, заданного таблицей Excel командой V_Hermite
Упражнение 2. Аппроксимация NURBzS шаблоном ГО Эрмита, заданного списками с помощью LISP-процедуры Frenchurve
Упражнение 3. Построение начального участка клотоиды командой V_Clothoid
Упражнение 4. Построение участка клотоиды по двум радиусам командой V_Clothoid
Упражнение 1. Аппроксимация NURBzS шаблоном ГО Эрмита, заданного таблицей Excel командой V_Hermite
Постройте NURBzS шаблон окружности с помощью процедуры FrenchCurve. Отладочная
процедура AutoLISP (defun TEST_Create_French_Curve ..... ) готовит данные для построения
NURBzS шаблона по таблице точек (список xyz), векторов касательных (список dxyz), кривизн (список cvt).
Скачайте файл
Library_Analytic_Curves.xlsx
Откройте скачанный файл в Excel
Откройте AutoCAD
Выполните команду _Table
Включите переключатель 'Создание таблицы по данным из внешней электронной таблицы'
Нажмите кнопку 'Вызов диалогового окна диспетчера связи с данными'
В диалоговом окне нажмите строку 'Создайте новую связь с данными Excel'
В окне 'Ввод имени связи с данными' введите какое-нибудь <имя>.
В окне 'Новая связь с данными Excel <имя>' укажите загруженный файл Excel 'Library_Analytic_Curves.xlsx'
В окне 'Новая связь с данными Excel <имя>' в области 'Выбрать лист Excel для связи:' выберите Clothoid.
Включите переключатель 'Связь со всем листом'
[OK][OK][OK]
Укажите позицию таблицы на графическом поле.
Выделите все ячейки в таблице> ПК > Блокирование > Разблокировано
Выделите все ячейки в таблице> ПК > Формат данных > Десятичное число
Выполните команду V_Hermite
Укажите таблицу.
Приложение нарисует NURBzS шаблон Клотоиды
Проверьте качество кривой V_Model > ViewCvt
Упражнение 2. Аппроксимация NURBzS шаблоном ГО Эрмита, заданного списками с помощью LISP-процедуры Frenchurvel
Постройте 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 шаблон.
Упражнение 4. Построение начального участка клотоиды
Установите окно зумирования -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
Программа рисует фантом клотоиды с длиной 500 и радиусом в конечной точке 50.
Задайте параметры для построения шаблона участка клотоиды.
Задайте радиус кривизны в конечной точке Radius = 60
Командная строка: Enter an option [Dynamic/Radius/Length/Point/Startr]: R[ENTER]
Specify end radius on clothoid curve:60[ENTER]
Программа рисует участок клотоиды.
Постройте шаблон участка клотоиды в формате 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]
Программа рисует 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м полилинии интерполированных точек, касательные отрезки и окружности кривизны в граничных точках.
Упражнение 4. Построение участка клотоиды по двум радиусам командой V_Clothoid
Выполните
Command: v_clothoid
Установите параметры клотоиды: длину l_max = 500 начального участка и радиус r_min = 50 in в конечной точке участка.
Specify dynamic params for curve r_min<...: 50
Specify dynamic params for curve l_max<...: 500
Программа нарисует фантом клотоидной спирали длиной 500 и радиуса 50 в конечной точке.
Установите параметры для построения участка клотоиды.
Установите радиус кривизны в конечной точке Radius = 60
Command line: Enter an option [Dynamic/Radius/Length/Point/Startr]: R [ENTER]
Specify end radius on clothoid curve:60 [ENTER]
Программа нарисует участок клотоиды.
Установите радиус кривизны в начальной точке участка Radius = 300
Command line: Enter an option [Dynamic/Radius/Length/Point/Startr]: S [ENTER]
Specify end radius on clothoid curve:300 [ENTER]
Программа нарисует участок клотоиды.
Постройте 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]
Программа нарисует NURBzS модель участка клотоиды.
Проверьте график кривизны участка клотоиды.
Command:V_Test [ENTER]
Select spline curve: (выберите кривую)
Specify Params to Dispay Evolute or Curvature graph of 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]
Программа отобразит график кривизны
Постройте граничные параметры кривой и интерполированные точки кривой.
Command:V_Testb [ENTER]
Программа нарисует граничные касательные векторы, граничные окружности кривизны и ломаную интерполированных точек.