illustrator插件-常用功能开发-锚点分隔路径-js脚本开发-AI插件
文章目录
- 1.算法程序
- 2.作者答疑
1.算法程序
illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是锚点分隔路径,开发一个锚点分隔路径功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所示:
var PMSLibs = confirm("选择路径后使用此脚本,会按照所选路径的锚点分隔路径\n分隔路径数=全部锚点-1\n\n插件定制,手机微信:18928899728");main();
function main()
{var sp = [];getPathItemsInSelection(2, sp);if (sp.length < 1)return;var j,k,p;var first_anchor_selected,idxs,ary,ancs;for (var i = 0; i < sp.length; i++){p = sp[i].pathPoints;idxs = [[0]];first_anchor_selected = isSelected(p[0]);for (j = 1; j < p.length; j++){idxs[idxs.length - 1].push(j);if (isSelected(p[j]))idxs.push([j]);}if (idxs.length < 2 && !(first_anchor_selected && sp[i].closed))continue;// adjust the array (closed path)if (sp[i].closed){if (first_anchor_selected){idxs[idxs.length - 1].push(0);}else{ary = idxs.shift();idxs[idxs.length - 1] = idxs[idxs.length - 1].concat(ary);}}// duplicate the path and apply the data of the arrayfor (j = 0; j < idxs.length; j++){ary = idxs[j];ancs = [];for (k = ary.length - 1; k >= 0; k--)ancs.unshift(p[ary[k]].anchor);with (sp[i].duplicate()){closed = false;setEntirePath(ancs);for (k = pathPoints.length - 1; k >= 0; k--){with (pathPoints[k]){rightDirection = p[ary[k]].rightDirection;leftDirection = p[ary[k]].leftDirection;pointType = p[ary[k]].pointType;}}}}sp[i].remove(); // remove the original path}
}// ------------------------------------------------
// extract PathItems from the selection which length of PathPoints
// is greater than "n"
function getPathItemsInSelection(n, pathes)
{if (documents.length < 1)return;var s = activeDocument.selection;if (!(s instanceof Array) || s.length < 1)return;extractPathes(s, n, pathes);
}// --------------------------------------
// extract PathItems from "s" (Array of PageItems -- ex. selection),
// and put them into an Array "pathes". If "pp_length_limit" is specified,
// this function extracts PathItems which PathPoints length is greater
// than this number.
function extractPathes(s, pp_length_limit, pathes)
{for (var i = 0; i < s.length; i++){if (s[i].typename == "PathItem"&& !s[i].guides && !s[i].clipping){if (pp_length_limit&& s[i].pathPoints.length <= pp_length_limit){continue;}pathes.push(s[i]);}else if (s[i].typename == "GroupItem"){// search for PathItems in GroupItem, recursivelyextractPathes(s[i].pageItems, pp_length_limit, pathes);}else if (s[i].typename == "CompoundPathItem"){// searches for pathitems in CompoundPathItem, recursively// ( ### Grouped PathItems in CompoundPathItem are ignored ### )extractPathes(s[i].pathItems, pp_length_limit, pathes);}}
}// --------------------------------------
function isSelected(p)
{return p.selected == PathPointSelection.ANCHORPOINT;
}
2.作者答疑
如有疑问,请留言。
提示: 作者知了-联系方式1
提示: 作者知了-联系方式2
illustrator插件-常用功能开发-锚点分隔路径-js脚本开发-AI插件相关推荐
- illustrator插件--常用功能开发--移除叠印属性--js脚本开发--AI插件
illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是移除叠印属性,开发一个移除叠印属性功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所 ...
- AfterEffect插件-常规功能开发-改变渲染输出位置-js脚本开发-AE插件
文章目录 1.算法程序 2.作者答疑 1.算法程序 AfterEffect(AE)插件是Adobe公司开发的特效制作软件,稳定快速的功能和特效,在视频制作领域使用非常广泛,本文向大家介绍如何在项目 ...
- illustrator插件--常用功能开发--移除非纯黑叠印--js脚本开发--AI插件
illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是移除非纯黑叠印,开发一个移除非纯黑叠印功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如 ...
- Auto.js脚本开发环境搭建
1. Auto.js软件安装及简单使用 直接将APK发送到安卓手机上进行安装,电脑端的模拟器上直接拖进去就可以安装,安装时不光要安装Auto.js的APK,还要安装打包插件的APK,Auto.js的A ...
- illustrator插件-常用功能模块-测量路径长度-js脚本开发-AI插件
文章目录 1.算法程序 2.作者答疑 1.算法程序 illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是测量路径长度,开发一个测量路径长度功能,以下功能仅用 ...
- illustrator插件--常用功能开发--色标生成器--js脚本开发--AI插件
illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是色标生成器,开发一个色标生成器功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所示: ...
- illustrator插件-常用功能开发-打开多页PDF-js脚本开发-AI插件
文章目录 1.算法程序 2.作者答疑 1.算法程序 illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是打开多页PDF,开发一个打开多页PDF功能,以下功能 ...
- illustrator插件-常用功能开发-尺寸标注-js脚本开发
文章目录 1.算法程序 2.作者答疑 1.算法程序 illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是标注尺寸,开发一个尺寸标注功能,以下功能仅用于学习交 ...
- illustrator插件--常用功能开发--绘制手提袋--js脚本开发--AI插件
illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是绘制手提袋,开发一个绘制手提袋功能,以下功能仅用于学习交流,请勿用于非法用途和商业用途,源代码如下所示: ...
最新文章
- Understanding The React Source Code
- 发展农业对话国际农民丰收节贸易会 菲律宾学中国还是印度?
- 详解 ASP.NET异步
- Flow vs Jenkins 实操对比,如何将Java应用快速发布至ECS
- 任务调度之Timer、TimerTask
- 以太坊2.0质押地址余额超过170万枚
- spring mvc 上传文件
- win10安装nvidia驱动
- HDU 2577 How to Type (DP,经典)
- 从零开始学习Qt GUI编程
- 【转】姚班学霸陈立杰
- 噪声调相干扰matlab程序,噪声调相干扰信号的性能仿真
- Java求所占百分比
- 中国石油大学(北京)-《 公共社交礼仪 》-​​​​​​​第一阶段在线作业
- 计算机密码无法输完整,笔记本电脑键盘失灵无法输入密码怎么解决
- 【DL】第 12 章: 生成式深度学习
- windows 网络监控_如何在Windows 10中监控网络使用情况
- 使用STM32CubeProgrammer烧录STM32芯片
- 11gR2 新特性--待定的统计信息(Pending Statistic)
- 每天看一个fortran文件(2)