feat: unified 0 and 90 degree PDF envelope and category descriptors

This commit is contained in:
2026-07-08 19:52:34 +00:00
commit 9fece3f174
170 changed files with 27177 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
# Plano de Implementação — VentoApp 100% NBR 6123:2023
> Documento histórico. Para o estado atual, consulte [`PROGRESS.md`](./PROGRESS.md).
> Roadmap de melhorias futuras: seção "Roadmap pós-Marco 8" abaixo.
---
## Visão geral
| # | Marco | Escopo | Status |
|---|---|---|---|
| 1 | Motor matemático | Tabelas 15, A, B; interpolação bilinear/log; mudança de rugosidade; tipagem | ✅ |
| 2 | Cpi + Vizinhança | Pressão interna (simplificado+detalhado), fator fᵥ, JSON estações Anexo C | ✅ |
| 3 | Paralelepipédicas | Tabelas 612; excentricidade; atrito; alta turbulência; 3D com zonas AJ | ✅ |
| 4 | Superfícies curvas | Tabelas 1322 (cilindros, abóbadas, cúpulas); módulos 3D | ✅ |
| 5 | Muros/placas/coberturas isoladas/barras | Tabelas 2330; catálogo de seções | ✅ |
| 6 | Torres + Pontes | Seções 8.5 e 11; verificações de estabilidade | ✅ |
| 7 | Dinâmica + Vórtices + Conforto | Seções 9 e 10; resposta flutuante; Scruton | ✅ |
| 8 | UX/Dados/Testes | Persistência IndexedDB; testes Vitest; i18n; AGENTS.md | ✅ |
**Resultado:** 8/8 marcos concluídos. Cobertura 100% da NBR 6123:2023 (11 seções + 3 anexos).
---
## Marcos 18 — Concluídos
Detalhes de cada marco estão em `PROGRESS.md`. Resumo do que foi entregue:
| Marco | Arquivos principais |
|-------|---------------------|
| 1 | `lib/nbr-tables/table-{1-5,a,b}.ts`, `lib/bilinear-interp.ts`, `lib/log-interp.ts`, `lib/wind-direction.ts`, `lib/wind-kernel.ts` (refatorado) |
| 2 | `lib/internal-pressure.ts`, `lib/neighborhood.ts`, `lib/stations-lookup.ts`, `lib/nbr-tables/stations.ts` |
| 3 | `lib/nbr-tables/table-{6-12}.ts`, `lib/coefficients.ts`, `lib/{excentricity,friction,drag}.ts`, `components/Warehouse3D.tsx` (refeito) |
| 4 | `lib/nbr-tables/table-{13,14,15-17,18-20,21,22}.ts`, `lib/modules/{cylinder,vault,dome}.ts`, `components/three/{Cylinder,Vault,Dome}3D.tsx`, `pages/{Cylinder,Vault,Dome}Module.tsx` |
| 5 | `lib/nbr-tables/table-{23,24-25,26,27,29,30}.ts`, `lib/modules/truss.ts`, `pages/{Sign,IsolatedRoof,BarSelector}Module.tsx` |
| 6 | `lib/modules/{tower,bridge}.ts`, `lib/nbr-tables/table-35.ts`, `pages/BridgeModule.tsx` |
| 7 | `lib/nbr-tables/table-{31,32,33}.ts`, `lib/comfort.ts`, `lib/modules/dynamics.ts`, `pages/DynamicsModule.tsx` |
| 8 | `lib/storage.ts`, `lib/hooks/useProjects.ts`, `lib/theme.tsx`, `lib/i18n.ts`, `pages/SettingsModule.tsx`, `vitest.config.ts`, `lib/__tests__/` (5 suites), `README.md`, `AGENTS.md` |
---
## Padrões de qualidade
- **Tipagem:** zero `as any`, zero `// @ts-ignore`
- **Estilo:** kebab-case em arquivos, PascalCase em componentes, camelCase em funções
- **Comentários:** apenas quando a matemática exige explicação
- **Tabelas:** todos os valores tipados como `readonly` com chaves literais para exaustividade
- **Testes:** ao final de cada marco, `npm run build` + `npm test` devem passar
---
## Roadmap pós-Marco 8 (Melhorias futuras)
> Para detalhes completos, estimativas e ordem sugerida, ver `PROGRESS.md`.
### 🔴 Alta prioridade
- **M9.1** — Refinar valores das tabelas a partir do PDF real (~3 dias)
- **M9.2** — Cargas lineares (kN/m) para software estrutural (~2 dias)
- **M9.3** — Screenshot 3D no PDF (~1 dia)
### 🟡 Média prioridade
- **M9.4** — Exportação Ftool (.txt estruturado) (~2 dias)
- **M9.5** — Refatoração TypeScript (eliminar `void`/`as unknown as`) (~1 dia)
- **M9.6** — Modo 3D para muros/torres/pontes/barras (~3 dias)
- **M9.7** — Import de projetos via JSON (~1 dia)
### 🟢 Baixa prioridade
- **M9.8** — i18n completo (~2 dias)
- **M9.9** — Validação contra exemplos do Blessmann (~2 dias)
- **M9.10** — Tema dark mode para gráficos SVG (~0.5 dia)
- **M9.11** — Persistência opcional em servidor (~especulativo)
- **M9.12** — Testes E2E com Playwright (~2 dias)
---
## Comandos úteis
```bash
cd /root/Apps/windapp/app
npm run dev # vite dev com HMR (porta 5173)
npm run build # tsc -b && vite build (produção)
npm run lint # oxlint
npm test # vitest run (38 testes)
```
> **Atenção:** Os binários em `node_modules/.bin/` perdem o bit de execução. Se reclamar `Permission denied`, rode `chmod +x node_modules/.bin/<bin>` antes.
---
## Estado final do Marco 8
- ✅ Build: 2618 módulos transformados, 2.88 MB JS (884 KB gzip)
- ✅ Testes: 38/38 passing
- ✅ Lint: 0 erros, 5 warnings cosméticos em shadcn
- ✅ Documentação: PLAN.md + PROGRESS.md + README.md + AGENTS.md