蘭雅AI工具箱 center中心对齐批量替换复制 JSX 支持蒙板
中心对齐替换插件单独版:
选择物件中最上层物件替换批量替换其他物件
参数: 1 替换;0 复制
源码见 这个帖子
https://www.52cnp.com/thread-22196-1-1.html
支持蒙板,速度比其他支持蒙板中心替换的插件要更快,更稳定。
turh123 发表于 2024-7-22 15:20
此脚本,能否不要提示弹窗口,直接就是做成替换和复制两种脚本,无需再弹窗选择是否替换或复制。 ...
下载jsx脚本,把第一行,删除。
分别改成下面2行,就可以变成一个替换, 一个复制了
replace_align_center(!0);
replace_align_center(!1);
下面这个是老外写的另一个居中替换版本,我自己写的版本比这个简单快速,如果物件很多,速度相差 5-10倍
turh123 发表于 2024-7-23 10:51
感觉蘭雅老师的无私奉献,有蒙版的对象,使用老外的脚本,会出问题。另外老外脚本并不完美,有时候会失灵 ...
// PageItem.duplicate 复制对象, 需要一个相对对象定位
var newGroup = sourceObj.parent.groupItems.add();
var newobj = sourceObj.duplicate(newGroup, ElementPlacement.PLACEATEND);
// 把参数 newGroup 改成 activeDocument.activeLayer ,这样建立的newobj 就不会群组了
var newobj = sourceObj.duplicate(activeDocument.activeLayer, ElementPlacement.PLACEATEND);
AI jsx 脚本没有 unGroup 函数,查看GPT,回答是可以把群组里对象都移动 activeDocument.activeLayer 然后把 groupItems 删除。
本脚本,是使用一个群组对象来存放复制出来的新文件,达到自动群组的效果。
如果你不想群组,可以修改 duplicate这个函数,把参数 newGroup 改成 activeDocument.activeLayer
这样新建立的newobj 就不会群组了。
个人感觉建立一个群组方便点,也灵活点。
772861140 发表于 2024-7-24 11:24
下载用了 非常nice,昨天一天的工作量用了这个半天就搞完了。不过不知道是不是电脑问题,连续多运行几次就 ...
这个脚本追求简单快速,所以有一定的操作技巧:
1. 需要批量复制的物件要在顶层,最好,使用图层工具,放到独立层
2. 定位用的框架,最好很简单,不要复合路径
3. 定位物件群组了也没事,可以使用白箭头选住,就可以当多个定位处理
4. 白箭头选住定位,然后改到黑箭头加血目标物件,然后执行居中替换(复制),速度就很快了
5. 如果有时插件没用,可能是物件太大或者物件在靠边上了,计算溢出
之前发的源码,只是发我自己写的部分,蒙板支持算法是从老外的里面提取修改的,有网友直接使用没法运行。
所以现在发的这个是完整版的,直接下载就可以使用。
针对之前问没法使用的网友: 把下面这个 NO_CLIP_BOUNDS 函数补全也就可以正常使用了
function NO_CLIP_BOUNDS(a){function c(h){if(IS_CLIP(h))b.push(h.pageItems);else if("GroupItem"==h.constructor.name)try{for(var l=h.pageItems.length,k=0;k<l;k+=1)c(h.pageItems)}catch(m){}else b.push(h)}var b=[];c(a);var d=[],e=[],g=[];a=[];for(var f=0;f<b.length;f+=1)d=b.geometricBounds,e=b.geometricBounds,g=b.geometricBounds,a=b.geometricBounds;d=MIN_IN_ARRAY(d);e=MAX_IN_ARRAY(e);g=MAX_IN_ARRAY(g);a=MIN_IN_ARRAY(a);return}
function IS_CLIP(a){try{if("GroupItem"==a.constructor.name&&a.clipped)return!0}catch(c){}return!1}function MAX_IN_ARRAY(a){for(var c=a,b=0;b<a.length;b+=1)a>c&&(c=a);return c}function MIN_IN_ARRAY(a){for(var c=a,b=0;b<a.length;b+=1)a<c&&(c=a);return c};
本帖最后由 逆风2015 于 2024-7-22 10:32 编辑
landboy 发表于 2024-7-22 09:09
之前发的源码,只是发我自己写的部分,蒙板支持算法是从老外的里面提取修改的,有网友直接使用没法运行。
...
看来你是个大好人,也是华印人才,华印因你更精彩!
可以研究一下,如果原先框框有角度的,替换也可以相应对应角度。
此脚本,能否不要提示弹窗口,直接就是做成替换和复制两种脚本,无需再弹窗选择是否替换或复制。 用文本工具打开是乱码,怎么替换,用什么软件打开,要不替换两行代码,重上传 花红柳绿 发表于 2024-7-23 08:11
用文本工具打开是乱码,怎么替换,用什么软件打开,要不替换两行代码,重上传 ...
哪里是乱码了,选择对的代码编辑器,删除第一行。
第一行就是为了显示作者信息和软件使用方法和选择功能确认的。
不会改就先不改,或者自己去学习怎么修改。
支持,感谢分享 感觉蘭雅老师的无私奉献:),有蒙版的对象,使用老外的脚本,会出问题。另外老外脚本并不完美,有时候会失灵的。蘭雅老师的脚本,支持蒙版对象归中,很棒。提个小小的建议,能否替换后不要群组呢,因为如果再次需要替换对象时,群组当成一个对象来替换的。