/
Cybran65
/
Project_0
Обзор
Документация
Войти
/
Cybran65
/
Project_0
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/data/drawing.ts
179 строк
4 KB
Cybran65
feat: интерфейс по макету Figma и функции ЛИРА-САПФИР
08 авг 2026, 23:31
08 авг 2026, 23:31
fd3db2b
Код
Авторство
О чём код?
import type { DrawSpec } from '../types'; /** * Что строит каждый инструмент ленты. * * Размеры — условные значения прототипа, а не нормативные требования. * Инструменты, которых нет в таблице, работают как раньше: выбираются, * пишут запись в журнал, но ничего не строят. */ export const DRAW_SPECS: Record<string, DrawSpec> = { wall: { kind: 'wall', points: 2, thickness: 0.4, height: 3.6, prefix: 'С', titleTemplate: 'Стена', }, partition: { kind: 'wall', points: 2, thickness: 0.2, height: 3.6, prefix: 'П', titleTemplate: 'Перегородка', }, 'curtain-wall': { kind: 'wall', points: 2, thickness: 0.2, height: 3.0, prefix: 'В', titleTemplate: 'Витраж', }, railing: { kind: 'wall', points: 2, thickness: 0.1, height: 1.1, prefix: 'Ог', titleTemplate: 'Ограждение', }, column: { kind: 'column', points: 1, size: 0.4, height: 3.6, prefix: 'К', titleTemplate: 'Колонна', }, beam: { kind: 'wall', points: 2, thickness: 0.3, height: 0.5, prefix: 'Б', titleTemplate: 'Балка', }, slab: { kind: 'slab', points: 2, height: 0.2, prefix: 'П', titleTemplate: 'Перекрытие', }, roof: { kind: 'slab', points: 2, height: 0.3, prefix: 'Кр', titleTemplate: 'Покрытие', }, room: { kind: 'slab', points: 2, height: 0, prefix: 'Пом', titleTemplate: 'Помещение', }, zone: { kind: 'slab', points: 2, height: 0, prefix: 'З', titleTemplate: 'Зона', }, stairs: { kind: 'slab', points: 2, height: 0.4, prefix: 'Л', titleTemplate: 'Лестница', }, ramp: { kind: 'slab', points: 2, height: 0.2, prefix: 'Пд', titleTemplate: 'Пандус', }, elevator: { kind: 'column', points: 1, size: 2, height: 3.6, prefix: 'Лф', titleTemplate: 'Лифт', }, door: { kind: 'opening', points: 1, size: 1, height: 2.1, prefix: 'Д', titleTemplate: 'Дверь', }, window: { kind: 'opening', points: 1, size: 1.2, height: 1.5, prefix: 'О', titleTemplate: 'Окно', }, hole: { kind: 'opening', points: 1, size: 0.6, height: 0.3, prefix: 'Отв', titleTemplate: 'Отверстие', }, solid: { kind: 'wall', points: 2, height: 6, prefix: 'ФО', titleTemplate: '3D-тело', }, relief: { kind: 'site', points: 2, height: 0, prefix: 'Рл', titleTemplate: 'Рельеф', }, terrace: { kind: 'slab', points: 2, height: 0.15, prefix: 'Тр', titleTemplate: 'Терраса', }, landscaping: { kind: 'slab', points: 2, height: 0, prefix: 'Бл', titleTemplate: 'Благоустройство', }, areas: { kind: 'slab', points: 2, height: 0, prefix: 'Пл', titleTemplate: 'Площадь', }, }; /** Отметки уровней, м. Значения демонстрационные. */ export const LEVEL_ELEVATIONS: Record<string, number> = { 'level-1': 0, 'level-2': 3.6, roof: 7.2, site: 0, }; /** Уровень по умолчанию для новых элементов. */ export const DEFAULT_LEVEL_ID = 'level-1';