Эскизные контуры на основе криволинейных сплайнов дают возможность реализовать самую прихотливую органическую геометрию в объектах технического дизайна. Некоторую сложность представляет только манипулирование этими графическими примитивами. Существенную помощь здесь может оказать элементарная… точка. Конечно не одна, а в компании своих однотипных коллег — она окажется той опорой, на плечи которой ляжет забота о форме и размерах ее «закрученного» подопечного. В свою очередь, КОМПАС-3D поможет разместить точки на плоскости или в пространстве, а также проложит дорогу сплайну по самым сложным поверхностям.
Действительно ли манипулирование криволинейными формами относится только к сфере дизайна и несовместимо с техническим конструированием? Плоские и пространственные сплайновые кривые, проложенные по опорным точкам, дают возможность придать художественному замыслу параметрическую определенность «точного» автоматизированного проектирования.
У археологов одним из существенных признаков артефактов искусственного происхождения является присутствие в их форме прямых линий, плоских поверхностей и углов кратных девяноста градусам. Действительно, в природе такую геометрию встретишь нечасто. Вместе с тем современный технический дизайн тяготеет к «органике» и разработчикам систем для автоматизации конструкторских работ приходится это учитывать в своих программных продуктах. Сегодня речь пойдет о таких базовых бионических инструментах из арсенала КОМПАС-3D, как сплайновые кривые на плоскости и в пространстве [1, 2].
В обычном плоском эскизе сглаженную кривую удобно строить по заранее подготовленным точкам. Их позиция определена параметризованными размерами. Поэтому при указании точек в качестве управляющих вершин сплайна (как вариант, Сплайна по полюсам) его форма будет с ними ассоциативно связана (рис. 1).
Рис. 1
Плоский эскиз с криволинейным профилем легко найдет применение в качестве основы для самой прихотливой объемной формы, скажем на основе Элемента вращения (рис. 2).
Рис. 2
А что, если сплайн заданной конфигурации необходимо изобразить на криволинейной грани, образованной Усечением поверхности модели рабочими плоскостями (рис. 3)?
Рис. 3
Напрашивается такое решение: эскизную кривую начертить на плоскости и уже оттуда спроецировать ее на изогнутую грань. Вариантов может быть несколько (рис. 4). При параллельном проецировании (рис. 4А) точки объекта 1 переносятся на поверхность 2 «не сходящимся» потоком лучей. В результате проекция 3 получается длиннее оригинала 1, особенно за счет периферийных областей. Другой вариант (рис. 4Б) образует проекцию сходящимся в центр кривизны О пучком направляющих линий. Это классический «елочный шарик», уменьшающий изображение и приводящий к стремительному росту искажений по мере удаления от центральной проекционной оси. Еще один способ (рис. 4В) — «переводная картинка», когда проекция «обволакивает» поверхность, при этом между точками проекции по сравнению с оригиналом сохраняются (в элементарном случае) даже расстояния, причем без искажений по краям.
Рис. 4
Посмотрим, какими средствами можно реализовать эти подходы в КОМПАС-3D. Допустим, что сплайн уже изображен на рабочей плоскости и перед ним наличествует достаточно криволинейная грань. На вкладке Каркас и поверхности есть инструмент Проекционная кривая (рис. 5), который в зависимости от выбранного варианта — По направлению или По нормали к поверхности — претворяет в жизнь трехмерной модели первые два из вышеперечисленных способов переноса изображения-оригинала на поверхность (см. рис. 4).
Рис. 5
Для третьего (достаточно интересного на практике) варианта картографического проецирования (см. рис. 4В) штатного инструмента в КОМПАС-3D не предусмотрено. А что, если для его осуществления пойти с другой стороны?! Вообще исключить проецирование и «рисовать» эскиз непосредственно на поверхности. Оказывается, такая возможность в программе есть, и она не единственная! Во-первых, командой Точка на поверхности можно поместить опорные вершины на выбранную грань, в том числе криволинейную, используя для позиционирования относительные UV-координаты (рис. 6). Эти вершины послужат основой для эскиза, например символа одной из карточных мастей (см. врезку на рис. 3). Проблема в том, что опорных вершин может быть достаточно много и процесс их создания (в первую очередь ввод координат по направлениям U и V) целесообразно автоматизировать, тем более что точки могут располагаться в узлах регулярной сетки.
Рис. 6
В арсенале КОМПАС-3D имеется такое мощное средство, как макросы (Приложения > КОМПАС-Макро > Макросы). Работа с ними строится по классической схеме: последовательность действий пользователя записывается в виде программных модулей, список которых позволяет любой из них вызвать на выполнение (то есть осуществить записанные операции) и при необходимости отредактировать (рис. 7) [3]. Таким образом, записав построение одной точки на поверхности, мы получим базовый макрос, функционал которого расширим для формирования уже сетки точек-вершин на выбранной грани.
Рис. 7
В Python-коде модифицированного макроса [4] предусмотрим каскад из двух циклов для расчета координат U и V создаваемых точек в зависимости от вводимых при запуске размеров сетки разбиения (рис. 8). Следует отметить, что в поставку КОМПАС-3D помимо механизма записи кода в макросы входит также комплект справочной документации для разработчиков, содержащий описание элементов объектной модели системы (папка SDK в каталоге установки системы).
Рис. 8
В результате выполнения макроса на указанной грани строится сетка точек, готовая к отрисовке необходимых эскизных контуров (рис. 9).
Рис. 9
Ранее мы использовали точки для привязки вершин сплайнов на плоскости (см. рис. 1), теперь аналогичный подход применим к объектам, лежащим на изогнутой поверхности. Получены ли эти точки «ручным» способом (см. рис. 6) или с помощью макроса (см. рис. 9) — в любом случае их можно «соединять» командой Сплайн на поверхности из вкладки Каркас и поверхности (рис. 10). Важно, что создаваемые между указанными вершинами сплайны при этом стелются по поверхности, следуя ее рельефу! Существенно также то, что для смежных кривых инструмент позволяет задавать условие взаимной касательности в общей точке.
Рис. 10
Посредством сплайновых эскизов на модели можно, например, выполнить рельеф по соответствующим контурам командой Придать толщину (рис. 11).
Рис. 11
Итак, по криволинейной поверхности вращения мы пустили криволинейный сплайн, придав ему криволинейную толщину по круговому массиву (рис. 12). Вот такая закрученная история! Причем геометрия каждого ее персонажа не теряет связи параметрами.
Рис. 12
Полезные ссылки:
- КОМПАС-3D — Система трехмерного моделирования // https://ascon.ru/products/7/review/
- Форум пользователей ПО АСКОН: Профессиональные вопросы: Конструирование: Поверхностное моделирование // https://forum.ascon.ru/index.php?board=49.0
- Камнев А. Интерфейс прикладного программирования геометрического ядра C3D. Его применение и главное отличие от API системы КОМПАС-3D // САПР и графика. 2016. № 5.
- Рассмотренный в материале проект с макросом-генератором точек // https://disk.yandex.ru/d/Wnd19AFJrzWSfg