dxf17_jscode = """ function 定位码批量化替换外链新(){ var dialog = new Window("dialog"); dialog.text = "定位码批量快速换图 "; dialog.orientation = "row"; dialog.alignChildren = ["left","top"]; dialog.spacing = 10; dialog.margins = 16; // GROUP1 // ====== var group1 = dialog.add("group", undefined, {name: "group1"}); group1.preferredSize.width = 183; group1.orientation = "column"; group1.alignChildren = ["fill","top"]; group1.spacing = 10; group1.margins = 0; // PANEL1 // ====== var panel1 = group1.add("panel", undefined, undefined, {name: "panel1"}); panel1.text = "文件夹选择"; panel1.preferredSize.height = 205; panel1.orientation = "column"; panel1.alignChildren = ["left","top"]; panel1.spacing = 10; panel1.margins = 10; var statictext1 = panel1.add("statictext", undefined, undefined, {name: "statictext1"}); statictext1.text = "大货齐码裁片模板路径:"; var button1 = panel1.add("button", undefined, undefined, {name: "button1"}); button1.text = "路径选择"; button1.preferredSize.width = 300; var statictext2 = panel1.add("statictext", undefined, undefined, {name: "statictext2"}); statictext2.text = "待套花样路径选择:"; var button2 = panel1.add("button", undefined, undefined, {name: "button2"}); button2.text = "路径选择"; button2.preferredSize.width = 300; var statictext3 = panel1.add("statictext", undefined, undefined, {name: "statictext3"}); statictext3.text = "缓存切片裁片路径选择:"; var button3 = panel1.add("button", undefined, undefined, {name: "button3"}); button3.text = "路径选择"; button3.preferredSize.width = 300; var statictext4= panel1.add("statictext", undefined, undefined, {name: "statictext4"}); statictext4.text = "大货成品路径选择:"; var button4 = panel1.add("button", undefined, undefined, {name: "button4"}); button4.text = "路径选择"; button4.preferredSize.width = 300; // PANEL2 // ====== var panel2 = panel1.add("panel", undefined, undefined, {name: "panel2"}); panel2.text = "款号修改:"; panel2.orientation = "column"; panel2.alignChildren = ["left","top"]; panel2.spacing = 10; panel2.margins = 10; // PANEL4 // ====== var statictext11 = panel2.add("statictext", undefined, undefined, {name: "statictext11"}); statictext11.text = "是否拼合裁片组:"; var checkbox1 =panel2.add("checkbox", undefined, undefined, {name: "checkbox1"}); checkbox1.value = true; checkbox1.text = "拼合"; var statictext13 = panel2.add("statictext", undefined, undefined, {name: "statictext13"}); statictext13.text = "存储位置:"; var checkbox3 =panel2.add("checkbox", undefined, undefined, {name: "checkbox3"}); checkbox3.value = false; checkbox3.text = "模板位置"; // GROUP2 // ====== var group2 = dialog.add("group", undefined, {name: "group2"}); group2.orientation = "column"; group2.alignChildren = ["fill","top"]; group2.spacing = 10; group2.margins = 0; var ok = group2.add("button", undefined, undefined, {name: "ok"}); ok.text = "执行"; var cancel = group2.add("button", undefined, undefined, {name: "cancel"}); cancel.text = "取消"; var button8 = group2.add("button", undefined, undefined, {name: "button8"}); button8.text = "关于我们"; button1.onClick=function(){ button1.text =Folder.selectDialog ("大货齐码裁片模板路径:").fsName; } button2.onClick=function(){ button2.text =Folder.selectDialog ("待套花样路径选择:").fsName; } button3.onClick=function(){ button3.text =Folder.selectDialog ("缓存切片裁片路径选择:").fsName; } button4.onClick=function(){ button4.text =Folder.selectDialog ("大货成品路径选择:").fsName; } button8.onClick = function () { alert("自由花型工作室 17520145271 脚本开发 裁片排版 花型开发 ",dialog.text+"----关于我们"); } ok .onClick=function(){ var 大货齐码裁片模板路径 = new Folder(button1.text); var 待套花样路径选择 =new Folder(button2.text); var 大货文件存放位置 =new Folder(button4.text); var 缓存切片裁片路径选择 = new Folder(button3.text); var myFiles1 =大货齐码裁片模板路径.getFiles("*.tif*"); var myFiles2 =待套花样路径选择.getFiles("*.tif*"); for (var i = 0; i 0) { // 获取图层组中最后一个子图层的名称 var lastSubLayer = subLayers[subLayers.length - 1]; var lastSubLayerName = lastSubLayer.name; FastSubLayer = subLayers[0]; FastSubLayername= FastSubLayer.name // 输出图层组名称和最后一个子图层的名称 if (图层组名称 === "填充底图") { 填充底图裁片模板 = app.activeDocument.layerSets.getByName("填充底图") app.activeDocument.activeLayer = 填充底图裁片模板; 新建文档() 合并图层() 载入选区() 裁剪() 名称=文档名称去除后缀 +"-填充底图" 制作图案预设(名称) var 文件路径 = 导出目录 + "/" + 文档名称去除后缀 +"-填充底图"+ ".tif"; tiffOptions = new TiffSaveOptions(); app.activeDocument.saveAs(new File(文件路径), tiffOptions); app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); app.activeDocument=doc // 执行某一个操作(例如,设置图层组的可见性) // alert("测试") } else { // 执行别的操作(例如,隐藏其他图层组) 空白裁片模板 = app.activeDocument.layerSets.getByName(图层组名称).layers.getByName(lastSubLayerName); app.activeDocument.activeLayer = 空白裁片模板; 新建图层() app.activeDocument.activeLayer.name="最大白边值" 裁片边界 = lastSubLayer.bounds; 扩展值 = 毫米转像素(扩展毫米数); //50cm 裁片边界_左 = 毫米转像素(裁片边界[0]) - 扩展值; 裁片边界_上 = 毫米转像素(裁片边界[1]) - 扩展值; 裁片边界_右 = 毫米转像素(裁片边界[2]) + 扩展值; 裁片边界_下 = 毫米转像素(裁片边界[3]) + 扩展值; var selRegion = [ [裁片边界_左,裁片边界_上], [裁片边界_右,裁片边界_上], [裁片边界_右,裁片边界_下], [裁片边界_左,裁片边界_下] ]; app.activeDocument.selection.select(selRegion, SelectionType.REPLACE); 背景切换(); 恢复白底(); 填充(); 隐藏图层(); 裁片图层组 = app.activeDocument.layerSets.getByName(图层组名称) app.activeDocument.activeLayer = 裁片图层组 ; 新建文档() 空白裁片模板 = app.activeDocument.layerSets.getByName(图层组名称).layers.getByName(lastSubLayerName); app.activeDocument.activeLayer = 空白裁片模板; 删除图层() 最大白边值=app.activeDocument.layerSets.getByName(图层组名称).layers.getByName("最大白边值"); app.activeDocument.activeLayer = 最大白边值; app.activeDocument.crop(最大白边值.bounds, 0); // 保存为TIF var 文件路径 = 导出目录 + "/" + 图层组名称 + ".tif"; tiffOptions = new TiffSaveOptions(); app.activeDocument.saveAs(new File(文件路径), tiffOptions); app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); app.activeDocument=doc 最大白边值=app.activeDocument.layerSets.getByName(图层组名称).layers.getByName(FastSubLayername); app.activeDocument.activeLayer = 最大白边值; //上移图层() 多选图层() 转换为智能对象() 添加图层蒙版() // 向下合并() 转换为智能对象() // 重新链接到文件(文件路径) } } } } } function 恢复白底() //删除图层 { var d = new ActionDescriptor(); var r = new ActionReference(); r.putProperty(stringIDToTypeID("color"), stringIDToTypeID("colors")); d.putReference(stringIDToTypeID("null"), r); executeAction(stringIDToTypeID("exchange"), d, DialogModes.NO); } function 制作图案预设(名称) // { var d = new ActionDescriptor(); var r = new ActionReference(); r.putClass(stringIDToTypeID("pattern")); d.putReference(stringIDToTypeID("null"), r); var r1 = new ActionReference(); r1.putProperty(stringIDToTypeID("property"), stringIDToTypeID("selection")); r1.putEnumerated(stringIDToTypeID("document"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); d.putReference(stringIDToTypeID("using"), r1); d.putString(stringIDToTypeID("name"), 名称); executeAction(stringIDToTypeID("make"), d, DialogModes.NO); } function 合并图层() // { var d = new ActionDescriptor(); executeAction(stringIDToTypeID("mergeLayersNew"), d, DialogModes.NO); } function 背景切换() // { var d = new ActionDescriptor(); var r = new ActionReference(); r.putProperty(stringIDToTypeID("color"), stringIDToTypeID("colors")); d.putReference(stringIDToTypeID("null"), r); executeAction(stringIDToTypeID("reset"), d, DialogModes.NO); } function 裁剪() //裁剪 { var d = new ActionDescriptor(); d.putBoolean(stringIDToTypeID("delete"), true); executeAction(stringIDToTypeID("crop"), d, DialogModes.NO); } function 重新链接到文件(文件路径) //重新链接到文件 { var d = new ActionDescriptor(); d.putPath(stringIDToTypeID("null"), new File(文件路径)); d.putInteger(stringIDToTypeID("layerID"), 94); executeAction(stringIDToTypeID("placedLayerRelinkToFile"), d, DialogModes.NO); } function 转换为智能对象() //转换为智能对象 { var d = new ActionDescriptor(); executeAction(stringIDToTypeID("newPlacedLayer"), d, DialogModes.NO); } function 载入选区() //载入选区 { var d = new ActionDescriptor(); var r = new ActionReference(); r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection")); d.putReference(stringIDToTypeID("null"), r); var r1 = new ActionReference(); r1.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("transparencyEnum")); d.putReference(stringIDToTypeID("to"), r1); executeAction(stringIDToTypeID("set"), d, DialogModes.NO); } function 向下合并() //向下合并 { var d = new ActionDescriptor(); executeAction(stringIDToTypeID("mergeLayersNew"), d, DialogModes.NO); } function 添加图层蒙版() //添加图层蒙版 { var d = new ActionDescriptor(); d.putClass(stringIDToTypeID("new"), stringIDToTypeID("channel")); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask")); d.putReference(stringIDToTypeID("at"), r); d.putEnumerated(stringIDToTypeID("using"), stringIDToTypeID("userMaskEnabled"), stringIDToTypeID("revealSelection")); executeAction(stringIDToTypeID("make"), d, DialogModes.NO); } function 上移图层() // { var d = new ActionDescriptor(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("forwardEnum")); d.putReference(stringIDToTypeID("null"), r); d.putBoolean(stringIDToTypeID("makeVisible"), false); var list = new ActionList(); list.putInteger(11); d.putList(stringIDToTypeID("layerID"), list); executeAction(stringIDToTypeID("select"), d, DialogModes.NO); } function 毫米转像素(毫米) { //厘米转像素 doc_w = app.activeDocument.width; //用户设定的厘米数 支持小数 user_mm = UnitValue(毫米,"mm"); user_px = user_mm.as("px")*app.activeDocument.resolution/72; return user_px; } function 删除图层() //删除图层 { var d = new ActionDescriptor(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); d.putReference(stringIDToTypeID("null"), r); var list = new ActionList(); list.putInteger(22); d.putList(stringIDToTypeID("layerID"), list); executeAction(stringIDToTypeID("delete"), d, DialogModes.NO); } function 多选图层() // { var d = new ActionDescriptor(); var r = new ActionReference(); r.putName(stringIDToTypeID("layer"), "最大白边值"); d.putReference(stringIDToTypeID("null"), r); d.putEnumerated(stringIDToTypeID("selectionModifier"), stringIDToTypeID("selectionModifierType"), stringIDToTypeID("addToSelectionContinuous")); d.putBoolean(stringIDToTypeID("makeVisible"), false); var list = new ActionList(); list.putInteger(115); d.putList(stringIDToTypeID("layerID"), list); executeAction(stringIDToTypeID("select"), d, DialogModes.NO); } function 新建图层() //新建图层 { var d = new ActionDescriptor(); var r = new ActionReference(); r.putClass(stringIDToTypeID("layer")); d.putReference(stringIDToTypeID("null"), r); var d1 = new ActionDescriptor(); d1.putBoolean(stringIDToTypeID("group"), true); d.putObject(stringIDToTypeID("using"), stringIDToTypeID("layer"), d1); d.putInteger(stringIDToTypeID("layerID"), 22); executeAction(stringIDToTypeID("make"), d, DialogModes.NO); } function 填充() //填充 { var d = new ActionDescriptor(); d.putEnumerated(stringIDToTypeID("using"), stringIDToTypeID("fillContents"), stringIDToTypeID("foregroundColor")); d.putUnitDouble(stringIDToTypeID("opacity"), stringIDToTypeID("percentUnit"), 100); d.putEnumerated(stringIDToTypeID("mode"), stringIDToTypeID("blendMode"), stringIDToTypeID("normal")); executeAction(stringIDToTypeID("fill"), d, DialogModes.NO); } function 隐藏图层() // { var d = new ActionDescriptor(); var list = new ActionList(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); list.putReference(r); d.putList(stringIDToTypeID("null"), list); executeAction(stringIDToTypeID("hide"), d, DialogModes.NO); } function 新建文档() //复制图层 { var d = new ActionDescriptor(); var r = new ActionReference(); r.putClass(stringIDToTypeID("document")); d.putReference(stringIDToTypeID("null"), r); var r1 = new ActionReference(); r1.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); d.putReference(stringIDToTypeID("using"), r1); d.putInteger(stringIDToTypeID("version"), 5); executeAction(stringIDToTypeID("make"), d, DialogModes.NO); } function 更换当前文档裁片组外链(缓存切片裁片路径选择) { try { 裁片组 = app.activeDocument.layerSets.getByName("裁片").layers; } catch(e) { alert("找不到裁片组"); } for(var k=0;k<裁片组.length;k++) { 裁片 = 裁片组[k]; app.activeDocument.activeLayer = 裁片; if(裁片.kind == LayerKind.SMARTOBJECT) { 更换链接智能对象路径(缓存切片裁片路径选择); } } } function 更换链接智能对象路径(缓存切片裁片路径选择) { //获取当前图层外链的智能对象路径 //先获取链接的文件名 var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); //~ r.putName(charIDToTypeID("Lyr "), "◆左袖口"); //按名称查找 descLayer = executeActionGet(r); res = descLayer.getObjectValue(stringIDToTypeID("smartObject")); 链接文件名 = res.getString(stringIDToTypeID("fileReference")); //$.writeln(链接文件名); //~ 链接文件路径 = res.getPath(stringIDToTypeID("link")); //~ $.writeln(链接文件路径); 图片路径 = 缓存切片裁片路径选择 + "/" + 链接文件名; var d = new ActionDescriptor(); d.putPath(stringIDToTypeID("null"), new File(图片路径)); executeAction(stringIDToTypeID("placedLayerRelinkToFile"), d, DialogModes.NO); } function 另存为(folderObj,文档名称1) { 文档名称=activeDocument.name.replace(/(?:\.[^.]*$|$)/, ''); saveIn=File(folderObj+ "/"+文档名称1+"-"+文档名称); tifSaveOpt = new TiffSaveOptions(); tifSaveOpt.imageCompression = TIFFEncoding.TIFFLZW; tifSaveOpt.byteOrder = ByteOrder.IBM; asCopy=true app.activeDocument.saveAs(saveIn,tifSaveOpt,asCopy); } function 图层选择() //a { try { var d = new ActionDescriptor(); var r = new ActionReference(); r.putName(stringIDToTypeID("layer"), "款号"); d.putReference(stringIDToTypeID("null"), r); d.putBoolean(stringIDToTypeID("makeVisible"), false); var list = new ActionList(); list.putInteger(74); d.putList(stringIDToTypeID("layerID"), list); executeAction(stringIDToTypeID("select"), d, DialogModes.NO); } catch (e) { alert("找不到款号图层",dialog.text+"----关于"); } } /////////////////////////////////////////////////////////////////////////////// function 合并图层() //合并图层 { var d = new ActionDescriptor(); executeAction(stringIDToTypeID("mergeLayersNew"), d, DialogModes.NO); } function 选择裁片图层() // { try { var d = new ActionDescriptor(); var r = new ActionReference(); r.putName(stringIDToTypeID("layer"), "裁片"); d.putReference(stringIDToTypeID("null"), r); d.putBoolean(stringIDToTypeID("makeVisible"), false); var list = new ActionList(); list.putInteger(74); d.putList(stringIDToTypeID("layerID"), list); executeAction(stringIDToTypeID("select"), d, DialogModes.NO); } catch (e) { alert("找不到裁片图层",dialog.text+"----关于"); } } function 存储在原来位置(myFolder) { tiffOptions = new TiffSaveOptions(); try { app.activeDocument.saveAs(new File(文件路径), tiffOptions); } catch(e) { alert(文件太大无法保存) } } function 花样标准化(扩展毫米数) { var 扩展毫米数=80 app.preferences.rulerUnits = Units.MM; 裁片组 = app.activeDocument.layerSets; for(var z=0;z<裁片组.length;z++) { 当前裁片组 = 裁片组[z]; 花样图层 = 当前裁片组.layers[0]; 裁片图层 = 当前裁片组.layers[1]; 裁片边界 = 裁片图层.bounds; //~ alert(毫米转像素(50)) //~ 扩展值 = 毫米转像素(50); //50cm 扩展值 = 毫米转像素(扩展毫米数); //50cm 裁片边界_左 = 毫米转像素(裁片边界[0]) - 扩展值; 裁片边界_上 = 毫米转像素(裁片边界[1]) - 扩展值; 裁片边界_右 = 毫米转像素(裁片边界[2]) + 扩展值; 裁片边界_下 = 毫米转像素(裁片边界[3]) + 扩展值; //左上右下点XY坐标 var selRegion = [ [裁片边界_左,裁片边界_上], [裁片边界_右,裁片边界_上], [裁片边界_右,裁片边界_下], [裁片边界_左,裁片边界_下] ]; app.activeDocument.activeLayer = 花样图层; app.activeDocument.selection.select(selRegion, SelectionType.REPLACE); 按选区添加蒙版(); //制作一个白底衬底图 //新建一个图层 var d = new ActionDescriptor(); var r = new ActionReference(); r.putClass(stringIDToTypeID("layer")); d.putReference(stringIDToTypeID("null"), r); d.putInteger(stringIDToTypeID("layerID"), 198); executeAction(stringIDToTypeID("make"), d, DialogModes.NO); 白底图层 = app.activeDocument.activeLayer; 白底图层.name = "白底"; app.activeDocument.selection.select(selRegion, SelectionType.REPLACE); var c = new SolidColor(); c.rgb.hexValue = "FFFFFF"; app.activeDocument.selection.fill(c); 花样图层.grouped = false; 白底图层.move(花样图层,ElementPlacement.PLACEAFTER); app.activeDocument.activeLayer = 花样图层; var d = new ActionDescriptor(); var r = new ActionReference(); r.putName(stringIDToTypeID("layer"), "白底"); d.putReference(stringIDToTypeID("null"), r); d.putEnumerated(stringIDToTypeID("selectionModifier"), stringIDToTypeID("selectionModifierType"), stringIDToTypeID("addToSelectionContinuous")); executeAction(stringIDToTypeID("select"), d, DialogModes.NO); app.activeDocument.activeLayer.merge(); //合并当前选择图层 app.activeDocument.activeLayer.grouped = true; } function 毫米转像素(毫米) { //厘米转像素 doc_w = app.activeDocument.width; //用户设定的厘米数 支持小数 user_mm = UnitValue(毫米,"mm"); user_px = user_mm.as("px")*app.activeDocument.resolution/72; return user_px; } function 按选区添加蒙版() //先创建出选区 然后按选区添加出一个蒙版 { var d = new ActionDescriptor(); d.putClass(stringIDToTypeID("new"), stringIDToTypeID("channel")); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask")); d.putReference(stringIDToTypeID("at"), r); d.putEnumerated(stringIDToTypeID("using"), stringIDToTypeID("userMaskEnabled"), stringIDToTypeID("revealSelection")); executeAction(stringIDToTypeID("make"), d, DialogModes.NO); } } function 文档另存(缓存切片裁片路径选择){ var 导出目录 =缓存切片裁片路径选择; var 裁片组 = app.activeDocument.layerSets; for(var i=0;i<裁片组.length;i++) { app.activeDocument.duplicate("temp"); 复制文档裁片组 = app.activeDocument.layerSets; 当前裁片组 = 复制文档裁片组[i]; 当前裁片组名 = 当前裁片组.name; 花样图层 = 当前裁片组.layers[0]; 裁片图层 = 当前裁片组.layers[1]; app.activeDocument.activeLayer = 花样图层; //把花样图层导出 花样图层.grouped = false; //取消图层链接 仅当前图层可见(); //按花样图层大小裁剪文档 app.activeDocument.crop(花样图层.bounds,0); //拼合图像只保留花样图层 var d = new ActionDescriptor(); executeAction(stringIDToTypeID("flattenImage"), d, DialogModes.NO); //保存为TIF var 文件路径 = 导出目录 + "/" + 当前裁片组名 + ".tif"; tiffOptions = new TiffSaveOptions(); app.activeDocument.saveAs(new File(文件路径), tiffOptions); app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); } function 仅当前图层可见() { var d = new ActionDescriptor(); var list = new ActionList(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); list.putReference(r); d.putList(stringIDToTypeID("null"), list); d.putBoolean(stringIDToTypeID("toggleOptionsPalette"), true); executeAction(stringIDToTypeID("show"), d, DialogModes.NO); } } } dialog.show() } """