# Comparativa ciega: modelo desde plano vs STEP del cliente

Pieza: Cuerpo fundición HAPF DN200, en bruto · plano HAPF1.200FUF13-41B rev. B · WCB · DCTG11 · 67,9 kg (plano).
Puesto: fund-modelista-3d · 19-10-2026.

**Método.** Primero modelé la pieza solo con el plano (CadQuery, `modelo_desde_plano.py`).
No abrí el STEP del cliente hasta tener `HAPF1_desde_plano.step` exportado.
Después cargué los dos STEP con OCP/CadQuery. Calculé volumen, masa (7,85 g/cm³), bbox y booleanas
(A−B, B−A, A∩B). Medí las cotas de dos formas:
- diámetros, sobre las caras cilíndricas exactas del B-rep;
- longitudes, con rayos sobre la malla STL (error de malla ≤ 0,3 mm).

Los scripts de medida están en el scratchpad de la sesión (`cmp/comparar.py`, `cmp/cotas.py`, `cmp/scan.py`, `cmp/radios.py`).

## 1. Resumen global

| Magnitud | Plano | Mi modelo (desde plano) | STEP cliente |
|---|---|---|---|
| Volumen | — | 10 350,7 cm³ | 8 408,5 cm³ |
| Masa (acero 7,85) | **67,9 kg** | 81,25 kg (+19,7 % vs plano) | 66,01 kg (−2,8 % vs plano) |
| Bbox X | ±187,5 | −187,5 … 187,5 | −187,5 … 187,5 |
| Bbox Y | −187,5 … 412,5 | −187,5 … 412,5 | −187,5 … 412,5 |
| Bbox Z | ±64 | −64 … 64 | −64 … 64 |
| Mío − cliente (material que sobra en el mío) | | 2 080,3 cm³ | |
| Cliente − mío (material que me falta) | | 138,0 cm³ | |
| Diferencia simétrica | | **2 218,3 cm³** (26 % del volumen del cliente) | |
| Intersección | | 8 270,5 cm³ (98,4 % del cliente) | |

Lectura: los dos modelos tienen las mismas cotas externas y las mismas cotas funcionales del plano.
La diferencia está en el espesor de las paredes y en los rebajes del bloque, que el plano **no acota**.
Ahí estimé de más y sobra material: 15,2 kg (2,08 L).
El STEP del cliente queda a −1,9 kg (−2,8 %) del peso del plano.

## 2. Cotas del plano 1-34

Tolerancias de la casilla «Tol.» tal como vienen en el plano (DCTG11). «Cumple» se refiere al STEP del cliente.

