fogón

← BásicoObjeto 3Dfogon/caja-de-herramientas

Caja de herramientas

de fogonCC026715 bloques
Caja de herramientasArrastrá para girarlo
// «Caja de herramientas» · gpt-6-sol (medium)
// Toolbox («Caja de herramientas»).

// Red steel toolbox
const red = "#ae3029";
const lightRed = "#d34838";
const darkRed = "#83221f";
const deepRed = "#641d1d";
const steel = "#aeb7ba";
const steelLight = "#d3d9d8";
const steelDark = "#626e74";

// Solid body and shaded exterior
box(5, 10, 0, 42, 37, 18, darkRed);
box(6, 10, 2, 41, 10, 18, red);       // front
box(5, 11, 2, 5, 36, 18, "#902521"); // left end
box(42, 11, 2, 42, 36, 18, "#c1392e");
box(6, 37, 2, 41, 37, 18, "#922721");

// Recessed panels in the painted sides
box(8, 9, 3, 39, 9, 16, "#76201e");
box(9, 8, 4, 38, 8, 15, "#a12b26");
box(8, 10, 3, 8, 10, 16, "#d04434");
box(39, 10, 3, 39, 10, 16, "#6d1b1b");
box(5, 14, 4, 5, 33, 15, "#671b1b");
box(4, 15, 5, 4, 32, 14, "#9e2925");
box(4, 15, 14, 4, 32, 14, "#c03a30");
box(4, 15, 5, 4, 15, 14, "#c03a30");

// Open dark interior, with a thick bright rolled rim
box(9, 13, 17, 39, 34, 19, "#3a2525");
box(10, 14, 18, 38, 33, 18, "#241f22");
box(5, 9, 18, 42, 11, 21, red);
box(5, 36, 18, 42, 38, 21, "#c33b30");
box(4, 10, 18, 8, 37, 21, "#b4332c");
box(39, 10, 18, 43, 37, 21, "#a62b25");
box(6, 9, 21, 41, 10, 21, "#eb5843");
box(7, 11, 21, 40, 11, 21, "#d74435");
box(6, 37, 21, 41, 38, 21, "#e14c3a");
box(5, 12, 21, 5, 35, 21, "#d84737");
box(42, 12, 21, 42, 35, 21, "#d54434");
box(9, 12, 19, 38, 12, 20, deepRed);
box(9, 35, 19, 38, 35, 20, "#84221e");

// Small raised seams at the front corners
box(6, 9, 2, 7, 9, 19, "#d04435");
box(40, 9, 2, 41, 9, 19, "#d34838");
box(6, 9, 1, 41, 9, 1, "#641b1c");

// Tools sticking out of the open tray: wooden handles and steel heads
box(20, 23, 19, 22, 25, 27, "#93602d");
box(20, 23, 22, 20, 25, 26, "#d59a44");
box(19, 22, 26, 25, 26, 28, steelDark);
box(19, 22, 28, 25, 26, 29, steel);
box(20, 21, 29, 24, 22, 29, steelLight);
box(25, 23, 27, 29, 25, 28, "#8e9a9d");

box(29, 27, 19, 31, 29, 29, "#5c6870");
box(29, 27, 22, 29, 29, 28, "#a6afb0");
box(26, 26, 28, 35, 30, 31, steelDark);
box(27, 26, 30, 34, 29, 32, steel);
box(28, 26, 32, 33, 28, 32, steelLight);
box(35, 27, 28, 36, 29, 30, "#d1d7d6");

box(14, 16, 19, 16, 18, 26, "#63757b");
box(13, 16, 25, 21, 19, 27, "#9ca7aa");
box(13, 16, 27, 21, 18, 28, "#d1d5d3");
box(16, 15, 23, 17, 16, 25, "#d4d9d6");
box(24, 18, 20, 25, 19, 33, "#276077");
box(24, 18, 27, 24, 18, 33, "#4b8b9d");
box(25, 18, 20, 26, 19, 29, "#263943");

// Little gold tool clips along the near edge
for (let x of [18, 20, 22]) {
  box(x, 14, 20, x, 15, 22, "#a7692c");
  set(x, 14, 22, "#e1a84c");
}

// Four red, stepped arms of the carrying-handle frame
function brace(x0, y0, x1, y1) {
  for (let i = 0; i <= 14; i++) {
    let t = i / 14;
    let x = Math.round(x0 + (x1 - x0) * t);
    let y = Math.round(y0 + (y1 - y0) * t);
    let z = 22 + i;
    box(x - 1, y - 1, z, x + 1, y + 1, z + 1, i < 5 ? darkRed : red);
    set(x, y - 1, z + 1, i % 3 === 0 ? "#ed5943" : lightRed);
  }
}
brace(8, 13, 13, 22);
brace(8, 35, 13, 24);
brace(40, 13, 35, 22);
brace(40, 35, 35, 24);

// Silver hinge caps and the full-width metal handle core
for (let x of [8, 40]) {
  for (let y of [13, 35]) {
    box(x - 1, y - 1, 21, x + 1, y + 1, 22, "#778287");
    set(x, y - 2, 22, steelLight);
  }
}
box(10, 21, 35, 38, 25, 37, steelDark);
box(10, 21, 37, 38, 24, 38, steel);
box(11, 20, 38, 38, 21, 38, steelLight);
box(10, 22, 36, 13, 25, 38, "#c6ced0");
box(36, 22, 36, 39, 25, 38, "#aab4b7");
box(13, 20, 36, 35, 26, 39, "#22292d");
box(14, 20, 39, 34, 25, 39, "#404a4e");
box(15, 19, 37, 33, 19, 38, "#151c20");
box(16, 20, 40, 32, 24, 40, "#343c40");
for (let x = 17; x <= 31; x += 4) {
  box(x, 20, 40, x + 1, 24, 40, "#414b4e");
}
box(14, 26, 36, 34, 26, 37, "#151b1e");

// Rectangular black maker's plate on the viewer-facing side
box(17, 7, 4, 39, 8, 14, "#343d40");
box(18, 6, 5, 38, 6, 13, "#171d20");
box(18, 6, 13, 38, 6, 13, "#697276");
box(17, 7, 4, 39, 7, 4, "#727a79");
for (let [x, z] of [[18, 6], [18, 12], [38, 6], [38, 12]]) {
  set(x, 5, z, "#aeb8b8");
  set(x, 4, z, "#e1e3da");
}

// Chunky cream pixel lettering: TOOLS
const letters = {
  T: ["111", "010", "010", "010", "010"],
  O: ["111", "101", "101", "101", "111"],
  L: ["100", "100", "100", "100", "111"],
  S: ["111", "100", "111", "001", "111"]
};
let cursor = 19;
for (let ch of "TOOLS") {
  const glyph = letters[ch];
  for (let row = 0; row < 5; row++) {
    for (let col = 0; col < 3; col++) {
      if (glyph[row][col] === "1") {
        set(cursor + col, 5, 11 - row, "#f0e5c6");
        set(cursor + col, 4, 11 - row, "#fff1d4");
      }
    }
  }
  cursor += 4;
}

// Bright steel rivets at the corners of the front panel
for (let x of [9, 41]) {
  for (let z of [5, 16]) {
    box(x, 7, z, x + 1, 8, z + 1, "#848e8e");
    set(x, 6, z + 1, "#e3e3da");
  }
}