您当前的位置: 首页 > 

插件开发

暂无认证

  • 5浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

illustrator插件--常用功能开发--天地盖盒子--js脚本开发--AI插件

插件开发 发布时间:2022-03-06 13:31:12 ,浏览量:5

文章目录
    • 1.算法原理
    • 2.作者答疑

1.算法原理

  illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是天地盖盒子,开发一个天地盖盒子功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所示:

if (app.documents.length > 0) {
    var win = new Window("dialog", "天地盖专用");
    var panelMargins = win.add("panel", undefined, "盒子尺寸");
    var lblMargins = panelMargins.add("statictext", undefined, "天地盖专用:");
    var hezichang = panelMargins.add("group");
    var Lchang = hezichang.add("statictext", undefined, "盒子长度:");
    var Editchang = hezichang.add("edittext", undefined, 220);
    var LchangUn = hezichang.add("statictext", undefined, "mm");
    var hezikuang = panelMargins.add("group");
    var Lkuang = hezikuang.add("statictext", undefined, "盒子盖宽:");
    var Editkuang = hezikuang.add("edittext", undefined, 140);
    var Lkuangun = hezikuang.add("statictext", undefined, "mm");
    var hezigao = panelMargins.add("group");
    var Lgao = hezigao.add("statictext", undefined, "盒子高度:");
    var Editgao = hezigao.add("edittext", undefined, 30);
    var Lgaoun = hezigao.add("statictext", undefined, "mm");
    var baobian = panelMargins.add("group");
    var Lbaobian = baobian.add("statictext", undefined, "包边宽度:");
    var Editbaobian = baobian.add("edittext", undefined, 15);
    var Lbaobian = baobian.add("statictext", undefined, "mm");
    var panelLocation = win.add("panel", undefined, "盒型");
    var yinghe = panelLocation.add("radiobutton", undefined, "硬盒");
    var ruanhe = panelLocation.add("radiobutton", undefined, "软盒");
    var btnOk = win.add("button", undefined, "Ok");
    yinghe.value = true;
    panelMargins.spacing = 10;
    btnOk.onClick = function() {
        if (Editchang.text != "" && Editkuang.text != "" && Editgao.text != "" && Editbaobian.text != "") {
            if (yinghe.value == true) {
                huahezi(Editchang.text, Editkuang.text, Editgao.text, Editbaobian.text);
            } else {
                huaruanhe(Editchang.text, Editkuang.text, Editgao.text, Editbaobian.text);
            }
        }
    };
    win.center();
    win.show();
}

function huahezi(chang, kuang, gao, baobian) {
    var docRef = app.activeDocument;
    try {
        var speclayer = docRef.layers.dieline;
    } catch (err) {
        var speclayer = docRef.layers.add();
        speclayer.name = "dieline";
        var artboardRef = docRef.artboards;
        var width = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, width, height);
        hColor = new CMYKColor();
        hColor.cyan = 0;
        hColor.magenta = 0;
        hColor.yellow = 0;
        hColor.black = 100;
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0] - width;
        var rect = speclayer.pathItems.rectangle(top, left, width, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var gaibaobian = UnitValue(Number(baobian), "mm").as("pt");
        var width = UnitValue(Number(gao), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = (artboardRef[0].artboardRect[0] - width) - gaibaobian;
        var rect = speclayer.pathItems.rectangle(top, left, gaibaobian, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0] + changdu;
        var rect = speclayer.pathItems.rectangle(top, left, width, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0] + changdu + width;
        var rect = speclayer.pathItems.rectangle(top, left, gaibaobian, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1] + width;
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, width);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1] + width + gaibaobian;
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, gaibaobian);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1] - height;
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, width);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = (artboardRef[0].artboardRect[1] - height) - width;
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, gaibaobian);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        app.redraw();
    }
}

function huaruanhe(chang, kuang, gao, baobian) {
    var docRef = app.activeDocument;
    try {
        var speclayer = docRef.layers.dieline;
    } catch (err) {
        var speclayer = docRef.layers.add();
        speclayer.name = "dieline";
        var artboardRef = docRef.artboards;
        var width = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, width, height);
        hColor = new CMYKColor();
        hColor.cyan = 0;
        hColor.magenta = 0;
        hColor.yellow = 0;
        hColor.black = 100;
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0] - (width * 2);
        var rect = speclayer.pathItems.rectangle(top, left, width, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var rect = speclayer.pathItems.rectangle(top, left + width, width, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var gaibaobian = UnitValue(Number(baobian), "mm").as("pt");
        var width = UnitValue(Number(gao), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = (artboardRef[0].artboardRect[0] - (width * 2)) - gaibaobian;
        var rect = speclayer.pathItems.rectangle(top, left, gaibaobian, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0] + changdu;
        var rect = speclayer.pathItems.rectangle(top, left, width, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var rect = speclayer.pathItems.rectangle(top, left + width, width, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1];
        var left = artboardRef[0].artboardRect[0] + changdu + (width * 2);
        var rect = speclayer.pathItems.rectangle(top, left, gaibaobian, height);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1] + (width * 2);
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, width);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var rect = speclayer.pathItems.rectangle(top - width, left, changdu, width);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1] + (width * 2) + gaibaobian;
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, gaibaobian);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = artboardRef[0].artboardRect[1] - height;
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, width);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var rect = speclayer.pathItems.rectangle(top - width, left, changdu, width);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        var width = UnitValue(Number(gao), "mm").as("pt");
        var changdu = UnitValue(Number(chang), "mm").as("pt");
        var height = UnitValue(Number(kuang), "mm").as("pt");
        var top = (artboardRef[0].artboardRect[1] - height) - (width * 2);
        var left = artboardRef[0].artboardRect[0];
        var rect = speclayer.pathItems.rectangle(top, left, changdu, gaibaobian);
        rect.strokeColor = hColor;
        rect.fillColor = new NoColor();
        app.redraw();
    }
}
2.作者答疑

代码长度过长,如需全部项目,请留言。

提示: 作者知了-联系方式1 提示: 作者知了-联系方式2

关注
打赏
1665481431
查看更多评论
立即登录/注册

微信扫码登录

0.0397s