| Nº | Cota | Plano | Tol. | Mi modelo | STEP cliente | ¿STEP cumple? |
|---|---|---|---|---|---|---|
| 1 | Ancho total del bloque | 375 | ±3,1 | 375,0 | 375,0 | Sí |
| 2 | Planitud cara superior | ⏥ 0,5 | — | plana (ideal) | plana (ideal) | No medible en CAD (es control de pieza) |
| 3 | Marcaje «HERBE HAP DN200 WCB/CF8M» ×2 | texto | — | no modelado | no detectado con los rayos de medida | No verificado |
| 4 | Ancho del cuerpo | 275 | ±3,1 | 275,0 | 274,4 | Sí |
| 5 | Ø aro | 375 | ±3,1 | 375,0 (B-rep) | 375,0 (B-rep) | Sí |
| 6 | Alto total | 600 | ±3,5 | 600,0 | 600,0 | Sí |
| 7 | Marcaje «PN16/PN25/PN40/CLASS150 P.MAX 40BAR» | texto | — | no modelado | hay texto en relieve en X +40…+75, Y≈350, cara Z+ | Hay relieve; el contenido no está verificado |
| 8 | Espesor ala izq. | 96,5 | ±2,2 | 96,5 | 96,5 | Sí |
| 9 | Simetría ala izq. respecto a A | ⌯ 0,5 | — | 0,0 | 0,0 (Z −48,25/+48,25) | Sí |
| 10 | Ranura de guillotina (planta) | 16 | +3/0 | 16,0 | 16,0 | Sí (en el límite inferior) |
| 11 | Simetría ala izq. respecto a B | ⌯ 0,5 | — | 0,0 | 0,0 | Sí |
| 12 | Ala izq. | 70 | ±0,5 (nota general) | 70,0 | 70,0 | Sí |
| 13 | Ancho total (planta) | 375 | ±3,1 | 375,0 | 375,0 | Sí |
| 14 | Longitud de ranura / parte central | 235 | +5,6/0 | 235,0 | 235,0 | Sí (en el límite inferior) |
| 15 | Ala dcha. | 70 | ±0,5 (nota general) | 70,0 | 70,0 | Sí |
| 16 | Simetría ala dcha. respecto a B | ⌯ 0,5 | — | 0,0 | 0,0 | Sí |
| 17 | Espesor ala dcha. | 96,5 | ±2,2 | 96,5 | 96,5 | Sí |
| 18 | (= 17, cota repetida en la vista) | 96,5 | ±2,2 | 96,5 | 96,5 | Sí |
| 19 | Simetría del bloque de 128 respecto a A | ⌯ 0,5 | — | 0,0 | 0,0 | Sí |
| 20 | Espesor del bloque (planta, X=0) | 128 | ±2,5 | 128,0 | 128,0 | Sí |
| 21 | Ø vástago (planta) | 43 | +3,6/0 | 43,0 | 43,0 (B-rep) | Sí (en el límite inferior) |
| 22 | Ø vástago (A-A) | 43 | +3,6/0 | 43,0 | 43,0 (B-rep) | Sí (en el límite inferior) |
| 23 | Ranura 16 (A-A) | 16 | +3/0 | 16,0 | 16,0 | Sí (en el límite inferior) |
| 24 | Cámara de la guillotina | 27 | +2/0 | 27,0 | 27,0 | Sí (en el límite inferior) |
| 25 | Garganta / guías de la guillotina | 15 | +3/0 | **27 (no modelado)** | 15,0 (Y≈110-155) | Sí (en el límite inferior) |
| 26 | Planitud de la cara del aro | ⏥ 0,5 | — | plana | plana | No medible en CAD |
| 27 | Ø paso | 194 | ±2,8 | 194,0 | 194,0 (B-rep) | Sí |
| 28 | Espesor del aro | 70 | ±2,2 | 70,0 | 70,0 | Sí |
| 29 | Ø asiento | 219,5 | ±2,8 | 219,5 | 219,5 (B-rep) | Sí |
| 30 | Paralelismo de las caras del aro respecto a C | // 0,9 | — | 0,0 | 0,0 (Z ±35) | Sí |
| 31 | Simetría del bloque de 128 respecto a B | ⌯ 0,5 | — | 0,0 | 0,0 | Sí |
| 32 | Espesor del bloque (A-A) | 128 | ±2,5 | 128,0 | 128,0 | Sí |
| 33 | Peso | 67,9 kg | — | 81,25 kg | 66,01 kg | −2,8 %: aceptable, ver §4 |
| 34 | Interior de la válvula libre de rebaba | nota | — | — | — | Requisito de fundición, no de CAD |

## 3. Las 5 desviaciones mayores (mi modelo frente al STEP)

Todas caen en zonas que el plano no acota, donde yo estimé desde la vista.

1. **Paredes del cuerpo.** Yo puse 70 de espesor (Z ±35), copiando el aro; el cliente tiene **64** (Z ±32).
   Afecta a la zona Y 120-350, |X| 35-137. Es la mayor parte de los +2,08 L.
2. **Bloque superior entre X ±55 y ±116,5.** Ahí yo puse 96,5-128 de espesor.
   El cliente tiene **76** en Y 380-412 y **64** en Y 330-370: rebajes o bolsillos laterales del bloque.
   Diferencia de hasta 26 mm por cara. En la planta del plano esos rebajes se ven como líneas a Z ±38,8, pero no están acotados.
3. **Nervios.** Yo los hice a Z ±64 en todo |X| ≤ 130.
   En el cliente los nervios solo llegan a Z ±64 cerca del centro (|X| ≲ 113 a Z 45, con caras inclinadas). En X = 125 se quedan en ±35.
4. **Guías de la guillotina de 15 (cota 25).** No las modelé: la cámara de 27 me quedó corrida.
   El cliente tiene la garganta de 15 en Y ≈ 110-155 y suplementos asimétricos en el aro (Y ≈ −100 … 120).
   Son los 138 cm³ que le faltan a mi modelo.
