AI 批量生成矩形脚本
可以配合 ai_scriptmix-master 插件使用方便复制已下内容到记事本打开就行另存jsx格式
需要再ai文档里写上尺寸例如以下
8x10cm
5x8cm
9x9cm
以这样的格式生成的
#target illustrator
if (app.documents.length > 0 && app.selection.length > 0) {
var doc = app.activeDocument;
var selectedItems = app.selection;
// 循环处理每个选中的文本框
for (var j = 0; j < selectedItems.length; j++) {
var selectedItem = selectedItems;
if (selectedItem.typename == "TextFrame") {
var textFrame = selectedItem;
var textContents = textFrame.contents.split('\r');
// 获取文本框的左上角坐标
var textBounds = textFrame.geometricBounds;
var initialLeft = textBounds;
var initialTop = textBounds;
// 循环处理每行文本
for (var i = 0; i < textContents.length; i++) {
var textContent = textContents.replace(/^\s+|\s+$/g, ''); // 手动去除前后的空格
// 使用正则表达式匹配格式为 "8x10cm" 的文本
var dimensions = textContent.match(/^(\d+(?:\.\d+)?)\s*x\s*(\d+(?:\.\d+)?)\s*cm$/i);
if (dimensions && dimensions.length == 3) {
var width = parseFloat(dimensions) * 28.3465;// 转换为点(points)
var height = parseFloat(dimensions) * 28.3465; // 转换为点(points)
// 计算每个矩形的位置
var rectLeft = initialLeft;
var rectTop = initialTop - (i * height) - (i * 10); // 为每个矩形加上间距
// 创建新的矩形
var rect = doc.pathItems.rectangle(rectTop, rectLeft, width, height);
// 可选:将矩形置于文本框后面
rect.zOrder(ZOrderMethod.SENDTOBACK);
} else {
alert("第 " + (i + 1) + " 行文本格式应为 '宽度x高度cm',例如 '8x10cm'。");
}
}
} else {
alert("请选择一个文本框。");
}
}
alert("所有矩形已生成。");
} else {
alert("请打开一个文档并选择一个或多个文本框。");
}
页:
[1]