好多资源哦

 找回密码
 立即注册
查看: 227|回复: 0

AI 批量生成矩形脚本

[复制链接]
发表于 2024-8-27 09:20:15 | 显示全部楼层 |阅读模式
可以配合 ai_scriptmix-master 插件使用方便

复制已下内容到记事本打开就行  另存jsx格式

需要再ai文档里写上尺寸例如以下

8x10cm
5x8cm
9x9cm

以这样的格式生成的

  1. #target illustrator

  2. if (app.documents.length > 0 && app.selection.length > 0) {
  3.     var doc = app.activeDocument;
  4.     var selectedItems = app.selection;

  5.     // 循环处理每个选中的文本框
  6.     for (var j = 0; j < selectedItems.length; j++) {
  7.         var selectedItem = selectedItems[j];

  8.         if (selectedItem.typename == "TextFrame") {
  9.             var textFrame = selectedItem;
  10.             var textContents = textFrame.contents.split('\r');

  11.             // 获取文本框的左上角坐标
  12.             var textBounds = textFrame.geometricBounds;
  13.             var initialLeft = textBounds[0];
  14.             var initialTop = textBounds[1];

  15.             // 循环处理每行文本
  16.             for (var i = 0; i < textContents.length; i++) {
  17.                 var textContent = textContents[i].replace(/^\s+|\s+$/g, ''); // 手动去除前后的空格

  18.                 // 使用正则表达式匹配格式为 "8x10cm" 的文本
  19.                 var dimensions = textContent.match(/^(\d+(?:\.\d+)?)\s*x\s*(\d+(?:\.\d+)?)\s*cm$/i);
  20.                 if (dimensions && dimensions.length == 3) {
  21.                     var width = parseFloat(dimensions[1]) * 28.3465;  // 转换为点(points)
  22.                     var height = parseFloat(dimensions[2]) * 28.3465; // 转换为点(points)

  23.                     // 计算每个矩形的位置
  24.                     var rectLeft = initialLeft;
  25.                     var rectTop = initialTop - (i * height) - (i * 10); // 为每个矩形加上间距

  26.                     // 创建新的矩形
  27.                     var rect = doc.pathItems.rectangle(rectTop, rectLeft, width, height);

  28.                     // 可选:将矩形置于文本框后面
  29.                     rect.zOrder(ZOrderMethod.SENDTOBACK);
  30.                 } else {
  31.                     alert("第 " + (i + 1) + " 行文本格式应为 '宽度x高度cm',例如 '8x10cm'。");
  32.                 }
  33.             }
  34.         } else {
  35.             alert("请选择一个文本框。");
  36.         }
  37.     }

  38.     alert("所有矩形已生成。");
  39. } else {
  40.     alert("请打开一个文档并选择一个或多个文本框。");
  41. }
复制代码






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|好多资源哦

GMT+8, 2024-11-21 17:16 , Processed in 0.093691 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表