5. **Detalles del aro.**
   - Canal perimetral inferior de 20 × ≈ 7 (Z ±10) en el cliente; en el mío, no.
   - Alojamiento de la compuerta: Ø237 en el cliente frente a Ø235 en el mío.
   - Superficies cilíndricas Ø253 y Ø270 (eje Z) en el cliente.
   - Ninguno está acotado en el plano.

## 4. Errores del STEP respecto al plano

**No he encontrado ninguna cota del plano fuera de tolerancia en el STEP del cliente.** Las cotas exteriores y funcionales están al nominal exacto.

Observaciones, con la corrección que propongo:

| # | Observación | Corrección propuesta |
|---|---|---|
| O1 | Las cotas con tolerancia unilateral (16 +3/0, 27 +2/0, 15 +3/0, 235 +5,6/0, Ø43 +3,6/0) están al **límite inferior** del campo (margen 0). Cualquier contracción mayor de la prevista, arena que se hincha o pintura del macho las deja **fuera** en la pieza real. | Modelar el macho y la caja de machos al **centro del campo**: 17,5 / 28 / 16,5 / 237,8 / Ø44,8. Así el modelo de fundición tiene margen a los dos lados. Que lo confirme el cliente. |
| O2 | El peso del STEP (66,0 kg) es un 2,8 % menor que el del plano (67,9 kg). El plano es la rev. B («modificar cuerpo parte sup + nervios»). Puede que el peso del cajetín sea de la rev. A, o que use otra densidad (WCB/CF8M: 7,85-7,9). | Pedir al cliente que confirme el peso de la rev. B. A 7,9 g/cm³ el STEP da 66,4 kg: sigue sin cuadrar del todo. |
| O3 | En el STEP hay texto en relieve en la zona de la cota 7. El de la cota 3 no lo detecté con los rayos. No he verificado el contenido de ninguno de los dos. | Comprobar en un visor los dos marcajes y en qué cara va cada uno (cota 3 ×2). |
| O4 | En el plano, «27 +2/0» es más estrecha que la ranura «16 +3/0», siendo una cota mayor. No cuadra con un DCTG11 puro. [NO VERIFICADO: la tabla de la norma es de pago.] | Confirmar con el cliente que la tolerancia de la cámara de 27 es intencionada (guía funcional de la guillotina). |

## 5. Qué hice desde el plano y qué estimé

- [PLANO]: 375, 600, Ø375, 70 (aro), 128, 96,5, 70 + 235 + 70, 275, Ø194, Ø219,5, Ø43, 16, 27, R3.
- [ESTIMADO] sobre la vista a 1:3,5 (0,296 mm/px a 300 ppp):
  - cara inferior de las alas, Y 351,8;
  - bloque de 128, Y ≥ 379,3;
  - cartelas de las alas, hasta Y 320,6 en X ±137,5;
  - nervios, Y 303-331,6 y 210,4-240, X ±130, R7;
  - espina central, X ±35,5, Z ±48,5, con chaflán a 45° en Y 189-202,5;
  - paredes del cuerpo, Z ±35 (**error principal**);
  - arcos de la planta del bloque, de Z ±40 en X ±117,5 a Z ±64 en X ±84,4;
  - inicio del asiento Ø219,5 en Z +8,5;
  - alojamiento de la compuerta R117,5;
  - profundidad de la ranura de 16: 12 mm.
- No modelado: marcajes, guías de 15, canal inferior del aro, rebajes laterales del bloque, radios de acuerdo generales.

**Lección para el puesto.** Cuando el plano no acota los espesores de pared, calibra con el peso del cajetín *antes* de dar el modelo por bueno.
Mi modelo daba +19,7 % sobre 67,9 kg, y eso ya avisaba del error de paredes antes de abrir el STEP.

## 6. Capturas

- `comparativa_lado_a_lado.png`: mi modelo (gris) y el del cliente (azul).
- `comparativa_diferencias.png`: el cliente en azul translúcido; en rojo, el material que sobra en mi modelo; en naranja, el que le falta.

Script de las capturas: `render_comparativa.py` (Blender 5.2, EEVEE).

## Archivos

- `modelo_desde_plano.py`: modelo paramétrico en CadQuery.
- `HAPF1_desde_plano.step` / `HAPF1_desde_plano.stl`: mi modelo.
- `COMPARATIVA.md`: este documento.
- `render_comparativa.py`, `comparativa_lado_a_lado.png`, `comparativa_diferencias.png`: capturas.
