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.rhkb.cn/news/226250.html

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

相关文章

GameFi 2024年或将迎来新的爆发!

在数字时代&#xff0c;游戏已经不仅仅是一种娱乐方式&#xff0c;更是一种跨越现实和虚拟界限的全球性文化现象。而游戏金融&#xff08;GameFi&#xff09;正是这场数字革命的下一个巨大风潮。 随着科技的不断发展和创新&#xff0c;2024年&#xff0c;GAMEFI&#xff08;Gam…

算法——链表

链表常用技巧 画图分析&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;——直观形象&#xff0c;便于理解、大多数都是模拟引入虚拟头结点&#xff08;哨兵位&#xff09; 典型的就是在第一个节点…

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.沙猫群算法4.实验参数设定5.算法结果6.参考文…

javaweb初体验

javaweb初体验 文章目录 javaweb初体验前言一、流程&#xff1a;1.创建Maven的父工程2.创建Maven&#xff0c;Webapp的子工程3.在pom.xml文件中添加依赖&#xff08;父工程与子工程共用&#xff09;4.写一个helloservlet类实现httpservlet接口&#xff0c;重写doget&#xff0c…

idea中终端Terminal页面输入命令git log后如何退出

1、idea中Terminal输入命令git log后如何退出&#xff1f; 2、解决 输入q键会自动退出git log命令

【Java系列】多线程案例学习——基于阻塞队列实现生产者消费者模型

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习JavaEE的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录…

ubuntu 在线安装 python3 pip

ubuntu 在线安装 python3 pip 安装 python3 pip sudo apt -y install python3 python3-pip升级 pip python3 -m pip install --upgrade pip

【头歌实训】kafka-入门篇

文章目录 第1关&#xff1a;kafka - 初体验任务描述相关知识Kafka 简述Kafka 应用场景Kafka 架构组件kafka 常用命令 编程要求测试说明答案代码 第2关&#xff1a;生产者 &#xff08;Producer &#xff09; - 简单模式任务描述相关知识Producer 简单模式Producer 的开发步骤Ka…

ROS多机通信

1&#xff1a;安装ssh sudo apt-get install openssh-server ps -e|grep ssh2&#xff1a;网络静态IP设置 3&#xff1a;配置文件修改 sudo gedit /etc/hosts192.168.3.11 用户名 192.168.3.22 用户名另一台4&#xff1a;重启网络 sudo /etc/init.d/network-manager resta…

2023年度业务风险报告:四个新风险趋势

目录 倒票的黄牛愈加疯狂 暴增的恶意网络爬虫 愈加猖獗的羊毛党 层出不穷的新风险 业务风险呈现四个趋势 防御云业务安全情报中心“2023年业务风险数据”统计显示&#xff0c;恶意爬虫风险最多&#xff0c;占总数的37.8%&#xff1b;其次是虚假账号注册&#xff0c;占18.79%&am…

MySQL事务、四大原则、执行步骤、四种隔离级别、锁、脏读、脏写等

MySQL事务 MySQL事务1.什么是事务&#xff1f;2.事务的四大原则3.事务执行的步骤4、事务的隔离性5、MySQL中的锁 MySQL事务 模拟一个转账业务&#xff1a; 上图中的sql语句&#xff1a; update from table set money mongey - 100 where name A; update from table set mone…

RabbitMQ 报错:Failed to declare queue(s):[QD, QA, QB]

实在没想到会犯这种低级错误。 回顾整理一下吧&#xff1a; 原因&#xff1a;SpringBoot主配置类默认只会扫描自己所在的包及其子包下面的组件。其他位置的配置不会被扫描。 如果非要使用其他位置&#xff0c;就需要在启动类上面指定新的扫描位置。注意新的扫描位置会覆盖默…

PHP的Laravel的数据库迁移

1.默认迁移文件 2.数据库迁移 在终端输入以下代码 php artisan migrate 我的报错啦&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 数据库里面只有两张表&#xff0c;实际上应该有四张的&#xff01;&#xff01;&#xff01; 解决方法&#xff1a; 反正表已…

基于动态窗口的航线规划

MATLAB2016b可以运行 % ------------------------------------------------------------------------- % File : DWA 算法 % Discription : Mobile Robot Motion Planning with Dynamic Window Approach % Author :Yuncheng Jiang % License : Modified BSD Software License A…

【JDK21】详解虚拟线程

目录 1.概述 2.虚拟线程是为了解决哪些问题 2.1.线程切换的巨大代价 2.2.哪些情况会造成线程的切换 2.3.线程资源是有限的 3.虚拟线程 4.适用场景 1.概述 你发任你发&#xff0c;我用JAVA8&#xff1f;JDK21可能要对这句话say no了。 现在Oracle JDK是每4个版本&#x…

什么是https证书?

HTTPS证书&#xff0c;也称为SSL&#xff08;Secure Sockets Layer&#xff09;证书或TLS&#xff08;Transport Layer Security&#xff09;证书&#xff0c;是一种数字证书&#xff0c;用于在网络上建立安全的加密连接。它的主要目的是确保在互联网上进行的数据传输的安全性和…

工具系列:TimeGPT_(6)同时预测多个时间序列

TimeGPT提供了一个强大的多系列预测解决方案&#xff0c;它涉及同时分析多个数据系列&#xff0c;而不是单个系列。该工具可以使用广泛的系列进行微调&#xff0c;使您能够根据自己的特定需求或任务来定制模型。 # Import the colab_badge module from the nixtlats.utils pac…

AD使用的一些基本知识

主页工厂打板时&#xff0c;有些过孔要求在0.3/0.5以上&#xff0c;还有其他一些工艺要求也要注意 用keep-out layer还是mechanical layer 当做切割边线&#xff0c;都可以&#xff0c;也可以看制版工厂的要求 导出BOM表时&#xff0c;是以comment分类的&#xff0c;通常情况…

php-ssrf

漏洞描述&#xff1a; SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下&#xff0c;SSRF攻击的目标是从外网无法访问的内部系统。&#xff08;正是因为它是由服务端发起的&#xff0c;所以它能够请求…

FTP原理与配置

FTP是用来传送文件的协议。使用FTP实现远程文件传输的同时&#xff0c;还可以保证数据传输的可靠性和高效性。 FTP的应用 FTP 提供了一种在服务器和客户机之间上传和下载文件的有效方式。在企业网络中部署一台FTP服务器&#xff0c;将网络设备配置为FTP客户端&#xff0c;则可…