Illustrator脚本 #015 自动角线

这是一个在画板上自动生成辅助线和角线的脚本,只要单击最右边按钮运行脚本即可。

绿色的为参考线及出血线。

 

#target "Illustrator"
var settings = {'addTrim' : true,'addBleedGuide' : true,'addCenterGuide' : true,'addCover' : false,'overlapAlert' : false,'trimmarks_layername' : "[Trim marks]",'guides_layername' : "[Guides]",'cover_layername' : "[Cover]",'cover_color' : {"R":93, "G":93, "B":93}
};const MM_PX = 2.83466666666667;
const SCRIPT_TITLE = "添加角线和裁切标记";
const SCRIPT_VERSION = "0.7";
var board = activeDocument;
var doc = app.activeDocument;
var bds = {"x":0, "y":0, "w":0, "h":0};var dlgpos = {'x':150, 'y':50, 'w':320, 'h':480};
var dlg = new Window('dialog', SCRIPT_TITLE + " - ver." + SCRIPT_VERSION, [dlgpos.x, dlgpos.y, dlgpos.x+dlgpos.w, dlgpos.y+dlgpos.h]);
dlg.cancelButton = dlg.add("button", [dlgpos.w/2-105, dlgpos.h-60, (dlgpos.w/2-105)+100, (dlgpos.h-60)+25], "取消", {name: "cancel"});
dlg.okButton = dlg.add("button", [dlgpos.w/2+5, dlgpos.h-60, (dlgpos.w/2+5)+100, (dlgpos.h-60)+25], "执行", { name:"ok"});dlg.btnPnl = dlg.add("panel",[20,15,300,110],"裁切标记:");
dlg.checkBox1 = dlg.add("checkbox",[35,40,290,40+20], "添加裁切标记");
dlg.label1 = dlg.add("statictext",[35,73,100,73+20], "图层名称:");
dlg.textField1 = dlg.add("edittext",[100,70,280,70+20], settings.trimmarks_layername);dlg.btnPnl = dlg.add("panel",[20,125,300,245],"辅助线:");
dlg.checkBox2 = dlg.add("checkbox",[35,150,400,150+20], "添加辅助线");
dlg.checkBox3 = dlg.add("checkbox",[35,175,400,175+20], "在中心添加辅助线");
dlg.label2 = dlg.add("statictext",[35,208,100,208+20], "图层名称:");
dlg.textField2 = dlg.add("edittext",[100,205,270,205+20], settings.guides_layername);dlg.btnPnl = dlg.add("panel",[20,260,300,350],"画板矩形:");
dlg.checkBox4 = dlg.add("checkbox",[35,285,400,285+20], "外部遮罩");
dlg.label3 = dlg.add("statictext",[35,318,100,318+20], "图层名称:");
dlg.textField3 = dlg.add("edittext",[100,315,270,315+20], settings.cover_layername);dlg.checkBox5 = dlg.add("checkbox",[20,370,400,370+20], "忽略图层名称重复警告");dlg.checkBox1.value = settings.addTrim;
dlg.checkBox2.value = settings.addBleedGuide;
dlg.checkBox3.value = settings.addCenterGuide;
dlg.checkBox4.value = settings.addCover;
dlg.checkBox5.value = settings.overlapAlert;dlg.okButton.onClick = function() {dlg.close();boilerplate();
}
dlg.cancelButton.onClick = function() {dlg.close();
}
dlg.show();function addTrimmarks() {var trimmarks_data = [[[-MM_PX*3, MM_PX*12], [-MM_PX*3, 0], [-MM_PX*12, 0]],[[0, MM_PX*12], [0, MM_PX*3], [-MM_PX*12, MM_PX*3]],[[bds.w+MM_PX*3, MM_PX*12], [bds.w+MM_PX*3, 0], [bds.w+MM_PX*12, 0]],[[bds.w, MM_PX*12], [bds.w, MM_PX*3], [bds.w+MM_PX*12, MM_PX*3]],[[-MM_PX*3, -bds.h-MM_PX*12], [-MM_PX*3, -bds.h], [-MM_PX*12, -bds.h]],[[0, -bds.h-MM_PX*12], [0, -bds.h-MM_PX*3], [-MM_PX*12, -bds.h-MM_PX*3]],[[bds.w+MM_PX*3, -bds.h-MM_PX*12], [bds.w+MM_PX*3, -bds.h], [bds.w+MM_PX*12, -bds.h]],[[bds.w, -bds.h-MM_PX*12], [bds.w, -bds.h-MM_PX*3], [bds.w+MM_PX*12, -bds.h-MM_PX*3]],[[bds.w/2, MM_PX*(4.23+8.467)], [bds.w/2, MM_PX*4.23]],[[(bds.w/2)-(MM_PX*25.4/2), MM_PX*6.35], [(bds.w/2)+(MM_PX*25.4/2), MM_PX*6.35]],[[bds.w/2, -bds.h-MM_PX*(4.23+8.467)], [bds.w/2, -bds.h-MM_PX*4.23]],[[(bds.w/2)-(MM_PX*25.4/2), -bds.h-MM_PX*6.35], [(bds.w/2)+(MM_PX*25.4/2), -bds.h-MM_PX*6.35]],[[-MM_PX*(4.23+8.467), -bds.h/2], [-MM_PX*4.23, -bds.h/2]],[[-MM_PX*6.35, -bds.h/2+(MM_PX*25.4/2)], [-MM_PX*6.35, -bds.h/2-(MM_PX*25.4/2)]],[[bds.w+MM_PX*(4.23+8.467), -bds.h/2], [bds.w+MM_PX*4.23, -bds.h/2]],[[bds.w+MM_PX*6.35, -bds.h/2+(MM_PX*25.4/2)], [bds.w+MM_PX*6.35, -bds.h/2-(MM_PX*25.4/2)]]];var trimLayer;try {trimLayer = doc.layers.getByName(settings.trimmarks_layername);} catch(e) {trimLayer = doc.layers.add();trimLayer.name = settings.trimmarks_layername;}trimLayer.locked = false;trimLayer.visible = true;doc.activeLayer = trimLayer;var trimPaths = new Array();for (i=0; i<trimmarks_data.length; i++) {trimPaths[i] = trimLayer.pathItems.add();trimPaths[i].setEntirePath(trimmarks_data[i]);trimPaths[i].filled = false;trimPaths[i].stroked = true;trimPaths[i].strokeWidth = 0.3;try {trimPaths[i].strokeColor = doc.swatches["[注册]"].color;} catch (e) {trimPaths[i].strokeColor = getCMYK(100,100,100,100);}}
}function addBleedGuides() {var guideLayer;try {guideLayer = doc.layers.getByName(settings.guides_layername);} catch(e) {guideLayer = doc.layers.add();guideLayer.name = settings.guides_layername;}guideLayer.locked = false;guideLayer.visible = true;doc.activeLayer = guideLayer;var guidePaths = new Array();if (settings.addBleedGuide) {guidePaths.push(guideLayer.pathItems.rectangle(MM_PX*3, -MM_PX*3, bds.w+MM_PX*6, bds.h+MM_PX*6));guidePaths.push(guideLayer.pathItems.rectangle(0, 0, bds.w, bds.h));}if (settings.addCenterGuide) {guidePaths.push(guideLayer.pathItems.add());guidePaths[guidePaths.length-1].setEntirePath([[bds.w/2, MM_PX*50], [bds.w/2, -bds.h-MM_PX*50]]);guidePaths.push(guideLayer.pathItems.add());guidePaths[guidePaths.length-1].setEntirePath([[-MM_PX*50, -bds.h/2], [bds.w+MM_PX*50, -bds.h/2]]);}for (i=0; i<guidePaths.length; i++) {guidePaths[i].translate(bds.x, bds.y);guidePaths[i].filled = false;guidePaths[i].stroked = false;guidePaths[i].guides = true;}}function addCover() {var coverLayer;try {coverLayer = doc.layers.getByName(settings.cover_layername);} catch(e) {coverLayer = doc.layers.add();coverLayer.name = settings.cover_layername;}coverLayer.locked = false;coverLayer.visible = true;doc.activeLayer = coverLayer;var coverPaths = new Array();coverPaths.push(coverLayer.pathItems.rectangle(MM_PX*100, -MM_PX*100, MM_PX*100, bds.h+MM_PX*200));coverPaths.push(coverLayer.pathItems.rectangle(MM_PX*100, bds.w, MM_PX*100, bds.h+MM_PX*200));coverPaths.push(coverLayer.pathItems.rectangle(MM_PX*100, -MM_PX*100, bds.w+MM_PX*200, MM_PX*100));coverPaths.push(coverLayer.pathItems.rectangle(-bds.h, -MM_PX*100, bds.w+MM_PX*200, MM_PX*100));for (i=0; i<coverPaths.length; i++) {coverPaths[i].translate(bds.x, bds.y);coverPaths[i].filled = true;coverPaths[i].stroked = false;coverPaths[i].fillColor = getRGB(settings.cover_color.R, settings.cover_color.G, settings.cover_color.B);}
}function getCMYK(c,m,y,k) {cmykColor = new CMYKColor();cmykColor.cyan = c;cmykColor.magenta = m;cmykColor.yellow = y;cmykColor.black = k;return cmykColor;
}
function getRGB(r,g,b) {rgbColor = new RGBColor();rgbColor.red = r;rgbColor.green = g;rgbColor.blue = b;return rgbColor;
}
function getSpotColor(colorName) {spotColor = new SpotColor();spotColor.name = colorName;return spotColor;
}function boilerplate(){var ab = doc.artboards[doc.artboards.getActiveArtboardIndex()];bds.x = ab.artboardRect[0];bds.y = ab.artboardRect[1];bds.w = ab.artboardRect[2] - bds.x;bds.h = -(ab.artboardRect[3] - bds.y);var startLayerName = doc.activeLayer.name;if (dlg.textField1.text != "" ) settings.trimmarks_layername = dlg.textField1.text;if (dlg.textField2.text != "" ) settings.guides_layername = dlg.textField2.text;if (dlg.textField3.text != "" ) settings.cover_layername = dlg.textField3.text;settings.addTrim = dlg.checkBox1.value;settings.addBleedGuide = dlg.checkBox2.value;settings.addCenterGuide = dlg.checkBox3.value;settings.addCover = dlg.checkBox4.value;settings.overlapAlert = dlg.checkBox5.value;var ms = ' 图层名称重复,是否继续';try {var tl = doc.layers.getByName(settings.trimmarks_layername);} catch(e) {} finally {if (tl && settings.addTrim && !settings.overlapAlert) {if (!confirm(settings.trimmarks_layername + ms)) return false;}}try {var gl = doc.layers.getByName(settings.guides_layername);} catch(e) {} finally {if (gl && (settings.addBleedGuide || settings.addCenterGuide) && !settings.overlapAlert) {if (!confirm(settings.guides_layername + ms)) return false;}}try {var cl = doc.layers.getByName(settings.cover_layername);} catch(e) {} finally {if (cl && settings.addCover && !settings.overlapAlert) {if (!confirm(settings.cover_layername + ms)) return false;}}if (settings.addCover) addCover();if (settings.addTrim) addTrimmarks();if (settings.addBleedGuide || settings.addCenterGuide) addBleedGuides();try {cl = doc.layers.getByName(settings.cover_layername);cl.locked = false;doc.activeLayer = cl;if (cl.zOrderPosition < doc.layers.length) {cl.zOrder(ZOrderMethod.BRINGTOFRONT);}cl.locked = true;} catch(e) {}try {tl = doc.layers.getByName(settings.trimmarks_layername);tl.locked = false;doc.activeLayer = tl;if (tl.zOrderPosition < doc.layers.length) {tl.zOrder(ZOrderMethod.BRINGTOFRONT);}tl.locked = true;} catch(e) {}try {gl = doc.layers.getByName(settings.guides_layername);gl.locked = false;doc.activeLayer = gl;if (gl.zOrderPosition < doc.layers.length) {gl.zOrder(ZOrderMethod.BRINGTOFRONT);}} catch(e) {}doc.activeLayer = doc.layers.getByName(startLayerName);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/582866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xshell连接ubuntu,从github克隆项目,用Xshell克隆项目

访问不了github&#xff1a;https://blog.csdn.net/liu834189447/article/details/135246914 短暂解决访问问题。 ping不通虚拟机/无法连接虚拟机&#xff1a;https://blog.csdn.net/liu834189447/article/details/135240276 ps: Xshell、ubuntu的粘贴快捷键为 Shift Insert …

51单片机(STC8)-- GPIO输入输出

文章目录 I/O口相关寄存器端口数据寄存器端口模式配置寄存器&#xff08;PxM0&#xff0c;PxM1&#xff09;端口上拉电阻控制寄存器(PxPU)关于I/O的注意事项 配置I/O口I/O设置demoI/O端口模式LED控制&#xff08;I/O输出&#xff09;按键检测&#xff08;I/O输入&#xff09; S…

大数据Doris(四十三):创建物化视图

文章目录 创建物化视图 一、首先你需要有一个Base表

深入浅出Java虚拟机

文章目录 总体图类装载子系统一、类的加载过程一、加载二、链接三、初始化 二、类的加载器 运行时数据区一、程序计数器(ProgramCounter)二、虚拟机栈( Java Stack )三、本地方法栈&#xff08; Native Method Stack &#xff09;四、堆内存&#xff08;Direct Memory&#xff…

mysql 与 支持语言的连接驱动 jdbc connector JAR 包

有位网友问我有没有 mysql jdbc驱动 &#xff0c;我刚开始一脸懵逼&#xff0c;后来明白过来&#xff0c;在网上找了几篇文章看看了解了解&#xff0c;得出如下解决办法&#xff1a; Mysql jdbc 下载&#xff1a; 网址&#xff1a; MySQL :: Download Connector/J 步骤1 &a…

【信息安全原理】——拒绝服务攻击及防御(学习笔记)

&#x1f4d6; 前言&#xff1a;拒绝服务攻击&#xff08;Denial of Service, DoS&#xff09;是一种应用广泛、难以防范、严重威胁网络安全&#xff08;破坏可用性&#xff09;的攻击方式。本章主要介绍DoS的基本概念、攻击原理及防御措施。 目录 &#x1f552; 1. 定义&#…

nginx报错upstream sent invalid header

nginx报错upstream sent invalid header 1.报错背景 最近由于nginx 1.20的某个漏洞需要升级到nginx1.25的版本。在测试环境升级完nginx后&#xff0c;发现应用直接报错502 bad gateway了。 然后查看nginx的errlog&#xff0c;发现&#xff1a; upstream sent invalid head…

echarts 柱状图

记录echarts 柱状图基础案例以及相关配置。 1.基础柱状图 const myChart this.$echarts.init(this.$refs.echartsZx);const option {title: {text: 本周考试记录},//提示框tooltip: {trigger: axis,axisPointer: {type: shadow}},xAxis: {type: category,data: [Mon, Tue, W…

im6ull学习总结(二)Framebuffer 应用编程

1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数&#xff0c;大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中&#xff0c;一帧&#xff08;Frame&#xff09;是指图像序列中的单个…

【新版Hi3536AV100性能果真强悍】

Hi3536AV100是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;智能NVR产品应用开发的新一代专业高端SoC芯片。 Hi3536AV100集成了ARM Cortex-A55八核处理器和性能强大的神经网络处理器&#xff0c;支持多种智能算法应用。 Hi3536AV100支持32路1080p多协议解码及4路…

OpenCV-Python(21):凸缺陷检测及点到多边形最短的距离求解

学习目标 凸缺陷的查找求某一点到一个多边形的最短距离不同形状的匹配 凸缺陷 前面我们已经学习了轮廓的凸包&#xff0c;对象上的任何凹陷都被成为凸缺陷。OpenCV 中有一个函数cv2.convexityDefect() 可以帮助我们找到凸缺。函数使用如下&#xff1a; hull cv2.convexHull…

【量化】蜘蛛网策略复现

文章目录 蜘蛛网策略研报概述持仓数据整理三大商品交易所的数据统一筛选共有会员清洗数据计算研报要求数据全部代码 策略结果分析无参数策略有参数策略正做反做 MSD技术指标化 蜘蛛网策略 策略来自《东方证券-股指期货趋势交易之蜘蛛网策略——从成交持仓表中捕捉知情投资者行为…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# Windows窗体技术及基础控件(二)

C# 入门基础知识 - C# Windows窗体技术及基础控件 第12节 Windows窗体技术及基础控件12.8 Label 控件12.9 Button 控件12.10 TextBox控件12.11 RichTextBox 控件12.12 Timer控件12.13 CheckBox 控件12.14 RadioButton 控件12.15 ComboBox 控件、ListBox 控件和CheckedListBox 控…

什么是 NLP (自然语言处理)

NLP&#xff08;自然语言处理&#xff09;到底是做什么&#xff1f; NLP 的全称是 Natural Language Processing&#xff0c;翻译成中文称作&#xff1a;自然语言处理。它是计算机和人工智能的一个重要领域。顾名思义&#xff0c;该领域研究如何处理自然语言。 自然语言就是我…

构建全场景解决方案,中国移动磐维数据库赋能数字化建设加速向前

【引言】随着数字化转型的加速&#xff0c;数据成为企业的核心资产&#xff0c;数据库作为数据的基础设施&#xff0c;承载着企业的业务发展和创新能力。如何构建一个高效、稳定、安全的数据库平台&#xff0c;满足不同场景的数据需求&#xff0c;是企业面临的重要挑战。本文将…

前端必须的服务端项目,node + express (这篇文章就够用)包含源代码

作为一个前端程序员&#xff0c;刚开始入门的时候&#xff0c;你觉得只要学习前端代码&#xff08;js css html&#xff09;就行了&#xff0c;实际上&#xff0c;到后面很多知识都涉及到服务端&#xff0c;在我们学习的过程中难免需要写一些 demo。比如在浏览器的缓存、或者…

公司防泄密软件监控员工哪些行为?

公司防泄密软件通常监控员工在使用电脑和其他存储设备时的一系列行为&#xff0c;以确保数据安全和防止敏感信息泄露。以下是一些公司防泄密软件可能监控的员工行为&#xff1a; 文件访问和操作&#xff1a; 软件可能会监控员工对文件的访问、打开、编辑、复制和移动操作。异常…

基于鸿蒙OS开发一个前端应用

创建JS工程&#xff1a;做鸿蒙应用开发到底学习些啥&#xff1f; 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。选择HarmonyOS模板库&#xff0c…

【MYSQL】-表的约束

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

Redis管道

问题引出 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤&#xff1a; 1 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果)&#xff0c;并监听Socket返回&#xff0c;通常以阻塞模式等待服务端响应。 2 服务端…