Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

step-quote-app

visitas Node Express WebAssembly JavaScript License

Aplicação web local (UI industrial) para orçamentação CNC a partir de ficheiros STEP. Arrasta um .STEP/.STP, confirma os parâmetros, vê diagnóstico geométrico (BBox, volume, faces, círculos), ajusta sliders de tempos e obtém tempos & custos (Peça Piloto e Série com descontos).


👀 Screenshots (1 → 2 → 3)

Upload STEP
1 • Upload do ficheiro STEP

Parâmetros de Produção
2 • Parâmetros de Produção

Resultados + Diagnóstico
3 • Resultados + Diagnóstico


✨ Funcionalidades

  • Drag & drop de .step / .stp

  • Conversão STEP → JSON (HEADER, entidades) + geometria (BBox, volume) com OCCT (WASM)

  • Diagnóstico: BBox (mm), Volume da peça (cm³), Remoção (cm³), Faces, Círculos

  • Sliders live: seg/face e seg/furo com preview instantâneo

  • Cálculo:

    • Q1 = Peça Piloto
    • Série com descontos por quantidade (configuráveis: Q10 -5%, Q50 -10%, Q100 -20%)
  • Export: JSON com ficheiro, parâmetros, métricas e resultados


🧰 Requisitos

  • Node.js 18+
  • Windows / macOS / Linux
  • Navegador moderno (Chrome/Edge/Firefox)

🚀 Instalação & Execução

# 1) clonar
git clone https://github.com/xryv/step-quote-app.git
cd step-quote-app

# 2) instalar dependências
npm install
# (usa OCCT WASM para ler STEP no browser)
# npm i occt-import-js   # caso não venha já no package.json

# 3) iniciar servidor local
npm run dev

# 4) abrir
# http://localhost:5173

Se a porta 5173 estiver ocupada:

# Windows PowerShell
setx PORT 5174
# macOS/Linux (bash/zsh)
export PORT=5174
npm run dev

🗂️ Estrutura

step-quote-app/
├─ package.json
├─ server.js                  # Express a servir /public + /vendor/occt (OCCT WASM)
├─ public/
│  ├─ index.html
│  ├─ css/styles.css
│  └─ js/
│     ├─ app.js              # UI + cálculo + fallback OCCT em main thread
│     ├─ config.js           # presets de materiais/máquinas e descontos
│     └─ occt-worker.js      # import STEP via WASM em background
└─ imagens/
   ├─ 1.png
   ├─ 2.png
   └─ 3.png

⚙️ Configuração (presets)

Edita public/js/config.js:

globals: {
  currency: "EUR",
  units: "millimeter",
  stock_factor: 1.05,
  seconds_per_face: 0.8,
  seconds_per_hole: 3,
  wear_per_cm3: 0.002,
  overhead_mult: 1.12,
  margin_mult: 1.18,
  batches: [1, 10, 50, 100],
  discounts: [
    { minQty: 1,   pct: 0.00 }, // Q1 = Piloto
    { minQty: 10,  pct: 0.05 }, // -5%
    { minQty: 50,  pct: 0.10 }, // -10%
    { minQty: 100, pct: 0.20 }  // -20%
  ]
}

🧩 Notas (OCCT / WASM)

  • server.js expõe o runtime em: http://localhost:5173/vendor/occt/occt-import-js.js (+ .wasm no mesmo diretório)
  • O Web Worker (occt-worker.js) faz a importação sem bloquear a UI.
  • Existe fallback automático para o main thread caso o worker falhe.

❗ Troubleshooting

“Carrega um STEP primeiro…”

  • Abre DevTools → Network e verifica:

    • /vendor/occt/occt-import-js.js200
    • /vendor/occt/occt-import-js.wasm200
  • Garante que estás a correr npm run dev (o server.js serve o diretório correto).

Resultados idênticos entre STEP diferentes

  • O cálculo usa BBox, volume, faces e círculos do próprio ficheiro.
  • Se continua igual, confirma no painel de diagnóstico se Volume > 0 (senão a triangulação falhou).

🛣️ Roadmap

  • Deteção robusta de furos (cilindros perfurantes com diâmetro/profundidade)
  • Área de superfície para modelos de acabamento
  • Export PDF/CSV do orçamento
  • Perfis por cliente e presets por máquina/material
  • Modo torneamento com modelos dedicados
  • Ajuste do ganho de série (0.6–0.9) via UI

📜 Licença

MIT © 2025 — contribuições bem-vindas!


Nota sobre o badge de visitas

O badge usa xryv/step-quote-app. Se o repositório for outro, altera o parâmetro url= do badge no topo para:

About

Local web app for drag-and-drop STEP quoting: configurable time & cost estimates, offline-first, industrial UI.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages