tiantian
发表于 2025-1-18 15:30:54
本帖最后由 tiantian 于 2025-1-18 15:41 编辑
面板已经完成,将脚本添加进去就可以了,下周推出【V1.3】【S1.3】二个版本,敬请期待!
tiantian
发表于 2025-1-18 21:43:59
由于合集中的内角线脚本在高版本的AI中无法使用,
所以这二天开发一款【极速角线】,包含内角线功能。
willsuntan
发表于 2025-1-21 09:26:46
【V1.3】【S1.3】楼主出来了没有?
tiantian
发表于 2025-1-21 09:29:54
本帖最后由 tiantian 于 2025-1-21 09:43 编辑
willsuntan 发表于 2025-1-21 09:26
【V1.3】【S1.3】楼主出来了没有?
/面板A--------------------------------------------
cyzhu = mban1.add("panel", , "常用");
cy001 = cyzhu.add("button", , "标注横尺寸");
cy002 = cyzhu.add("button", , "标注纵尺寸");
cy003 = cyzhu.add("button", , "极速标注V4.6");
cy004 = cyzhu.add("button", , "超速标注V1.2");
cy005 = cyzhu.add("button", , "标注尺寸增强");
cy006 = cyzhu.add("button", , "连续标注尺寸");
cy007 = cyzhu.add("button", , "打开多页PDF");
cy008 = cyzhu.add("button", , "置入多页PDF2.1");
cy009 = cyzhu.add("button", , "置入多页PDF2.3");
cy010 = cyzhu.add("button", , "导PDF拆分画板");
cy011 = cyzhu.add("button", , "统一图片分辨率");
cy012 = cyzhu.add("button", , "选择范围另存AI");
cy013 = cyzhu.add("button", , "嵌入图转链接图");
cy014 = cyzhu.add("button", , "批量替换链接图");
cy015 = cyzhu.add("button", , "链接图建文档名");
cy016 = cyzhu.add("button", , "全部选中链接图像");
cy017 = cyzhu.add("button", , "全部选中嵌入图像");
cy018 = cyzhu.add("button", , "对象偏移路径");
hbzhu = mban1.add("panel", , "画板");
hb001 = hbzhu.add("button", , "按对象创建画板");
hb002 = hbzhu.add("button", , "选择对象创建画板");
hb003 = hbzhu.add("button", , "根据选择创建画板");
hb004 = hbzhu.add("button", , "排序/加框/分割");
hb005 = hbzhu.add("button", , "画板划分Pro");
hb006 = hbzhu.add("button", , "画板垂直两分");
hb007 = hbzhu.add("button", , "画板水平两分");
hb008 = hbzhu.add("button", , "修改画板");
hb009 = hbzhu.add("button", , "修改画板加框");
hb010 = hbzhu.add("button", , "移除画板");
hb011 = hbzhu.add("button", , "删除空白画板");
hb012 = hbzhu.add("button", , "画板批量命名");
hb013 = hbzhu.add("button", , "重命名画板");
hb014 = hbzhu.add("button", , "调整画板和对象");
hb015 = hbzhu.add("button", , "旋转画板和对象");
hb016 = hbzhu.add("button", , "统一画板尺寸");
hb017 = hbzhu.add("button", , "画板增减尺寸");
hb018 = hbzhu.add("button", , "当前画板加矩形");
hb019 = hbzhu.add("button", , "全部画板加矩形");
hb020 = hbzhu.add("button", , "所有画板编号");
hb021 = hbzhu.add("button", , "对象适合画板1.0");
hb022 = hbzhu.add("button", , "对象适配界面");
hb023 = hbzhu.add("button", , "页面适配对象");
hb024 = hbzhu.add("button", , "画板适合对象");
hb025 = hbzhu.add("button", , "群组所有页面");
hb026 = hbzhu.add("button", , "画板对象裁切");
hb027 = hbzhu.add("button", , "多图层转多画板");
hb028 = hbzhu.add("button", , "画板反序");
hb029 = hbzhu.add("button", , "选择对象对齐画板");
hb030 = hbzhu.add("button", , "对象居中画板");
wbzhu = mban1.add("panel", , "文本");
wb001 = wbzhu.add("button", , "文本段落转换");
wb002 = wbzhu.add("button", , "文本段落分行");
wb003 = wbzhu.add("button", , "文本段落合并");
wb004 = wbzhu.add("button", , "大小写转换");
wb005 = wbzhu.add("button", , "单行拆单字");
wb006 = wbzhu.add("button", , "文字转曲");
wb007 = wbzhu.add("button", , "选择字号相同字");
wb008 = wbzhu.add("button", , "修改字串及大小");
wb009 = wbzhu.add("button", , "插入页码等");
wb010 = wbzhu.add("button", , "正则文本属性");
wb011 = wbzhu.add("button", , "正则查找替换");
wb012 = wbzhu.add("button", , "高级查找替换");
//面板B--------------------------------------------
yqzhu1 = mban2.add("panel", , "印前1");
yq001 = yqzhu1.add("button", , "查看文件版本");
yq002 = yqzhu1.add("button", , "检查文本溢出");
yq003 = yqzhu1.add("button", , "印前检查");
yq004 = yqzhu1.add("button", , "标注四色值");
yq005 = yqzhu1.add("button", , "统一四色黑");
yq006 = yqzhu1.add("button", , "全部颜色转黑");
yq007 = yqzhu1.add("button", , "颜色取整");
yq008 = yqzhu1.add("button", , "专色转为印刷色");
yq009 = yqzhu1.add("button", , "删除文档专色");
yq010 = yqzhu1.add("button", , "查找白色叠印");
yq011 = yqzhu1.add("button", , "移除叠印属性");
yq012 = yqzhu1.add("button", , "移除非纯黑叠印");
yq013 = yqzhu1.add("button", , "文档优化");
yq014 = yqzhu1.add("button", , "删除游离点");
yq015 = yqzhu1.add("button", , "刀线属性设置");
yq016 = yqzhu1.add("button", , "刀线生成出血线");
yq017 = yqzhu1.add("button", , "刀板出血框生成器");
yq018 = yqzhu1.add("button", , "刀线出血画板");
yqzhu2 = mban2.add("panel", , "印前2");
yq019 = yqzhu2.add("button", , "印前角线V27.2");
yq020 = yqzhu2.add("button", , "印前角线X9.1");
yq021 = yqzhu2.add("button", , "轮转角线V3.5");
yq022 = yqzhu2.add("button", , "极速角线");
yq023 = yqzhu2.add("button", , "自动角线");
yq024 = yqzhu2.add("button", , "设置版材咬口");
yq025 = yqzhu2.add("button", , "裁切标记");
yq026 = yqzhu2.add("button", , "裁切线");
yq027 = yqzhu2.add("button", , "色号生成器V2.2");
yq028 = yqzhu2.add("button", , "极速色标V1.1");
yq029 = yqzhu2.add("button", , "自订图层名/专色");
yq030 = yqzhu2.add("button", , "缩放中心阵列");
yq031 = yqzhu2.add("button", , "一键拼版");
yq032 = yqzhu2.add("button", , "自动拼版");
yq033 = yqzhu2.add("button", , "群组拼版");
yq034 = yqzhu2.add("button", , "阵列复制");
yq035 = yqzhu2.add("button", , "阵列复制V1.2");
yq036 = yqzhu2.add("button", , "极速拼版V2.6");
ljzhu = mban2.add("panel", , "路径");
lj001 = ljzhu.add("button", , "测量路径周长");
lj002 = ljzhu.add("button", , "计算周长面积");
lj003 = ljzhu.add("button", , "黄金比例绘图");
lj004 = ljzhu.add("button", , "等分路径");
lj005 = ljzhu.add("button", , "锚点分割路径");
lj006 = ljzhu.add("button", , "分割曲线锚点");
lj007 = ljzhu.add("button", , "建立等分圆");
lj008 = ljzhu.add("button", , "创建内切圆");
lj009 = ljzhu.add("button", , "创建外接圆");
lj010 = ljzhu.add("button", , "多段路径连接");
lj011 = ljzhu.add("button", , "点到点连线");
lj012 = ljzhu.add("button", , "闭合开放路径");
lj013 = ljzhu.add("button", , "角加圆点形状");
lj014 = ljzhu.add("button", , "创建公切线");
lj015 = ljzhu.add("button", , "选择节点类型");
lj016 = ljzhu.add("button", , "自动画角平分线");
lj017 = ljzhu.add("button", , "剪切路径");
lj018 = ljzhu.add("button", , "修改圆滑路径");
lj019 = ljzhu.add("button", , "反向路径");
lj020 = ljzhu.add("button", , "锚点选择");
lj021 = ljzhu.add("button", , "删除选择的锚点");
lj022 = ljzhu.add("button", , "锚点手柄变形");
lj023 = ljzhu.add("button", , "所有锚点变圆角");
lj024 = ljzhu.add("button", , "快速锐化角");
//面板C--------------------------------------------
dxzhu = mban3.add("panel", , "对象");
dx001 = dxzhu.add("button", , "超级批量替换对象");
dx002 = dxzhu.add("button", , "批量替换保留对象");
dx003 = dxzhu.add("button", , "批量替换删除对象");
dx004 = dxzhu.add("button", , "批量替换对象");
dx005 = dxzhu.add("button", , "批量替换刀线上方");
dx006 = dxzhu.add("button", , "对象A替换B");
dx007 = dxzhu.add("button", , "对象替换V2.0");
dx008 = dxzhu.add("button", , "对象按中心互换");
dx009 = dxzhu.add("button", , "交换对象支持透明");
dx010 = dxzhu.add("button", , "对象复制到锚点");
dx011 = dxzhu.add("button", , "对象排列");
dx012 = dxzhu.add("button", , "按对象拆分图层");
dx013 = dxzhu.add("button", , "对象移到新图层");
dx014 = dxzhu.add("button", , "沿路径复制对象");
dx015 = dxzhu.add("button", , "选中对象去重线");
dx016 = dxzhu.add("button", , "解锁全部对象");
dx017 = dxzhu.add("button", , "调整对象大小");
dx018 = dxzhu.add("button", , "校正对象水平");
dx019 = dxzhu.add("button", , "对象随机排版");
dx020 = dxzhu.add("button", , "对象吸附路径锚点");
dx021 = dxzhu.add("button", , "统计所选对象");
bzzhu = mban3.add("panel", , "包装");
bz001 = bzzhu.add("button", , "极速手提袋V4.6");
bz002 = bzzhu.add("button", , "绘制手提袋");
bz003 = bzzhu.add("button", , "手提袋Pro");
bz004 = bzzhu.add("button", , "包装盒型1.0");
bz005 = bzzhu.add("button", , "包装盒型2.0");
bz006 = bzzhu.add("button", , "天地盖盒子");
bz007 = bzzhu.add("button", , "绘制纸箱");
bz008 = bzzhu.add("button", , "绘制外箱");
bz009 = bzzhu.add("button", , "轻松画纸箱");
bz010 = bzzhu.add("button", , "精装书封面");
bz011 = bzzhu.add("button", , "书籍封面版型");
bz012 = bzzhu.add("button", , "条形码识别");
bz013 = bzzhu.add("button", , "条形码制作");
bz014 = bzzhu.add("button", , "条形码及二维码");
bz015 = bzzhu.add("button", , "二维码生成器");
sjzhu1 = mban3.add("panel", , "设计1");
sj001 = sjzhu1.add("button", , "选择相同增强");
sj002 = sjzhu1.add("button", , "选择同类型");
sj003 = sjzhu1.add("button", , "流水号生成器");
sj004 = sjzhu1.add("button", , "调整尺寸");
sj005 = sjzhu1.add("button", , "统一尺寸");
sj006 = sjzhu1.add("button", , "统一线宽");
sj007 = sjzhu1.add("button", , "解散全部群组");
sj008 = sjzhu1.add("button", , "自动群组");
sj009 = sjzhu1.add("button", , "智能群组");
sj010 = sjzhu1.add("button", , "描边快速虚线");
sj011 = sjzhu1.add("button", , "随机虚线");
sj012 = sjzhu1.add("button", , "虚线打散");
sj013 = sjzhu1.add("button", , "圆角工具V2.3");
sj014 = sjzhu1.add("button", , "智能填充");
sj015 = sjzhu1.add("button", , "圆形随机填充");
sj016 = sjzhu1.add("button", , "创建无缝拼接图");
sj017 = sjzhu1.add("button", , "拼图分割");
sj018 = sjzhu1.add("button", , "图片恢复100%");
sj019 = sjzhu1.add("button", , "—键随机颜色");
sj020 = sjzhu1.add("button", , "随机填色");
sj021 = sjzhu1.add("button", , "随机透明度");
sj022 = sjzhu1.add("button", , "命名查找器");
sj023 = sjzhu1.add("button", , "CMYK查找潘通色");
sj024 = sjzhu1.add("button", , "CMYK图表生成器");
//面板D--------------------------------------------
sjzhu2 = mban4.add("panel", , "设计2");
sj025 = sjzhu2.add("button", , "快速创建对开页");
sj026 = sjzhu2.add("button", , "对象批量蒙板");
sj027 = sjzhu2.add("button", , "删除所有蒙版");
sj028 = sjzhu2.add("button", , "重新缩放");
sj029 = sjzhu2.add("button", , "随机缩放大小透明");
sj030 = sjzhu2.add("button", , "随机缩放旋转");
sj031 = sjzhu2.add("button", , "创建参考线");
sj032 = sjzhu2.add("button", , "页面缩放和居中");
sj033 = sjzhu2.add("button", , "加高光/阴影色板");
sj034 = sjzhu2.add("button", , "统—角度方向");
sj035 = sjzhu2.add("button", , "批量镜像和旋转");
sj036 = sjzhu2.add("button", , "批量加边框");
sj037 = sjzhu2.add("button", , "批量图片填充形状");
sj038 = sjzhu2.add("button", , "选中文本创建图层");
sj039 = sjzhu2.add("button", , "删除空白图层");
sj040 = sjzhu2.add("button", , "移动复制镜像");
sj041 = sjzhu2.add("button", , "创建近似圆");
sj042 = sjzhu2.add("button", , "融合圆球");
sj043 = sjzhu2.add("button", , "融合圆球(弧)");
sj044 = sjzhu2.add("button", , "创建时钟表盘");
sj045 = sjzhu2.add("button", , "自动创建日历");
sj046 = sjzhu2.add("button", , "AI变量导入");
sj047 = sjzhu2.add("button", , "AI变量巫术师");
sj048 = sjzhu2.add("button", , "文件夹AI批量PDF");
sj049 = sjzhu2.add("button", , "按图层另存pdf");
sj050 = sjzhu2.add("button", , "选择导出-PSD");
sj051 = sjzhu2.add("button", , "JPG/PDF选择导出");
sj052 = sjzhu2.add("button", , "多文件批量导jpg");
sj053 = sjzhu2.add("button", , "链接文件打包");
sj054 = sjzhu2.add("button", , "链接文件转曲打包");
由于合集中的【内角线】脚本无法使用,前二天刚刚开发一个【极速角线】包含内角线功能,替换无法使用的【内角线】脚本。
现在合集面板好了,这二天就可以完工了,最晚星期四可以发布。
tiantian
发表于 2025-1-21 21:22:46
本帖最后由 tiantian 于 2025-1-21 21:28 编辑
【V1.3】代码全部加进已经全部完工了,
【S1.3】做好一个版面,明晚可以完工,
后天测试一下,二款都可以发布了。
由于面板太多,所以增加面板提示功能。
yuanhua
发表于 2025-1-22 14:48:57
本帖最后由 yuanhua 于 2025-1-22 14:55 编辑
tiantian 发表于 2024-8-12 19:46
【链入多页PDF】和还有几个这位作者的脚本还是老问题,有的版本AI无法使用,这是原作者的脚本需要调用动作 ...
if(aFile.exists){
for(j=1;j<=pageCount;j++){
var pdfOptions = app.preferences.PDFFileOptions;
pdfOptions.pageToOpen = j;//此处选择置入页码
var myPlacedItem = doc.placedItems.add();
myPlacedItem.file = aFile;
myPlacedItem.embed();
}
}
在一个人的动作那看到的代码,创建链接对象指定文件.,
不知道有没有更方便获取PDF页数的动作,使用jsx调用vbs控制Acrobat来获取除外
以下是我以前写的获取PDF页面的动作,根据老动作加记事本查看常用的PDF几种格式得到
//file=new File("C:\\Users\\dell\\Desktop\\新建文档2_OK.pdf")
//app.open(file)
//$.writeln(PDFFile.readln()+"\n"+PDFFile.readln()+"\n"+PDFFile.readln()+"\n"+PDFFile.readln());
//$.writeln("可以打开");
//app.showPresets(file)
//都能打开
//File.eof 如果为 true,则读取尝试导致当前位置位于文件末尾,或者文件未打开。只读。
//$.writeln(InWriting);//一个个加载特别慢//丢到第三四个%%EOF后的部分,防止pitstop加载数据导致PDF页面读取不准
function GetPDFPageNumber(Path){
var PDFFile=new File(Path);
if(PDFFile.exists){
if(PDFFile.open("r",".pdf")){
var EOF=PDFFile.eof,Index=0,PageNum=0;
while (!EOF){
var InWriting=PDFFile.readln();
var Num=InWriting.match(/\/Type\s*\/Page(?!s)/g);//查找不仅跟s的且中间带有不指定数量空格的/Type/Page
if(Num!=null){PageNum+=Num.length;};
if(InWriting.search("%%EOF")>-1){Index+=1;};
EOF=(Index==2)?true:PDFFile.eof;//只检索到第二个%%EOF所在位置
var Count=InWriting.match(/\/Count\s+\d+/g);
if(Count!=null){PageNum=Count.replace(/\/Count\s+/g,"");EOF=true;};
};
PDFFile.close();
}else{alert("文件无法打开!","文件打开错误",true);};
}else{alert("路径文件不存在!","路径输入错误",true);};
//$.writeln(Index);
return PageNum;
};
//GetPDFPageNumber("C:\\Users\\dell\\Desktop\\新建文档2_OK.pdf")
//GetPDFPageNumber("C:\\Users\\dell\\Desktop\\试验\\PDF格式\\87.pdf")
//GetPDFPageNumber("C:\\Users\\dell\\Desktop\\试验\\15822_Architects_IR_OK.pdf")
//GetPDFPageNumber("C:\\Users\\dell\\Desktop\\新建文档2_OK.pdf");
调用动作的代码也学过----以前在CPC发没啥人理我...首来华印不清楚怎么发,所以直接源码复制黏贴
/*
Code for Import <atarget="_blank">https://scriptui.joonas.me</a> — (Triple click to select):
{"activeId":0,"items":{"item-0":{"id":0,"type":"Dialog","parentId":false,"style":{"varName":null,"text":"动作脚本","preferredSize":,"margins":10,"orientation":"column","spacing":10,"alignChildren":["center","center"]}},"item-1":{"id":1,"type":"Button","parentId":0,"style":{"varName":null,"text":"Button","justify":"center","preferredSize":,"alignment":null,"helpTip":null,"typeName":null}},"item-2":{"id":2,"type":"Button","parentId":0,"style":{"varName":null,"text":"Button","justify":"center","preferredSize":,"alignment":null,"helpTip":null,"typeName":null}}},"order":,"settings":{"importJSON":true,"indentSize":false,"cepExport":false,"includeCSSJS":true,"showDialog":true,"functionWrapper":false,"compactCode":false}}
*/
// DIALOG
// ======
#target illustrator
#targetengine "main"
//String.fromCharCode(parseInt(Bytes,16));//十六进制转十进制,单字节转码
//字符串对象的值为string.valueOf(); valueOf() 方法通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中。Unicode 字符码;
String.prototype.toUTF_8=function(){
var Word="",Words="";
var ASCII=/[\u0000-\u007f]/;//十六进制 Unicode码;
for(num=0;num<this.length;num+=1){
Word=this.charAt(num);
//UTF-16进制编码,ASCII部分与UTF-8共通通用可以直接转.弥补encodeURIComponent转UTF-8转不了的缺陷;
Words+=ASCII.test(Word)?Number(Word.charCodeAt(0)).toString(16).toLocaleLowerCase():encodeURIComponent(Word).replace(/%/g, "").toLocaleLowerCase();
//若非ASCII编码区域则去除转UTF-8的百分号并转化为小写字母//$.writeln (Words);
}
returnWords;//十六进制UTF-8编码
}
String.prototype.fromUTF_8=function(){
var Words="",num
for(num=0;num<this.length;num+=2){
Words=Words+"%"+this.substr(num,2);
}
return decodeURIComponent(Words);
}
String.prototype.includes=function(Word){
if(this.search(Word)!=-1){return true;}
return false;
}
Object.prototype.ButtonArrayAdd=function(Information){
var panel = this.add("panel");
panel.text = Information.name;
panel.orientation = "column";
panel.alignChildren = ["left","top"];
panel.spacing = 10;
panel.margins = 10;
panel.alignment = ["fill","center"];
var num;
var ChildActions=Information.child;
for(num=0;num<ChildActions.length;num++){
var button = panel.add("button");
button.text = ChildActions;
button.justify = "center";
button.alignment = ["fill","center"];
button.ClickEvent(Information,ChildActions);
}
}
Object.prototype.ClickEvent=function(Information,Name){
this.onClick=function(){
ActiveAction(Information.own,Information.name,Name)
}
}
//*****************************************************************************************************************************************************************************************
var dialog = new Window("palette");
dialog.text = "动作脚本";
dialog.orientation = "column";
dialog.alignChildren = ["center","center"];
dialog.spacing = 10;
dialog.margins = 10;
var own=new File($.fileName)
var Actions=own.parent.getFiles("*.aia");
if(Actions.length>0){
for(num=0;num<Actions.length;num++){
var Title=new ActionName(Actions);
dialog.ButtonArrayAdd(Title);
}
}
function ActionName(Action){
$.writeln (typeof Action)
Action.open("r");
var txt=Action.read().split('\n');
Action.close();
var Num,Name;
this.child=[];
this.own=Action;
for (Num=0;Num<txt.length;Num++){
if(txt.includes("/version")){var Num=Num+2;Name=txt.replace(/\t|\n|\v|\r|\f/g,"").fromUTF_8();this.name=Name;};//$.writeln("Name: "+this.name);
if(txt.includes("/action-")){var Num=Num+2;Name=txt.replace(/\t|\n|\v|\r|\f/g,"").fromUTF_8();this.child.push(Name);};//$.writeln("child: "+Name);
};
}
function ActiveAction(Action,fsName,Name){
app.loadAction(Action);//加载动作
app.doScript(Name,fsName);//运行指定动作
app.unloadAction(fsName,"");//全卸载
}
//这个功能没有用到,因为没有调用AI内置API?直接使用的引擎功能?通过动作直接就能运行
/*
function informationTransfer(theInformation){
var PassTheBridge = new BridgeTalk;
PassTheBridge.target = "illustrator";
PassTheBridge.body = theInformation;
PassTheBridge.send()
}
*/
dialog.show();
注 以前写的代码,认知不是很全,所以有注释错误请跳过
tiantian
发表于 2025-1-22 22:32:32
【AI脚本合集多功能版V1.3】三栏218款+【AI脚本合集多功能版S1.3】双栏218款
更新日志
新增面板提示功能
新增【全部选中链接图】
新增【全部选中嵌入图】
新增【对象偏移路径】
新增【全部画板居中合并】
新增【重命名画板】
新增【对象适合画板1.0】
新增【画板反序】
新增【删除游离点】
新增【颜色取整】
新增【刀板出血框生成器】
新增【刀线出血画板】
新增【极速角线】
新增【批量替换对象】
新增【批量替换刀线上方】
新增【绘制外箱】
新增【轻松画纸箱】
新增【精装书封面】
新增【条形码识别】
新增【批量图片填充形状】
新增【选中文本创建图层】
新增【文件夹AI批量PDF】
新增【按图层另存PDF】
删除【手绘刀版转线条】,高版本AI无法使用
删除【内角线生成器】,高版本AI无法使用
删除【选择导出PDF/JPG】,版本过期无法使用
willsuntan
发表于 2025-1-23 18:24:41
不错的插件合集,版本更新了,好用!!!!!
Top-ST
发表于 2025-2-7 08:55:44
感谢大佬不辞辛苦更新,收藏了
willsuntan
发表于 2025-2-21 21:43:14
这么好的插件,怎么没有人要呢???
页:
2
3
4
5
6
7
8
9
10
11
[12]
13
14
15