Документация проекта ведется в obsidian. Для корректного отображения диаграмм рекомендуется использовать desktop-версию.
Описание
Прототип интерфейса приложения для конфигурации оконной конструкции и ее расчета в не метрических системах единиц. Предположительная ENV: Apache Cordova -> APK. Можно перейти с JS на Vue или Quasar, но потом будет больно на поддержке. Основные устройства: android смартфоны/планшеты (v.7+) Клиент не предоставляет референсов и принципов проектирования, не участвует в проектировании, поэтому прототип - есть предложение проекта.
Глоссарий (концептуальная модель)
Прототип создается с учетом достаточной универсальности прикладного решения. Исходная задача: прототипирование оконного конфигуратора-калькулятора. Ввиду того, что оконные конструкции (как и любые световые конструкции) во многом схожи по построению с дверными конструкциями, необходимо было ввести некоторые абстрактные понятия.
- Створка конструкции (construction casement) - объект конструкции, который может занимать часть проема или весь проем (дверной или оконной) конструкции. Например, одностворчатое окно содержит только 1 створку.
- Проем конструкции (construction space) - объект, описывающий пространство конструкции, внутри которого размещаются створки(-а).
- Конструкция (construction) - объект, содержащий створки(-у) конструкции и проем конструкции (пространство), ограничивающее размещение створок.
Управление свойствами конструкции, проема и створок осуществляется с помощью приборных панелей, именуемых тулбар (toolbar).
Единицы измерения
- Все измерения проводятся и записываются в In, далее для расчетов переводятся в sq ft или lf.
- Inch (дюйм), краткое обозначение «in»
- Foot (фут), краткое обозначение «ft» или «‘», 1 ft = 12 * in
- Square foot (квадратный фут), краткое обозначение «sq ft» или «sf» для расчета площади материала
- Linear foot (погонный фут), краткое обозначение lf для расчета материала в погонных футах
- Валюта $
Формулы расчета прямоугольного объекта с длиной и шириной в in:
- SF = (длина створки * ширина створки) / 144 ^770241
- LF = (длина окна + ширина окна) / 6 ^a4b2a2
Экспериментально, примем промежуточный коэффициент отображения дюймов на пикселях = 0.02, который можем использовать как коэффициент масштабирования по-умолчанию
Створки конструкции: опции и расчет
Тип створки и вариант открытия (исполнение) обозначаются условно (аббревиатурами):
- PICTURE WINDOW (PW) – глухарь, тонкий профиль
- FIXED CASEMENT (FC) – глухарь, толстый профиль
- CASEMENT (CAS) – открывается наружу, левое и правое открывание
- AWNING (AWN) – открывается наружу, верхнее и нижнее открывание, только горизонтально
- SINGLE SLIDER TILT (SST) – слайдер, открывается половина, левое или правое открывание
- SINGLE HUNG TILT (SHT) - слайдер, открывается половина, верхнее и нижнее открывание
- END VENT (ENDV) - слайдер, широкий размер, в центре глухарь, стороны открываются к центру
- WHOPPER WINDOW (HOP) – открывается внутрь (подвальное)
Итого 12 видов створок: awn_down, awn_up, cas_left, cas_right, endv, fc, hop, pw, sht_down, sht_up, sst_left, sst_right.
Цены створок по типам и диапазонам площадей
Стоимость за 1 единицу площади из диапазона площадей ( [[README#^770241|SF]] x price )
price (SF/$) | (0..6] | (6..7] | (7..8] | (8..9] | (9..10] | (10..11] | (11..12] | (12..13] | (13..14] | >14 |
---|---|---|---|---|---|---|---|---|---|---|
PW | 75,33 | 71,43 | 67,50 | 62,44 | 60,20 | 58,00 | 56,67 | 56,46 | 56,29 | 55 |
FC | 83,33 | 80,86 | 72,88 | 67,22 | 65,90 | 62,91 | 60,83 | 60,31 | 60,14 | 60 |
CAS | 99,33 | 94,00 | 84,50 | 79,11 | 75,00 | 71,45 | 68,67 | 67,54 | 67,29 | 65 |
AWN | 107,67 | 99,00 | 89,38 | 81,00 | 78,70 | 74,55 | 71,83 | 71,38 | 69,64 | 70 |
SST | 90,00 | 81,43 | 74,25 | 70,78 | 65,80 | 64,73 | 60,75 | 59,00 | 59,43 | 60 |
SHT | 90,83 | 83,43 | 75,63 | 71,67 | 66,50 | 65,91 | 61,67 | 59,38 | 60,57 | 61 |
ENDV | - | - | - | - | 83,70 | 76,64 | 72,00 | 69,38 | 69,86 | 63 |
HOP | 99,33 | 94,00 | 84,50 | 79,11 | 75,00 | 71,45 | 68,67 | 67,54 | 67,29 | 70 |
Цены на опции стекло-пакета створки
Тип стеклопакета:
- Triple Pane Glass Single LowE 8071/CLEAR/CLEAR - 8$/SF
- Triple Pane Glass Double LowE 8071/Low E 8071/CLEAR - 12$/SF
- Double Pane Glass Single LowE 8071/CLEAR - 0$/SF
- Double Pane Glass Double 8071/Low E8071 - 3.5$/SF
Опция приватности:
- Frosted Privacy Glass Satin - 7$/SF
- Frosted Privacy Glass Pinhead - 7$/SF
Варианты заполнения газом:
- Argon Gas Single Fill - 0$/SF
- Argon Gas Double Fill - 0$/SF
Проем: опции и расчеты
Стоимость за 1 единицу погонного фута ( [[README#^a4b2a2|LF]] * price )
Jamb Extension (внутренние откосы):
- none - 0$/LF
- Vinyl Jamb Extension 1 3/8 - 8$/LF
- Vinyl Jamb Extension 2 3/8 - 8$/LF
- Vinyl Jamb Extension 3 3/8 - 8$/LF
- Vinyl Jamb Extension 4 3/8 - 8$/LF
- Vinyl Jamb Extension >6 3/8 - 16$/LF
Casing (обналичка внутри):
- none - 0$/LF
- Vinyl Casing 2 3/8 Colonial - 4$/LF
- Vinyl Casing 3 3/8 Colonial - 4.5$/LF
- Vinyl Casing 2 3/8 Flat - 4$/LF
- Vinyl Casing 3 3/8 Flat - 4.5$/LF
- MDF Casing 2 3/8 Colonial - 3$/LF
- MDF Casing 3 3/8 Colonial - 3.5$/LF
- MDF Casing 2 3/8 Flat - 3$/LF
- MDF Casing 3 3/8 Flat - 3.5$/LF
Brickmold (обналичка снаружи):
- none - 0$/LF
- Vinyl Brickmold 3/16 - 3$/LF
- Vinyl Brickmold 3/4 - 3.5$/LF
- Vinyl Brickmold 1 3/8 - 3$/LF
- Vinyl Brickmold 1 5/8 - 3.5$/LF
- Vinyl Brickmold 2 - 3.5$/LF
- Vinyl Brickmold Nail Fin - 1$/LF
Формула расчета стоимости конструкции
P = SF x ∑1..n ( p(tC) + p(tPG) + p(tPr) + p(tA) ) + LF x ( p(tJE) + p(tCs) + p(tB) ) , где:
- P - итоговая стоимость конструкции
- SF = (w x h / 144) - площадь створки в кв.футах (w - ширина, h - высота)
- ∑1..n() - сумматор по створкам, где n - количество створок
- p(tC) - функция цены от типа створки на единицу из диапазона площади (кв.фут)
- p(tPG) - функция цены от типа стекло-пакета на единицу площади (кв.фут)
- p(tPr) - функция цены от типа приватности на единицу площади (кв.фут)
- p(tA) - функция цены от варианта заполнения газом на единицу площади (кв.фут)
- LF = (W x H / 6) - площадь проема в погонных футах (W - ширина, H - высота)
- p(tJE) - функция цены от типа откосов на единицу погонного фута
- p(tCs) - функция цены от типа внутренней обналички на единицу погонного фута
- p(tB) - функция цены от типа внешней обналички на единицу погонного фута
Предварительные функциональные требования
- Применение конфигурации створки ко всем створкам окна
- Сохранение конфигурации окна (с наличием превью и комментария) со створками и возможностью редактирования
- Удаление и копирование созданной створки
- Смена типа створки
Draft UX/UI
![[ux-prototype.svg]]
Вспомогательные библиотеки
В процессе подбора решений по управлению элементами внутри редактора, были найдены и использованы некоторые JS-библиотеки
- https://anseki.github.io/plain-draggable/ (active, не поддерживает не метрическую СИ)
- https://interactjs.io/ (no-free, не поддерживает не метрическую СИ)
- https://github.com/nichollascarter/subjx (не поддерживает не метрическую СИ)
- https://github.com/AlexeyBoiko/DgrmJS (не поддерживает не метрическую СИ)
Описание
Прототип оконного конфигуратора (drag&drop, resize, привязки как в CAD)