Applications of nanoCAD
Приложения nanoCAD
Введение
1. Назначение
2. Термины и определения
3. Геометрические определители
4. Состав комплекса
5. Технология работы в комплексе
6. Описание команд Web FairCurveModeler для экспорта ГО кривых и поверхностей в nanoCAD
7. Описание команд v_nano.lsp приложения nanoCAD
8. Примеры моделирования кривых высокого качества
9. Примеры моделирования поверхностей высокого качества
Введение
Тысячи инженеров начинают изучение САПР с AutoCAD. AutoCAD дал, де факто, стандарт графического интерфейса САПР. Практически каждый инженер знаком с графическим интерфейсом AutoCAD. Даже есть такой подход в обучении САПР: изучите AutoCAD, переучиться на интерфейс другого САПР не составит труда.
Одним из веских аргументов в пользу применения AutoCAD является возможность легкой разработки пользовательских приложений. Эта возможность обеспечивается, прежде всего, встроенным языком AutoLISP.
Теперь такая возможность есть у пользователей российского продукта nanoCAD. Команды nanoCAD понятны для пользователя AutoCAD. И, главное, с недавнего времени nanoCAD понимает AutoLISP. Это удобно для простого пользователя. Это находка для профессиональных разработчиков. Огромное количество приложений, разработанных для AutoCAD, можно довольно просто адаптировать под nanoCAD.
Предлагается комплекс Web FairCurveModeler + (nanoCAD + приложение v_nano.lsp) моделирования функциональных кривых линий и поверхностей технических изделий. Приложение v_nano.lsp является адаптацией приложения v_test.lsp партнерского продукта Autodesk и служит для обеспечения интерфейса между Web FairCurveModeler и nanoCAD и для редактирования NURBS кривых и поверхностей с контролем качества. Комплекс Web FairCurveModeler + (nanoCAD + приложение v_nano.lsp) обеспечивает высокую скорость изогеометрического моделирования на различных видах исходной геометрии и непревзойденное качество функциональных кривых и поверхностей по критериям плавности (кривых линий и поверхностей класса F). Описываются команды и практические приемы моделирования кривых и поверхностей высокого качества в комплексе Web FairCurveModeler + (nanoCAD + приложение v_nano.lsp).
1. Назначение
Существует широкий класс технических объектов с функциональными кривыми и криволинейными поверхностями.
Проектные, функциональные характеристики проектируемого объекта напрямую определяются геометрическими параметрами функциональных кривых линий и поверхностей, образующих форму объекта.
Важный частный случай функциональных поверхностей - динамические поверхности. Динамические поверхности это поверхности, активно взаимодействующие со средой. Обводы самолетов, судов, рабочие поверхности органов почвообрабатывающих машин, лопаток насосов, турбин и т.п. относятся к динамическим поверхностям.
К функциональным кривым относятся профили кулачков в кулачковых механизмах, трассы дорог.
Если красота дизайна проектируемого объекта определяет потребительские характеристики объекта, то к функциональным поверхностям можно также отнести поверхности, определяющие "эстетическую функциональность” проектируемого объекта. Это криволинейные поверхности архитектурных объектов, внешний дизайн автомобилей, бытовых приборов и т.п. В автомобильном дизайне (Automotive design) такие поверхности называются поверхностями класса А [Farin 2006].
Комплекс Web FairCurveModeler + (nanoCAD + приложение v_nano.lsp) предназначен для моделирования функциональных кривых линий и поверхностей технических изделий.
Приложение nanoCurveModeler является адаптацией приложения FairCurveModeler – партнерского продукта Autodesk [Muftejev 2014].
Комплекс Web FairCurveModeler + (nanoCAD + приложение v_nano.lsp) обеспечивает непревзойденное качество функциональных кривых и поверхностей по критериям плавности (кривых линий и поверхностей класса F). Методы моделирования кривых обеспечивают:
1) Геометрическую устойчивость восстановления кривой на геометрических определителях (ГО) различных видов. Форма моделируемой однозначно с точностью до количества точек перегиба регламентируется формой исходного ГО;
2) Высокий порядок гладкости моделируемой кривой. Это важнейшая характеристика функциональных кривых (аэродинамических профилей, профилей кулачков, линий трасс дороги). Порядок гладкости характеризует локальную плавность. Функциональные кривые должны иметь не менее чем третий порядок гладкости для безударного плавного движения материальной точки или среды по криволинейной траектории.
3) Минимальное количество экстремумов кривизны (в частности, если точки опорной ломаной лежат на конической кривой, то моделируемая v-кривая геометрически точно аппроксимирует коническую кривую). Экстремумы кривизны функциональных кривых приводят к необоснованным энергетическим потерям при эксплуатации изделий с функциональными кривым и поверхностями.
4) Малую величину вариации кривизны на кривой (разность между максимальной и минимальной величиной кривизны).
5) Малую величину потенциальной энергии. Важный интегральный параметр, связанный с плавностью кривой и с энергетическими потерями движения материальной точки или среды по криволинейной траектории. Чем меньше потенциальная энергия кривой, тем меньше энергетические потери
1) при высоких скоростях движения среды по траектории кривой [Муфтеев 2013 5], когда среда ведет себя как упругое тело; 2) при движении материальной точки или среды с трением по вогнутой траектории (например, при движении почвы по рабочей поверхности плуга [Муфтеев 2013 1]); 3) при движении транспортного средства с трением по криволинейной траектории в плане [Муфтеев 2013 4].
Перечисленные критерии плавности легко контролируются при моделировании кривых и поверхностей в графической среде nanoCAD. Выводятся интегральные характеристики кривой и графики кривизны и эволюты.
Тестирование приложения показывает возможность существенного улучшения NURBS кривых, смоделированных в машиностроительных CAD-системах и в специализированных CAD-системах, предназначенных для моделирования кривых высокого качества класса А (например, в Alias Design).
2. Термины и определения
Определитель кривой или поверхности – математическая модель кривой или поверхности. Состоит из геометрической части и 1) алгоритма генерации сколь угодно плотного множества точек кривой на геометрической части определителя или 2) [процедуры восстановления сплайновой кривой на геометрической части определителя] + алгоритма вычисления на сплайновой кривой или поверхности произвольной точки и дифференциальных параметров на геометрической части определителя сплайновой кривой.
Геометрический определитель (ГО) кривой или поверхности – геометрическая часть определителя - совокупность фиксированных геометрических элементов и параметров для построения кривой или поверхности;
NURBS – Nonuniform rational basis spline. Рациональный сплайн на неравномерной сетке, представленный через базисные сплайны (b-сплайны) или базисные полиномы Бернштейна;
B-сплайновая кривая – частный случай представления NURBS кривой через базисные сплайны – b-сплайны;
Кривая Безье – параметрический полином, представленный на базисе полиномов Бернштейна;
B-полигон – управляющая ломаная кривой Безье, координаты вершин которой представляют коэффициенты представления кривой через базисные полиномы Бернштейна;
NURBzS кривая - частный случай представления NURBS кривой в виде рациональной сплайновой кривой Безье;
S-полигон – управляющая ломаная сплайна, координаты вершин которой представляют коэффициенты представления сплайна через b-сплайны;
GB-полигон – управляющая ломаная NURBzS кривой, последовательность b-полигонов, координаты вершин которых представляют коэффициенты кривой Безье.
Параметрическая сетка d(u) – последовательность фиксированных значений параметра d(u): u[-m], …, u[0],…u[k], …,u[k+m] (внутреннего параметра сплайна r(u) степени m c количеством сегментов k-1), на которой определяются базисные функции (b-сплайны или полиномы Бернштейна).
Вектор узлов (knots) – определенная последовательность значений узлов параметрической сетки для определения NURBS кривой с помощью одной универсальной формулы. Вектор узлов управляет форматом представления сплайновой кривой.
Замкнутый (clamped) s-полигон – формат представления s-полигона b-сплайновой кривой. Концевые точки s-полигона совпадают с концевыми точками сплайновой кривой. Векторы концевых звеньев совпадают с векторами производных в концевых точках сплайновой кривой.
Открытый (float) s-полигон – формат представления s-полигона b-сплайновой кривой. Любая последовательность m+1 вершин единообразно определяет сегмент сплайна. Данный формат используется в CAD-системах для представления замкнутой сплайновой кривой. SB-алгоритм. Алгоритм преобразования сплайна, представленного через рациональную b-сплайновую кривую с s-полигоном, в представление реальной сплайновой кривой Безье с gb-полигоном.
BS-алгоритм. Алгоритм преобразования реальной сплайновой кривой Безье с gb-полигоном в представление рациональной b-сплайновой кривой с s-полигоном.
Геометрическая NURBzS кривая (GNURBzS кривая) – геометрическая сплайновая кривая Безье, которая представляет составную кривую, составленную из сегментов-кривых Безье произвольной степени m. Смежные сегменты сплайна стыкуются в общих точках с общими касательными (кривые класса G1) и с общими значениями кривизны (кривые класса G2). В отличие от реальной сплайновой кривой Безье степени m класса Cm, геометрическая сплайновая кривая Безье не может быть преобразована с помощью BS-алгоритма в рациональную b-сплайновую кривую степени m класса Cm.
V-кривая – виртуальная кривая, которая, в общем случае, не имеет аналитического выражения. В определителе кривой используется процедура генерации точек кривой, построенная на геометрическом определителе.
NURBS-поверхность – декартово произведение NURBS направляющих кривых rd(u[i], v) на NURBS образующие кривые rf(u,v[j]). Геометрический определитель NURBS поверхности – s-фрейм, весовые коэффициенты вершин s-фрейма, векторы узлов (knots(u), knots(v)).
NURBzS-поверхность – частный случай NURBS поверхности. Декартово произведение NURBzS направляющих кривых rd(u[i], v) на NURBzS образующие кривые rf(u,v[j]). Геометрический определитель NURBzS поверхности – gb-многогранник, весовые коэффициенты gb-многогранника.
S-фрейм, s-многогранник – сеть точек с весовыми коэффициентами, однозначно определяющая на фиксированной двумерной параметрической сетке (d(u),d(v)) рациональную b-сплайновую поверхность. Ломаные-столбцы сети определяют s-полигоны направляющих rd(u[i], v) NURBS кривых поверхности. Направляющие кривые не принадлежат поверхности. При фиксированном v0 точки rd(u[i], v0) дают управляющую ломаную для вычисления образующей кривой rf(u,v0) на поверхности.
V-фрейм – сеть точек, строки которой s-полигоны каркаса NURBS образующих кривых r(u,v[j]) поверхности. На столбцах v-фрейма восстанавливаются направляющие NURBS кривые поверхности. Каркас s-полигонов направляющих NURBS кривых совпадает с s-фреймом NURBS поверхности;
GB-фрейм, gb-многогранник - сеть точек с весовыми коэффициентами, однозначно определяющая на фиксированной сетке (d(u), d(v)) NURBzS поверхность.
Изопарм – изопараметрическая кривая r(u0,v) или r(u,v0) поверхности r(u,v);
Изогеометрическое построение кривой или поверхности – построение кривой с сохранением формы (shape preserved). Форма кривой изогеометрична (подобна) форме исходной ломаной опорных точек / касательной ломаной / управляющей ломаной сплайна. Форма поверхности изогеометрична (подобна) форме исходной опорной сети / касательной сети / управляющей сети сплайновой поверхности. Основы теории изогеометрического построения сплайна даны в работе [Гребенников 83]. Теория изогеометрического построения и моделирования сплайновых кривых и поверхностей разработана в работах [Муфтеев 81, Муфтеев 82, Муфтеев 83 1, Муфтеев 2007 2, 2009 1].
В приложении используются следующие обозначения ГО поверхностей:
Base 3D Mesh – опорная сеть точек;
Extended U 3D Mesh – расширенная опорная сеть точек по U. Первые и последние звенья ломаной строки определяют касательные векторы в концевых точках каркаса образующих по U. Концевые точки кривых совпадают со второй и предпоследней вершиной ломаной строки. Устанавливается включением опции Extended net u: (*) on.
Extended V 3D Mesh – расширенная опорная сеть точек по V. Первые и последние звенья ломаной столбца определяют касательные векторы в концевых точках каркаса образующих по V. Концевые точки кривых совпадают со второй и предпоследней вершиной ломаной столбца. Устанавливается включением опции Extended net v: (*) on.
Tangent U 3D Mesh - сеть точек с касательными строками; Tangent UV 3D Mesh - сеть точек с касательными клетками;
GB Mesh – gb-многогранник NURBzS поверхности (рациональной сплайновой поверхности Безье);
V 3D Mesh – сеть v-фрейм каркаса кривых, строки которой являются s-полигонами b-сплайновых кривых;
S 3D Mesh – сеть s-фрейм NURBS поверхности (рациональной b-сплайновой поверхности). Строки и столбцы одновременно или порознь могут быть представлены в двух форматах - в открытом (float) или закрытом (clamped).
3. Геометрические определители
В удобной, комфортной графической среде nanoCAD (абсолютно привычной для пользователей AutoCAD) вы можете подготовить исходные геометрические определители (ГО) кривых и поверхностей.
ГО для моделирования кривых
Для моделирования кривых в приложении используется широкий спектр видов ГО: опорная ломаная, касательная ломаная, опорная ломаная с фиксированными касательными векторами и значениями кривизны (ГО Эрмита).
NURBS-эскиз моделируемой кривой
Проектирование кривой высокого качества можно начинать с рисования сплайновой кривой в CAD-системе. В этом случае, исходная сплайновая кривая, построенная в CAD-системе используется как NURBS-эскиз моделируемой кривой. Далее в приложении на NURBS-эскизе можно перейти к ГО вида опорной ломаной или ГО Эрмита. Отметим, что NURBS-эскиз задает значения касательных векторов и значения кривизны в точках.
Требования к конфигурации исходных ГО кривых
При подготовке ГО вида опорной или касательной ломаной необходимо придерживаться некоторых слабых ограничений на конфигурацию ломаной:
а) углы между смежными звеньями должны быть больше 90 градусов; б) локально-выпуклый участок должен задаваться не менее чем 3 звеньями; в) точка перегиба должна быть фиксирована и лежать близко к прямой, проходящей через смежные точки; г) прямолинейный участок задается не менее чем 4 точками на прямой; д) соотношение длин смежных звеньев не должно превышать 10 или быть меньше 0.1; е) пространственная ломаная не должна иметь угол между плоскостями смежных трехзвенников более 45 градусов; ж) фиксированные касательные векторы в концевых точках и в точках перегиба не должны противоречить форме опорной ломаной.
Эти ограничения слабые, более слабые, чем ограничения для построения сплайна регламентированной формы в AutoCAD (см. пример улучшения сплайновой кривой, нарисованной в AutoCAD по опорным точкам) и в Alias Design (см. пример улучшения сплайновой кривой 7-ой степени, нарисованной в Alias Design по опорным точкам).
Более того, эти требования можно рассматривать как универсальные правила подготовки ГО хорошего качества.
Ломаная узловых точек NURBS-эскиза должна удовлетворять ограничениям на конфигурацию исходных ГО вида опорной или касательной ломаной.
ГО для моделирования поверхностей
В приложении используется широкий спектр видов ГО: опорная сеть точек, сеть точек с касательными строками, сеть точек с ”касательными клетками”, каркас NURBS кривых, s-многогранник для моделирования поверхностей.
Требования к ГО поверхностей
При подготовке опорной 3D Сети требованиям к конфигурации исходных ГО кривых должны удовлетворять все строки-полилинии и столбцы-полилинии.
При подготовке V 3D Сети (сети со строками s-полигонами каркаса b-сплайновых кривых) этим требованиям должны удовлетворять все столбцы-полилинии.
При подготовке S 3D Сети (s-фрейма b-сплайновой поверхности) эти требования не распространяются на конфигурацию s-фрейма.
Широкий набор ГО, существенно расширяющий и дополняющий штатный инструментарий дизайнера-конструктора в CAD-системе, позволяет эффективно и производительно моделировать кривые и поверхности высокого качества по критериям плавности.
4. Состав комплекса
1) CAD-система nanoCAD
Комплекс работает на версиях nanoCAD, начиная с бесплатной версии 5.1.
2) web-приложение FairCurveModeler
Предназначено для построения кривых линий и поверхностей высокого качества на ГО, подготовленных в nanoCAD.
Вызов приложения можно выполнить
- через сайт разработчика www.spliner.ru > Web application AutoCAD > to Web Modeler
- через сайт приложения www.fair-nurbs.ru > Online Modeling.
3) Приложение-утилита nanoCAD v_nano.lsp
Утилита разработана для обеспечения комфортной работы в комплексе и предназначена:
- для реализации обмена ГО кривых и поверхностей между чертежом nanoCAD и web-приложением;
- для редактирования NURBS кривых и поверхностей, построенных в web-приложении;
- для прямого моделирования и редактирования b-сплайновых кривых и поверхностей на s-полигонах и s-фреймах..
4) Документация
Документ nanoCurveModeler.doc находится в основном каталоге nanoFairCurveModeler.
5) Тестовые примеры
Тестовые примеры в виде файлов чертежей в формате DXF размещены в подкаталоге Examples.
5. Технология работы в комплексе
Ознакомьтесь с базовыми командами моделирования кривых и поверхностей высокого качества в приложении Web FairCurveModeler по справочному материалу на сайте разработчика.
Подготовку простых исходных ГО для моделирования кривых и поверхностей можно выполнять штатными командами nanoCAD.
Подготовка и редактирование ГО более высокого уровня может выполняться с использованием команд утилиты v_nano.lsp.
Утилита v_nano.lsp позволяет напрямую 1) моделировать и редактировать с контролем графиков кривизны отдельные b-сплайновые кривые произвольных степеней m (0Восстановление кривых и поверхностей высокого качества на исходных ГО кривых линий и поверхностей и улучшение b-сплайновых кривых, подготовленных в nanoCAD, выполняется в Web FairCurveModeler.
Методы основываются на построении виртуальной кривой (v-кривой) высокого качества [Муфтеев 81, Муфтеев 2006]. V- кривая не является аналитической или кусочно-аналитической кривой и в данном приложении строится на основе алгоритма уплотнения множества конических кривых двойного соприкосновения. V-кривая принадлежит классу кривых C5 и минимизирует количество вершин (экстремумов кривизны) кривой.V-кривая первого цикла уплотнения изогеометрически и с сохранением качества может аппроксимироваться геометрической NURBzS кривой класса G2 или b-сплайновой кривой высокой степени m (m = 6, 8, 10) класса Cm-1.
Рекомендуется завершать моделирование кривой в формате b-сплайновой кривой высокой степени m (m = 6, 8, 10).
При моделировании поверхности используется равномерная сетка. То есть базовые изопараметрические NURBS кривые определяются на равномерной сетке d(u).
По умолчанию включены опции построения b-сплайновой поверхности степеней (8,8).
Алгоритм построения b-сплайновой поверхности состоит из двух этапов:
1) Построение каркаса образующих b-сплайновых кривых. Формируется v-сеть, строки которой s-полигоны b-сплайновых кривых.
2) Построение каркаса направляющих b-сплайновых кривых на столбцах-полилиниях v-сети. Формируется каркас s-полигонов NURBS направляющих, совпадающий с s-фреймом b-сплайновой поверхности.
Можно строить b-сплайновую поверхность непосредственно на базовой 3D сети, на v-сети, на s-фрейме.
Можно начинать моделирование с каркаса отдельных b-сплайновых кривых, согласованных по степеням и количеству сегментов.
Также при моделировании поверхностей рекомендуется завершить аппроксимацию поверхности b-сплайновой поверхностью высоких степеней m,n (m,n = 6,8,10).
Благодаря инновационному методу построения кривых высокого качества с использованием v-кривой базовые изопараметрические кривые и направляющие кривые b-сплайновой поверхности будут высокого качества по критериям плавности.
На любом уровне представления поверхности можно перенести ГО поверхности в графическую среду nanoCAD для редактирования и последующего обратного переноса в Web FairCurveModeler.
Смоделированные кривые и поверхности высокого качества в Web FairCurveModeler переносятся в nanoCAD. Кривые линии высокого качества переносятся в виде NURBS моделей (NURBzS кривых или b-сплайновых кривых). Поверхности высокого качества переносятся в среду nanoCAD в виде плотной 3D Cети интерполированных точек. Смоделированные кривые и поверхности высокого качества могут использоваться в других Приложениях nanoCAD.
|