ББК 32.988-5:М402 ГРНТИ 50.51.17,64.33.14 УДК 519.67:687.021
О. В. Журенков
Математическое моделирование в системах проектирования лекал
Аннотлция. Анализ состояния рынка САПР для лёгкой промышленности и программного обеспечения, доступного для предприятий малого бизнеса и индивидуальных предпринимателей в этой отрасли, показывает недостаточное обеспечение информационными технологиями этого сегмента. Для рассмотренной модели типового бизнес-процесса изготовления лекал выявлены минимальные требования к программному обеспечению для малых предприятий, занятых индивидуальным пошивом.
Описан минимальный перечень графических примитивов и операций, используемых для конструирования основы и моделирования лекал. Построенные с помощью этих примитивов объекты зависят от предварительно заданных размерных параметров. Сохранение в графический файл открытого формата позволяет использовать для дальнейшего моделирования свободные векторные графические редакторы. Для большего удобства пользователя базовый набор графических примитивов дополнен набором операций аффинного преобразования построенных объектов. В результате сформулированы требования для построения автоматизированного рабочего места модельера-конструктора. Описанные требования к математической модели и принципам преобразования объектов составляют основу будущей подсистемы конструирования и моделирования, пригодной для любой используемой ныне методики.
Ключевые слова и фразы: САПР, параметрическое моделирование, аффинные преобразования.
Введение
Активное развитие отечественных САПР связано с мировой тенденцией и поддержано государственными программами по импорто-замещению и созданию отечественной программной платформы [1].
© О. В. Журенков, 2020
© АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ, 2020 © Программные системы: теория и приложения (дизайн), 2020
Фактически оно ограничено приоритетными областями (машиностроением, приборостроением и строительством)1 и не распространяется на лёгкую промышленность [2].
Современное направление развития САПР для лёгкой промышленности связано с технологиями 3Б-моделирования и автоматизированного снятия мерок (параметров манекена) [3-5]. Передовые исследования в этой области связаны с функциональным моделированием человеческого тела, 3Б-дизайном одежды, 3Б-драпировкой одежды и анимацией, генерацией из 3D модели 2D шаблона [6,7]. Но даже разработчики 3D-систем CAD признают, что швейная промышленность, в конечном итоге, нуждается в 2D-моделях для производства одежды [7-9]. Поэтому и 3D-системы CAD для одежды желательно снабдить функциями API, обеспечивающими использование традиционных конструкций 2D-моделей [7]. Более того, даже при наличии модуля автоматической генерации из 2D- в 3D-модель, каждый раз, когда изменяются параметры тела (одежды), для генерации 2D-модели необходимо выполнить полный процесс выравнивания. Это делает процесс интерактивного 3D-дизайна ненужным, долгим и утомительным [7], особенно для индивидуального пошива.
Из вышесказанного видно, что модуль 2D-моделирования по прежнему востребован в САПР для производства одежды. На рынке САПР нет качественных и доступных решений для 2D-моделирования Для индивидуального предпринимателя и для предприятий малого бизнеса 2D-моделирование часто оказывается единственным этапом в производственной цепочке, который подлежит частичной автоматизации. Очевидно, что для предприятий такого малого масштаба промышленная САПР недоступна, да и не нужна. С другой стороны, доступные системы (подсистемы), такие как «ЛЕКО»2 или «Грация»3 не удовлетворяют потребностям пользователей, поскольку, хоть и используют алгоритмический принцип конструирования, но не позволяют проводить дальнейшее визуальное компьютерное моделирование с построенным чертежом.
1http://isicad.ru/ru/
2http://leko-forum.ru/dn/803.pdf
3http://www.saprgrazia.com/modeling.php
Для индивидуального пошива сейчас доступны либо бесплатные сервисы, как например, «Портной блог»4, позволяющие по введённым пользователем размерным признакам строить лекала для уже созданных моделей, либо платные услуги по изготовлению лекал в промышленных САПР, как «Лекало.Про»5, либо демо-версии САПР с некоторым набором лекал и ограничениями использования ПО («ЛЕКО», «Грация»).
К недостаткам таких САПР следует отнести необходимость изучения специфичного языка программирования (а не только интерфейса и функций для построения лекал) и непереносимость выкроек в другую САПР или векторный графический редактор. Часто разработчики таких систем предусматривают для дальнейшей работы с полученными лекалами использовать другие САПР (например, AutoCAD), стоимость которых намного превышает стоимость специализированных САПР. Кроме того, все имеющиеся на рынке САПР привязаны к конкретному типу производства и методике проектирования одежды [10]. Интерфейс таких САПР и принцип работы с ними свидетельствуют о заложенных в их основу архитектурных стилях, господствовавших в программировании 20-25 лет назад. Не произошло прорыва в этой области и на последней выставке Texprocess 2019 [11].
Таким образом, есть проблема с насыщением рынка ПО для предприятий малого бизнеса лёгкой промышленности. Все эти факты должны привести к появлению САПР или модулей 2D-моделирования лекал нового поколения.
Однако, самостоятельное решение задачи автоматизации процесса интерактивного параметрического конструирования (с записью алгоритма) для пользователя и для разработчика САПР требует решения нетривиальных задач планиметрии (см., например, [12,13]) и является в общем случае проблематичным.
Анализ типовых процессов
Для определения требований потенциальных пользователей к программной системе рассмотрим типовой бизнес-процесс создания лекал для индивидуального пошива на основе мерок, снятых с
4http://portnoyblog.com/category/lekala/
5http://lekalo.pro/uslugi
конкретной фигуры. Как видно из рисунка 1, первая и последняя задачи не автоматизируются (при индивидуальном пошиве), а расчёт параметров формализован и легко автоматизируется. Параметры рассчитываются на основе полученных мерок и используются в дальнейшем для параметрического моделирования в последующих задачах.
Рисунок 1. Бизнес-процесс построения лекал при индивидуальном пошиве
Подготовка к печати заключается в выборе объектов (части лекал) для печати и иногда — в раскладке (автоматической, ручной, полуавтоматической) на печатном листе. В промышленных САПР эта задача, как правило, хорошо автоматизирована, а для индивидуального пошива можно использовать редактор векторной графики и редактор электронных таблиц. Здесь можно порекомендовать, как один из вариантов, свободное ПО: редакторы Inkscape и LibreOffice Calc. Для наилучшей совместимости рекомендуется хранить результаты моделирования в графических файлах открытого формата SVG. Кроме того, использование открытых стандартов будет способствовать появлению большого количества приложений (программных интерфейсов) для
моделирования лекал так же, как и использование API OpenGL для 3D моделирования [7].
Наиболее трудоёмкие задачи в рассматриваемом бизнес-процессе
— конструирование основы и моделирование. Конструирование основы заключается в построении базового чертежа по размерным признакам. Моделирование заключается в нанесении дополнительных (т.н. модельных) линий на основу чертежа. На этом этапе на одной основе с помощью моделирования можно создать множество вариаций изделий. Автоматизация этих задач (разработка соответствующих программных модулей) также представляет собой наиболее сложную задачу. Прежде чем приступить к проектированию соответствующих модулей САПР необходимо описать набор графических примитивов и набор графических преобразований (трансформации этих примитивов в результате воздействия преобразований).
Набор графических примитивов должен соответствовать необходимому набору, используемому в расчётно-графических методиках конструирования основы. Эти примитивы сильно отличаются от стандарта SVG прежде всего сигнатурой (способом задания). Результаты моделирования должны быть преобразованы в стандартный формат SVG. Это позволит открывать, редактировать (вносить мелкие правки), распечатывать в доступных редакторах векторной графики.
Математическое обеспечение таких подсистем (конструирование основы и моделирование) включает в себя аппарат планиметрии для построения и параметрического моделирования геометрических объектов.
Моделирование на этапе конструирования основы
Типовой процесс конструирования заключается в создании основы
— базовой конструкции на основе ранее снятых индивидуальных измерений (мерок). Полученная в результате этого процесса основа представляет собой чертёж, который максимально точно описывает форму и силуэт будущего изделия. Качество готового изделия зависит от точности снятых измерений фигуры, от выбранной методики конструирования и правильности расчётов.
Для реализации этой задачи на компьютере могут использоваться различные подходы: визуально-графические, программно-алгоритмические методы и др., которые отличаются интерфейсом пользователя.
Однако, независимо от способа реализации, должен использоваться базовый набор графических примитивов:
• точка: р = р(х, у), где ж, у — декартовы координаты на плоскости;
• отрезок: I = 1{р\,р2), где р\, Р2 — начальная и конечная точки отрезка, соответственно;
• дуга: а = а{р\,р2,г), где р\ и ро — начальная и конечная точки дуги, соответственно, а г — радиус окружности;
• сплайн (один из вариантов — кубическая кривая Безье):
Ь = Ъ(р1,р2,<р1,<Р2,к1,к2),
где р 1 и р2 — начальная и конечная точки сплайна, и <р2 — углы сопряжения (углы наклона касательных на концах сплайна), и А*2 — коэффициенты выпуклости сплайна в начальной и конечной точках или коэффициент выпуклости и коэффициент асимметрии сплайна;
• метка (типовой рисунок, используемый для обозначения конструкционных элементов, не имеющих параметрической привязки, например надсечки, петли и др.): т = л?(ж,у,^), где ж, у — координаты, а I — тип метки;
• текст: т = т(х,у, ¡р, "текст"), где ж, у, <р — координаты точки привязки и угол наклона "текста".
Учитывая специфику работы проектировщика лекал, каждый примитив можно рассматривать, как класс, а построенный экземпляр примитива — как объект. При таком подходе у каждого объекта должен быть уникальный идентификатор. Это позволит безошибочно находить нужные объекты и обращаться к ним. Таким образом, у каждого примитива должен быть ещё один параметр — текстовая метка. При использовании открытого графического формата БУС рекомендуется использовать этот приём через атрибут (см. разд. 5.3 рекомендаций WЗC6. Многие объекты в процессе конструирования используются как; промежуточные для построения других объектов. Поэтому, для каждого объекта должна быть возможность задания флага видимости.
Некоторые из примитивов (дуга, сплайн) имеют нестандартное определение. К тому же для построения смежных объектов в таких примитивах должны производиться дополнительные вычисления: для
6Ь«рз : //иии. из. о^/та/ЗУС 11/
где ci = yi — xi tg фг — свободный член в уравнении прямой;
• пересечение окружности и прямой (необходимая точка выбирается вРУчнУю):
p = p(po,r,pi, ф) = {x = —u/2 ± \J(u/2)2 — v,y = x tg^) + c},
где p0(x0,y0) и r — центр и радиус окружности, p1(x1 ,y1) и ф — точка на прямой и угол между горизонтальной осью и прямой, c = yi — xi tg ф — свободный член в уравнении прямой, u = (2ctg ф — 2yo tg ф — 2xo)/(tg2 ф +1), v = (x2 + c2 — 2yoc + y2 — r2s2)/(tg2 ф +1);
• пересечение дуг (окружностей):
Р± = Р(Р1,Г1,Р2,Г2) =
= {x± = xo + ¿2« cos ф±, y± = yo + ¿2« sin ф±},
где pi(xi,yi) и гг — центр и радиус г-й окружности, ф± = ф ± п/4, ф = arctg(y2 — y1)/(x2 — x1), ¿2 = \/r2 — ¿2, xo = x1 + d1s cos ф, yo = y1 + d1s sin ф, d1 = (r2 — r^ + d2)/(2d), d =
V/(x1 — x2)2 + (y1 — y2 )2/«;
• разделение дуги:
{p, «1, 02} = p(ao(po1,po2, ro),po, ф) = {x = —u/2 ± -/(u/2)2 — v, y = xtg(ф) + c, 01(po1,p, ro), A2(p,po2,ro)} ,
где ao — исходная дуга, po(xo,yo) и ф — точка на прямой и угол секущей линии, c = yo — xo tg ф — свободный член в уравнении секущей, u = (2c tg ф — 2yoo tg ф — 2xoo)/(tg2 ф +1), v = (x2o + c2 — 2yooc + y^o — r2s2)/(tg2 ф +1), 01, 02 — две части исходной дуги;
• разделение сплайна:
{p, 61, 62} = p(bo,po, фo) = {x, y, 61, 62}
где 6o — исходный сплайн, po(xo,yo) и фo — точка на прямой и угол секущей линии, её координаты и параметры новых сплайнов не могут быть представлены аналитически, они вычисляются приближённо итерационными методами.
В расчётах некоторых параметров графических объектов используется параметр масштаба. Многие параметры графических объектов зависят от размерных признаков, полученных на первом и
втором этапах бизнес-процесса (см. рис. 1). Для нахождения некоторых параметров используются нетривиальные методы, а для вычисления параметров, связанных с кривой Безье применяются численные методы.
Согласованность деталей основы на этапе конструирования достигается за счёт автоматического вычисления длин кривых Безье и применением расчётно-графических методик конструирования основы.
Построенная с помощью указанных примитивов и операций основа может использоваться для получения лекал, может быть перестроена при изменении размерных признаков (в результате встроенного в объекты и операции параметрического моделирования) или может подвергнуться дальнейшему моделированию.
Моделирование лекал
Базовая конструкция (основа) может подвергнуться дальнейшему моделированию с целью усложнения элементов модели. На этом этапе, кроме вышеприведённых примитивов и операций, используются некоторые виды аффинного преобразования f: R2 ^ R2:
• параллельный перенос:
M(pi,p2): p(x, y) ^ p'(x + Ax,y + Ay),
где p1 (xi,yi) и p2(x2,y2) — точки, задающие вектор смещения, а Ax = X2 — xi и Ay = y2 — yi — смещения по соответствующим координатам;
• растяжение (сжатие) по заданному направлению:
S(ро, ф, k): p(x, y) ^ p'(x + Ax, y + Ay),
где po(xo,yo) и ф — точка и угол, задающие вектор растяжения (перпендикулярный к оси растяжения), k — коэффициент растяжения, Ax = 1s cos ф, Ay = 1s sin ф, l = (1 — k)V(xo — x)2 + (yo — y)2 cos ф', ф' = ф — arctg(yo — y)/(xo — x), а s — параметр масштаба, при этом значение угла, связанного с точкой pi, увеличивается на arctg(yo — y¿)/(xo — x¿);
• отражение (осевая симметрия):
Z(pi,P2): p(x, y) ^ p'(x + Ax, y + Ay),
где pi(xi, yi) и p2 (x2, y2) — точки, задающие ось симметрии, Ax = l cos ф и Ay = l sin ф, l = ^(xo — x)2 + (yo — y)2, ф = 2 arctg(y2 —
yi)/(x2 — xi) — arctg(y — yi)/(x — xi), при этом все значения углов меняют знак и увеличиваются на 2 arctg(y2 — yi)/(x2 — xi);
• поворот:
T(po, ф): p(x, y) ^ p'(x', y'), где p0(x0, yo) и ф — точка и угол, задающие центр поворота, x' = xo+1 sinф', y' = yo + 1 cos ф', 1 = ^(xo — x)2 + (yo — y)2, ф' = arctg(x — xo)/(y — yo) — ф, при этом значения углов увеличиваются на величину ф.
Растяжение (сжатие) по заданному направлению используется также на этапе конструирования основы.
Следует заметить, что не все преобразования применимы для любого примитива. Например, дуга окружности используется для построения декоративных элементов (клапаны карманов, линии лацканов и отлётов воротников и т.п.), поэтому она не должна подвергаться сжатию или растяжению.
Эти преобразования можно использовать алгоритмически (применяя реализованные операции) или визуально (применяя редактор векторной графики). Визуальный метод более наглядный и лучше подходит для творческого процесса. Отработанные визуальным методом приёмы можно записать в виде алгоритма преобразования основы, тогда полученные лекала будут полностью привязаны к размерным признакам.
Заключение
Предложенный в работе набор графических примитивов, операций и преобразований может стать основой для математического обеспечения программных систем проектирования лекал по любой из используемых ныне методик. При использовании открытого графического формата SVG и свободного ПО полученные лекала будут обладать свойством переносимости (в другие САПР или вспомогательное ПО). Такие программные системы в настоящее время востребованы предприятиями малого бизнеса и предпринимателями, занятыми индивидуальном производством в сфере лёгкой промышленности.