Importación de piezas por archivo JSON
Cortecloud importa listas de piezas, con perforaciones y mecanizados, a partir de un archivo JSON en el formato descrito en esta página. Es el camino para que un software de diseño de muebles lleve el proyecto del carpintero a Cortecloud: su sistema genera el archivo y el carpintero lo carga en un servicio.
Esta integración no pasa por la API Pública: no hay credenciales ni rutas involucradas. El contrato es el formato del archivo.
Cómo importa el archivo el carpintero
La importación se hace en el Cortecloud del carpintero, desde el navegador de la computadora. La app móvil no tiene esa opción.
Las opciones de la interfaz se indican a continuación con el nombre que aparece en pantalla, en portugués, seguido de su traducción.
-
El carpintero crea un nuevo servicio del tipo Serviço completo (servicio completo). Los servicios con módulos no aceptan la importación de piezas.

-
Con la línea de producción del servicio elegida (sin ella el botón queda deshabilitado), abre Importar peças (importar piezas) y elige Carregar arquivo Cortecloud (cargar archivo Cortecloud), que acepta archivos
.json.
-
Cortecloud lista las piezas del archivo y le pide que vincule cada material del archivo a un tablero y a un tapacanto registrados en la central (ver vínculo de materiales).

-
Después de crear las piezas, el carpintero revisa el resultado en la lista de piezas. En las piezas con mecanizado, la miniatura de la pieza muestra las perforaciones, con las cotas de cada agujero.

Use este flujo para probar el archivo que genera su sistema: con una cuenta de carpintero en Cortecloud, cargue el archivo en un servicio y revise en la miniatura de cada pieza si los mecanizados quedaron donde debían.
Estructura del archivo
El archivo es un objeto con la lista parts, una entrada por pieza:
{
"parts": [
{
"quantity": 1,
"c": 500,
"l": 500,
"function": "Lateral",
"complement": "Balcao A",
"c1": "Branco 0.4",
"c2": null,
"l1": null,
"l2": null,
"material": "Branco 18",
"machining": {
"x": 500,
"y": 500,
"z": 18,
"startSide": 0,
"horizontalDrills": [
{ "corner": 2, "direction": "XP", "x": 0, "y": 69, "z": 10.5, "depth": 24, "diameter": 8, "face": "i" },
{ "corner": 1, "direction": "XP", "x": 0, "y": 37, "z": 10.5, "depth": 24, "diameter": 8, "face": "i" },
{ "corner": 1, "direction": "XP", "x": 0, "y": 57, "z": 9, "depth": 22, "diameter": 8, "face": "i" },
{ "corner": 2, "direction": "XP", "x": 0, "y": 89, "z": 9, "depth": 22, "diameter": 8, "face": "i" },
{ "corner": 3, "direction": "XP", "x": 0, "y": 69, "z": 10.5, "depth": 24, "diameter": 8, "face": "i" },
{ "corner": 0, "direction": "XP", "x": 0, "y": 37, "z": 10.5, "depth": 24, "diameter": 8, "face": "i" },
{ "corner": 0, "direction": "XP", "x": 0, "y": 57, "z": 9, "depth": 22, "diameter": 8, "face": "i" },
{ "corner": 3, "direction": "XP", "x": 0, "y": 89, "z": 9, "depth": 22, "diameter": 8, "face": "i" }
],
"verticalDrills": [
{ "corner": 2, "bolthole": false, "x": 25, "y": 69, "depth": 12, "diameter": 15, "face": "i" },
{ "corner": 1, "bolthole": false, "x": 25, "y": 37, "depth": 12, "diameter": 15, "face": "i" },
{ "corner": 3, "bolthole": false, "x": 25, "y": 69, "depth": 12, "diameter": 15, "face": "i" },
{ "corner": 0, "bolthole": false, "x": 25, "y": 37, "depth": 12, "diameter": 15, "face": "i" }
],
"furrowMachining": {
"face": "i",
"depth": 8,
"width": 6.7,
"distance": 15
},
"furrowMachiningPair": null
}
}
]
}
Hay archivos de ejemplo, con los casos de prueba y el resultado esperado de cada uno, en la carpeta de Serrabits en Google Drive.
Todas las medidas están en milímetros.
Campos de la pieza
| Campo | Tipo | Descripción |
|---|---|---|
quantity | entero | Cantidad de piezas iguales. Debe ser mayor que cero. |
c | número | Largo de la pieza. Debe ser mayor que cero. |
l | número | Ancho de la pieza. Debe ser mayor que cero. |
function | texto | Función de la pieza en el mueble (por ejemplo, "Lateral", "Puerta", "Base"). |
complement | texto | Texto libre que acompaña a la pieza, como el nombre del módulo o del ambiente. |
c1, c2, l1, l2 | texto o null | Nombre del tapacanto aplicado en cada lado de la pieza (ver sistema de coordenadas), o null para el lado sin tapacanto. |
material | texto | Nombre del tablero del que se corta la pieza. |
machining | objeto o null | Perforaciones y mecanizados de la pieza (ver mecanizado), o null para una pieza sin mecanizado. |
Las piezas con quantity, c o l ausentes, en cero o negativos no se crean.
Vínculo de materiales
material y los tapacantos (c1, c2, l1, l2) son los nombres que usa su sistema, no códigos de Cortecloud. En la importación, Cortecloud agrupa las piezas por material y el carpintero elige, para cada material, el tablero y el tapacanto de la central que le corresponden. El carpintero también puede marcar un material para que se ignore; sus piezas no se crean.
Si ninguna pieza del archivo tiene material, el carpintero elige un único tablero y un único tapacanto para todas las piezas.
Cada pieza puede usar como máximo dos tapacantos distintos, y el segundo solo se vincula si la central acepta dos tapacantos por pieza. Cuando la central no lo acepta, los lados con el segundo tapacanto quedan sin tapacanto.
Sistema de coordenadas
Las posiciones de los mecanizados se miden a partir de una de las esquinas de la pieza, con la pieza vista por la cara interna:

