Загрузка данных


(function main() {
    // Размеры коробки в мм
    var L = 120; // Длина
    var W = 80;  // Ширина
    var H = 40;  // Высота
    
    // Технологические припуски (стандарт)
    var G = 35;  // Боковой клеевой клапан
    var FL = 35; // Верхний основной клапан
    var FS = 25; // Верхние боковые клапаны
    
    // Перевод мм в пункты (Points), так как Illustrator работает в них
    var mmToPt = 2.834645;
    L *= mmToPt; W *= mmToPt; H *= mmToPt; G *= mmToPt; FL *= mmToPt; FS *= mmToPt;
    
    // Создание нового документа
    var doc = app.documents.add(DocumentColorSpace.CMYK, (L*2 + W*2 + G + 100), (H + W + FL + 100));
    
    // Настройка слоев и цветов
    var cutLayer = doc.layers[0]; cutLayer.name = "Резочные линии (CUT)";
    var creaseLayer = doc.layers.add(); creaseLayer.name = "Биговочные линии (CREASE)";
    
    var cmykCut = new CMYKColor(); cmykCut.cyan = 0; cmykCut.magenta = 100; cmykCut.yellow = 0; cmykCut.black = 0; // Маджента для реза
    var cmykCrease = new CMYKColor(); cmykCrease.cyan = 100; cmykCrease.magenta = 0; cmykCrease.yellow = 0; cmykCrease.black = 0; // Циан для биговки

    function drawLine(layer, points, color, isDashed) {
        var path = layer.pathItems.add();
        path.strokeColor = color;
        path.strokeWidth = 1;
        path.filled = false;
        if (isDashed) { path.strokeDasharray =; }
        for (var i = 0; i < points.length; i++) {
            var p = path.pathPoints.add();
            p.anchor = [points[i][0] + 50, points[i][1] + 50]; // Смещение от края артборда
        }
    }

    // Х-координаты вертикальных линий панелей
    var x0 = 0, x1 = G, x2 = x1 + L, x3 = x2 + W, x4 = x3 + L, x5 = x4 + W;
    // Y-координаты горизонтальных линий
    var yBottom = 0;                     // Низ автодна
    var yBaseBottom = W/2 + 10;          // Линия дна (нижняя биговка стенок)
    var yBaseTop = yBaseBottom + H;      // Линия верха (верхняя биговка стенок)
    var yTop = yBaseTop + FL;            // Самый верх клапанов

    // --- БИГОВКИ (Слой Crease) ---
    // Горизонтальные основные линии стенок
    drawLine(creaseLayer, [[x1, yBaseBottom], [x5, yBaseBottom]], cmykCrease, true);
    drawLine(creaseLayer, [[x1, yBaseTop], [x5, yBaseTop]], cmykCrease, true);
    // Вертикальные биговки между панелями
    drawLine(creaseLayer, [[x1, yBaseBottom], [x1, yBaseTop]], cmykCrease, true);
    drawLine(creaseLayer, [[x2, yBaseBottom], [x2, yBaseTop]], cmykCrease, true);
    drawLine(creaseLayer, [[x3, yBaseBottom], [x3, yBaseTop]], cmykCrease, true);
    drawLine(creaseLayer, [[x4, yBaseBottom], [x4, yBaseTop]], cmykCrease, true);
    
    // Элементы биговки автодна (упрощенная базовая геометрия под склейку)
    drawLine(creaseLayer, [[x1, yBaseBottom], [x2, yBaseBottom - W/2]], cmykCrease, true);
    drawLine(creaseLayer, [[x3, yBaseBottom], [x4, yBaseBottom - W/2]], cmykCrease, true);
    drawLine(creaseLayer, [[x2, yBaseBottom], [x2, yBottom]], cmykCrease, true);
    drawLine(creaseLayer, [[x4, yBaseBottom], [x4, yBottom]], cmykCrease, true);

    // --- РЕЗ (Слой Cut) ---
    // Наружный контур и клапаны
    // Боковой клеевой клапан
    drawLine(cutLayer, [[x0, yBaseBottom + 5], [x1, yBaseBottom]], cmykCut, false);
    drawLine(cutLayer, [[x0, yBaseBottom + 5], [x0, yBaseTop - 5]], cmykCut, false);
    drawLine(cutLayer, [[x0, yBaseTop - 5], [x1, yBaseTop]], cmykCut, false);
    
    // Верхняя часть (три клапана: боковой FS, лицевой FL, боковой FS)
    drawLine(cutLayer, [[x1, yBaseTop], [x1 + 5, yBaseTop + FS]], cmykCut, false);
    drawLine(cutLayer, [[x1 + 5, yBaseTop + FS], [x2 - 5, yBaseTop + FS]], cmykCut, false);
    drawLine(cutLayer, [[x2 - 5, yBaseTop + FS], [x2, yBaseTop]], cmykCut, false); // первый боковой
    
    drawLine(cutLayer, [[x2, yBaseTop], [x2, yBaseTop + FL]], cmykCut, false);
    drawLine(cutLayer, [[x2, yBaseTop + FL], [x3, yBaseTop + FL]], cmykCut, false);
    drawLine(cutLayer, [[x3, yBaseTop + FL], [x3, yBaseTop]], cmykCut, false); // основной верхний
    
    drawLine(cutLayer, [[x3, yBaseTop], [x3 + 5, yBaseTop + FS]], cmykCut, false);
    drawLine(cutLayer, [[x3 + 5, yBaseTop + FS], [x4 - 5, yBaseTop + FS]], cmykCut, false);
    drawLine(cutLayer, [[x4 - 5, yBaseTop + FS], [x4, yBaseTop]], cmykCut, false); // второй боковой
    
    drawLine(cutLayer, [[x4, yBaseTop], [x5, yBaseTop]], cmykCut, false); // задняя стенка верх
    drawLine(cutLayer, [[x5, yBaseTop], [x5, yBaseBottom]], cmykCut, false); // крайний правый срез
    
    // Нижняя часть (Упрощенный контур ласточкиного хвоста / автодна)
    drawLine(cutLayer, [[x5, yBaseBottom], [x4, yBottom]], cmykCut, false);
    drawLine(cutLayer, [[x4, yBottom], [x3 + W/2, yBottom]], cmykCut, false);
    drawLine(cutLayer, [[x3 + W/2, yBottom], [x3, yBaseBottom]], cmykCut, false);
    
    drawLine(cutLayer, [[x3, yBaseBottom], [x2, yBottom]], cmykCut, false);
    drawLine(cutLayer, [[x2, yBottom], [x1 + W/2, yBottom]], cmykCut, false);
    drawLine(cutLayer, [[x1 + W/2, yBottom], [x1, yBaseBottom]], cmykCut, false);

    app.redraw();
})();