文章目录
1.算法原理
- 1.算法原理
- 2.作者答疑
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