- Esquinas (
corner):0(superior izquierda),1(inferior izquierda),2(inferior derecha) y3(superior derecha). - Ejes: a partir de cada esquina, X corre a lo largo del largo (lados C) e Y a lo largo del ancho (lados L), siempre hacia el interior de la pieza.
- Lados: C1 y C2 son los lados del largo; L1 y L2, los del ancho.
- Segmentos: cada lado también se identifica por las esquinas que lo delimitan. C1 es el segmento 0-1, L1 es el 1-2, C2 es el 2-3 y L2 es el 3-0.
La cara interna ("i") es la cara frontal de la pieza, la que aparece en la imagen; la cara externa ("e") es la de atrás.
Mecanizado
El objeto machining describe las perforaciones y las ranuras de una pieza.
| Campo | Descripción |
|---|---|
x, y, z | Dimensiones de la pieza en el sistema de coordenadas del mecanizado. Con startSide igual a 0, x es el largo (c), y es el ancho (l) y z es el espesor del tablero. |
startSide | 0 mantiene el mecanizado tal como se describe; 1 gira 90° todo el mecanizado de la pieza. |
horizontalDrills | Lista de perforaciones horizontales: agujeros hechos en el canto de la pieza, paralelos a las caras. |
verticalDrills | Lista de perforaciones verticales: agujeros hechos en una de las caras, perpendiculares a ella. |
furrowMachining | Ranura o rebaje en la cara interna, o null si no hay. |
furrowMachiningPair | Ranura o rebaje en la cara externa, o null si no hay. |
Perforaciones horizontales
| Campo | Descripción |
|---|---|
corner | Esquina de referencia para x e y (0 a 3). |
direction | XP para agujeros en los cantos L1 o L2 (segmentos 1-2 y 3-0), que entran en la pieza en la dirección del eje X; YP para agujeros en los cantos C1 o C2 (segmentos 0-1 y 2-3), que entran en la dirección del eje Y. |
x | Posición en el eje X. Debe ser 0 cuando direction es XP, porque el agujero empieza en el canto. |
y | Posición en el eje Y. Debe ser 0 cuando direction es YP. |
z | Posición del agujero en el espesor de la pieza, entre 0 y el espesor. Es el espesor menos la distancia del centro del agujero a la cara interna. |
depth | Profundidad del agujero. |
diameter | Diámetro del agujero. |
face | Siempre "i". |
Ejemplos de z:
- agujero en el centro del espesor de una pieza de 15 mm:
z= 7.5; - agujero a 7.5 mm de la cara interna de una pieza de 25 mm:
z= 25 − 7.5 = 17.5.
Perforaciones verticales
| Campo | Descripción |
|---|---|
corner | Esquina de referencia para x e y (0 a 3). |
x | Posición del centro del agujero en el eje X. |
y | Posición del centro del agujero en el eje Y. |
depth | Profundidad del agujero. En un agujero pasante, el espesor del tablero. |
diameter | Diámetro del agujero. |
bolthole | true si el agujero es pasante (atraviesa la pieza), como los agujeros de montaje con tornillo; false en caso contrario. |
face | Cara en la que se hace el agujero: "i" (interna) o "e" (externa). |
Ranuras y rebajes
Una ranura es un canal fresado en la cara de la pieza, a cierta distancia del canto; un rebaje es el mismo corte pegado al canto. Los dos sirven, por ejemplo, para encajar el fondo de un mueble. Siempre se hacen a lo largo del lado C2 (segmento 2-3), en todo el largo de la pieza.
furrowMachining y furrowMachiningPair tienen la misma estructura:
| Campo | Descripción |
|---|---|
face | "i" en furrowMachining y "e" en furrowMachiningPair. |
depth | Profundidad del corte. |
width | Ancho del corte. |
distance | Distancia del corte al canto C2. Con 0, el corte es un rebaje; con un valor mayor que cero, una ranura. |
furrowMachiningPair es para piezas con ranura o rebaje en las dos caras, como divisiones y estantes que reciben fondo por ambos lados. La miniatura de la pieza en Cortecloud muestra solo el furrowMachining; el de la cara externa no aparece en ella.
Cuando la línea de producción no mecaniza
El mecanizado solo se aplica si la línea de producción del servicio tiene máquina de mecanizado. Si no la tiene, las piezas se crean sin mecanizado: Cortecloud guarda el contenido de machining del archivo, pero no lo aplica a las piezas ni lo cobra en el presupuesto.
Dudas
Dudas técnicas sobre el formato del archivo: suporte@serrabits.com.br.