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).
-
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
- Node.js 18+
- Windows / macOS / Linux
- Navegador moderno (Chrome/Edge/Firefox)
# 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:5173Se a porta 5173 estiver ocupada:
# Windows PowerShell
setx PORT 5174
# macOS/Linux (bash/zsh)
export PORT=5174
npm run devstep-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
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%
]
}server.jsexpõe o runtime em:http://localhost:5173/vendor/occt/occt-import-js.js(+.wasmno 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.
“Carrega um STEP primeiro…”
-
Abre DevTools → Network e verifica:
/vendor/occt/occt-import-js.js→ 200/vendor/occt/occt-import-js.wasm→ 200
-
Garante que estás a correr
npm run dev(oserver.jsserve 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).
- 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
MIT © 2025 — contribuições bem-vindas!
O badge usa xryv/step-quote-app.
Se o repositório for outro, altera o parâmetro url= do badge no topo para:


