2741 lines
88 KiB
Python
2741 lines
88 KiB
Python
# -*- coding: utf-8 -*-
|
||
|
||
dxf_jscode = """
|
||
|
||
|
||
|
||
|
||
/////////////////////////////////////#############主函数设置花样组
|
||
|
||
function 设置花样组2() {
|
||
|
||
app.activeDocument.suspendHistory("设置花样组", "设置花样组()");
|
||
|
||
function 设置花样组() {
|
||
var currentDocument = app.activeDocument;
|
||
var matchCount = 0; // 匹配到的数值计数
|
||
var existingPatternSet = false;
|
||
var layerNames = []; // 保存匹配到的图层名称的数组
|
||
|
||
// 遍历图层
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
|
||
// 检查图层名称是否以P开头并且后面跟着数字
|
||
if (/^P\d+$/.test(layerName)) {
|
||
matchCount++;
|
||
layerNames.push(layerName); // 将匹配到的图层名称添加到数组中
|
||
}
|
||
}
|
||
|
||
// 输出匹配到的数值个数
|
||
$.writeln("匹配到的数值个数:" + matchCount);
|
||
|
||
// 如果没有匹配到图层,则显示提示框并中断执行
|
||
if (matchCount === 0) {
|
||
alert("当前文档没有匹配的花样图层,请进行图层更名操作", "来自左威的提醒");
|
||
return;
|
||
}
|
||
|
||
// 检查是否已存在含有"-大货裁片"的图层组
|
||
var layerSets = currentDocument.layerSets;
|
||
for (var k = 0; k < layerSets.length; k++) {
|
||
var layerSet = layerSets[k];
|
||
if (layerSet.name.indexOf("-大货裁片") !== -1) {
|
||
existingPatternSet = true;
|
||
break;
|
||
}
|
||
}
|
||
|
||
// 如果已存在含有"-大货裁片"的图层组,则显示提示框并中断执行
|
||
if (existingPatternSet) {
|
||
alert("当前文档已设置花样组,请勿重复设置", "来自左威的提醒");
|
||
return;
|
||
}
|
||
|
||
// 创建相应数量的图层组
|
||
for (var i = 0; i < matchCount; i++) {
|
||
var newLayerSet = currentDocument.layerSets.add();
|
||
newLayerSet.name = "P" + (i + 1) + "-大货裁片";
|
||
}
|
||
|
||
// 遍历当前打开的文档,除了主文档外
|
||
for (var i = 0; i < app.documents.length; i++) {
|
||
var document = app.documents[i];
|
||
var documentName = document.name.replace(/\.[^.]+$/, ""); // Remove extension
|
||
|
||
// 判断文档名称是否与主文档名称不相同
|
||
if (documentName !== currentDocument.name.replace(/\.[^.]+$/, "")) {
|
||
app.activeDocument = document;
|
||
删除背景()
|
||
修改图层名称(document, documentName);
|
||
}
|
||
}
|
||
|
||
// 恢复主文档为活动文档
|
||
app.activeDocument = currentDocument;
|
||
// alert("花样设置成功!", "来自左威的提醒");
|
||
}
|
||
|
||
function 修改图层名称(document, documentName) {
|
||
var currentDocument = document;
|
||
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
var splitArray = layerName.split("_");
|
||
var olddocumentName = documentName.split(".");
|
||
var newlayerName =splitArray[2]
|
||
var newdocumentName =olddocumentName [0]
|
||
// alert(splitArray)
|
||
// 检查正则分割后的第二个数组是否为空
|
||
if (newlayerName ===newdocumentName) {
|
||
return; // 如果相同,则跳过当前图层,不执行操作
|
||
}
|
||
|
||
var newLayerName = layerName + "_" + documentName;
|
||
layer.name = newLayerName;
|
||
|
||
}
|
||
}
|
||
|
||
|
||
function 切换mask() //
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
executeAction(stringIDToTypeID("select"), 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("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 存储选区(name) //存储选区
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putString(stringIDToTypeID("name"), name);
|
||
executeAction(stringIDToTypeID("duplicate"), d, DialogModes.NO);
|
||
|
||
}
|
||
function 取消选择() //取消选择
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("to"), stringIDToTypeID("ordinal"), stringIDToTypeID("none"));
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
function 删除背景() {
|
||
try {
|
||
找到背景图层();
|
||
删除图层()
|
||
} catch (error) {
|
||
// alert("删除背景时出现错误:" + error);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
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(2);
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
} catch (error) {
|
||
throw "找到背景图层时出现错误:" + error;
|
||
}
|
||
}
|
||
|
||
function 删除图层() {
|
||
try {
|
||
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(2);
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("delete"), d, DialogModes.NO);
|
||
} catch (error) {
|
||
throw "删除图层时出现错误:" + error;
|
||
}
|
||
}
|
||
|
||
}
|
||
/////////////////////////////////////#############主函数设置花样组
|
||
|
||
|
||
|
||
|
||
/////////////////////////////////////#############主函数裁片吸取
|
||
|
||
function 裁片吸取2() {
|
||
|
||
app.activeDocument.suspendHistory("裁片吸取", "裁片吸取()")
|
||
}
|
||
|
||
function 裁片吸取() {
|
||
|
||
|
||
|
||
var doc = app.activeDocument;
|
||
var targetLayerSet = null;
|
||
|
||
// 遍历所有图层组
|
||
for (var i = 0; i < doc.layerSets.length; i++) {
|
||
var layerSet = doc.layerSets[i];
|
||
|
||
// 判断图层组名称是否包含"大货裁片"
|
||
if (layerSet.name.indexOf("大货裁片") !== -1) {
|
||
targetLayerSet = layerSet; // 找到匹配的图层组
|
||
break; // 中断循环,不再继续遍历其他图层组
|
||
}
|
||
}
|
||
|
||
// 判断是否找到匹配的图层组
|
||
if (targetLayerSet) {
|
||
// 在这里继续执行下面的代码
|
||
// ...
|
||
|
||
|
||
|
||
var 主文档 = app.activeDocument;
|
||
var 主文档名称 = 主文档.name;
|
||
|
||
// 遍历当前打开的文档
|
||
for (var i = 0; i < app.documents.length; i++) {
|
||
var document = app.documents[i];
|
||
var documentName = document.name;
|
||
|
||
// 判断文档名称是否与主文档名称不相同
|
||
if (documentName !== 主文档名称) {
|
||
app.activeDocument = document;
|
||
遍历图层();
|
||
}
|
||
}
|
||
|
||
function 遍历图层() {
|
||
var layerNames = []; // 用于存储图层名称的数组
|
||
var currentDocument = app.activeDocument;
|
||
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
|
||
// 检查图层名称前缀是否已存在于数组中,如果是,则跳过当前图层
|
||
if (startsWithDuplicatePrefix(layerNames, layerName)) {
|
||
continue;
|
||
}
|
||
|
||
layerNames.push(layerName);
|
||
}
|
||
|
||
// 逐个处理图层
|
||
for (var k = 0; k < layerNames.length; k++) {
|
||
var 当前图层名称 = layerNames[k];
|
||
$.writeln("图层名称:" + 当前图层名称);
|
||
|
||
var 裁片 = currentDocument.layers.getByName(当前图层名称);
|
||
currentDocument.activeLayer = 裁片;
|
||
裁片.copy();
|
||
app.activeDocument = 主文档
|
||
var 主文档裁片名称 = 当前图层名称.split("-")[0];
|
||
try {
|
||
var 主文档裁片 = 主文档.layers.getByName(主文档裁片名称);
|
||
} catch (e) {
|
||
// 处理异常情况
|
||
//alert("无法找到指定的主文档裁片:" + 主文档裁片名称);
|
||
return; // 或者执行其他适当的操作
|
||
}
|
||
|
||
|
||
var targetLayerSet = getExistingLayerSet(主文档, 主文档裁片名称 + "大货裁片");
|
||
|
||
// 如果图层组不存在,则创建新的图层组
|
||
|
||
//targetLayerSet = 主文档.layerSets.add();
|
||
组名= 主文档裁片名称 + "-大货裁片";
|
||
// targetLayerSet.name = 组名
|
||
app.activeDocument.activeLayer = 主文档裁片;
|
||
// 载入蒙版选区()
|
||
//这个代码用上就会影响速度
|
||
//activeDocument.selection.load (activeDocument.channels.getByName(主文档裁片名称))
|
||
// 载入选区();
|
||
粘贴图层();
|
||
|
||
var 裁片名称 = 当前图层名称.split("_");
|
||
if (裁片名称.length > 1) {
|
||
var 角度信息 = 裁片名称[1];
|
||
|
||
if (角度信息 === "180" || 角度信息 === "-180") {
|
||
自由变换()
|
||
} else if (角度信息 === "-90") {
|
||
逆时针90旋转()
|
||
|
||
} else if (角度信息 === "90") {
|
||
|
||
顺时针90旋转()
|
||
} else {
|
||
// 如果以上条件都不满足,则执行默认的代码
|
||
}
|
||
|
||
var 当前图层 = app.activeDocument.activeLayer;
|
||
|
||
初始化模板裁片名称 = 当前图层名称.split("-");
|
||
初始化码数裁片名称 = 当前图层名称.split("_");
|
||
实际模板裁片名称 = 初始化模板裁片名称[0]+"-"+初始化码数裁片名称[2]
|
||
修改图层名称(当前图层, 实际模板裁片名称);
|
||
// 在这里添加处理图层的代码
|
||
|
||
try {
|
||
var doc = app.activeDocument;
|
||
var targetLayerSet = doc.layerSets.getByName(组名); // 指定的图层组名称
|
||
|
||
// 在这里处理图层组存在的情况
|
||
|
||
} catch (e) {
|
||
// 处理异常情况
|
||
alert("找不到指定的大货裁片组: " );
|
||
|
||
if (shouldAbortOnError) {
|
||
return; // 根据条件判断中断代码执行
|
||
}
|
||
}
|
||
|
||
// 继续执行其他操作
|
||
// ...
|
||
|
||
|
||
// 将当前图层移动到目标组中
|
||
var currentLayer = doc.activeLayer;
|
||
currentLayer.move(targetLayerSet, ElementPlacement.INSIDE);
|
||
|
||
|
||
}
|
||
|
||
app.activeDocument = currentDocument; // 将 app.activeDocument 重置为 currentDocument
|
||
|
||
}
|
||
}
|
||
|
||
app.activeDocument = 主文档
|
||
//alert("裁片吸取成功", "来自左威的提醒");
|
||
|
||
} else {
|
||
// 如果没有找到匹配的图层组,退出程序
|
||
// alert("当前文档没有匹配的大货裁片组,请先设置大货裁片组!!!")
|
||
}
|
||
}
|
||
|
||
|
||
|
||
function getExistingLayerSet(document, layerSetName) {
|
||
var existingLayerSet = null;
|
||
var layerSets = document.layerSets;
|
||
|
||
for (var i = 0; i < layerSets.length; i++) {
|
||
var layerSet = layerSets[i];
|
||
|
||
if (layerSet.name === layerSetName) {
|
||
existingLayerSet = layerSet;
|
||
break;
|
||
}
|
||
}
|
||
|
||
return existingLayerSet;
|
||
}
|
||
|
||
|
||
// 检查数组中是否存在以指定前缀开头的字符串
|
||
function startsWithDuplicatePrefix(array, str) {
|
||
var prefix = str.split("-")[0]; // 获取以"-"分隔的前缀部分
|
||
for (var i = 0; i < array.length; i++) {
|
||
if (array[i].indexOf(prefix) === 0) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
|
||
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("paste"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
function 旋转() //自由变换
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("freeTransformCenterState"), stringIDToTypeID("quadCenterState"), stringIDToTypeID("QCSAverage"));
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("distanceUnit"), 0);
|
||
d.putObject(stringIDToTypeID("offset"), stringIDToTypeID("offset"), d1);
|
||
d.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("percentUnit"), -100);
|
||
d.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("percentUnit"), -100);
|
||
d.putBoolean(stringIDToTypeID("linked"), true);
|
||
d.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("transform"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function 顺时针90旋转() //自由变换
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("freeTransformCenterState"), stringIDToTypeID("quadCenterState"), stringIDToTypeID("QCSAverage"));
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d.putObject(stringIDToTypeID("offset"), stringIDToTypeID("offset"), d1);
|
||
d.putUnitDouble(stringIDToTypeID("angle"), stringIDToTypeID("angleUnit"), 90);
|
||
d.putBoolean(stringIDToTypeID("linked"), true);
|
||
d.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("transform"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 逆时针90旋转() //自由变换
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("freeTransformCenterState"), stringIDToTypeID("quadCenterState"), stringIDToTypeID("QCSAverage"));
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d.putObject(stringIDToTypeID("offset"), stringIDToTypeID("offset"), d1);
|
||
d.putUnitDouble(stringIDToTypeID("angle"), stringIDToTypeID("angleUnit"), -90);
|
||
d.putBoolean(stringIDToTypeID("linked"), true);
|
||
d.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("transform"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
// 修改图层名称
|
||
function 修改图层名称(layer, newName) {
|
||
if (layer && layer.name !== newName) {
|
||
layer.name = newName;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
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("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function 切换mask() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
function 应用图层蒙版() //应用图层蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("apply"), true);
|
||
executeAction(stringIDToTypeID("delete"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
|
||
function select_21902465820313() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putOffset(stringIDToTypeID("historyState"), -3);
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
/////////////////////////////////////#############主函数裁片吸取
|
||
|
||
|
||
|
||
/////////////////////////////////////#############主函数裁片放置
|
||
|
||
function 设置花样组顺序居中() {
|
||
var doc = app.activeDocument;
|
||
var targetLayerSet = null;
|
||
|
||
// 遍历所有图层组
|
||
for (var i = 0; i < doc.layerSets.length; i++) {
|
||
var layerSet = doc.layerSets[i];
|
||
|
||
// 判断图层组名称是否包含"大货裁片"
|
||
if (layerSet.name.indexOf("大货裁片") !== -1) {
|
||
targetLayerSet = layerSet; // 找到匹配的图层组
|
||
break; // 中断循环,不再继续遍历其他图层组
|
||
}
|
||
}
|
||
|
||
// 判断是否找到匹配的图层组
|
||
if (targetLayerSet) {
|
||
// 判断图层组中是否存在图层
|
||
if (targetLayerSet.layers.length > 0) {
|
||
// 在这里执行处理图层的操作
|
||
var currentDocument = app.activeDocument;
|
||
var matchCount = 0; // 匹配到的数值计数
|
||
var existingPatternSet = false;
|
||
var layerNames = []; // 保存匹配到的图层名称的数组
|
||
|
||
// 遍历图层
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
|
||
// 检查图层名称是否以P开头并且后面跟着数字
|
||
if (/^P\d+$/.test(layerName)) {
|
||
matchCount++;
|
||
layerNames.push(layerName); // 将匹配到的图层名称添加到数组中
|
||
}
|
||
}
|
||
|
||
// 输出匹配到的数值个数
|
||
// $.writeln("匹配到的数值个数:" + matchCount);
|
||
|
||
// 遍历保存的图层名称数组
|
||
for (var i = 0; i < layerNames.length; i++) {
|
||
var name = layerNames[i];
|
||
var 当前花样图层 = app.activeDocument.layers.getByName(name);
|
||
app.activeDocument.activeLayer = 当前花样图层;
|
||
选择蒙版();
|
||
应用图层蒙版();
|
||
var layerCenterInfo = 获取当前图层中心坐标();
|
||
if (layerCenterInfo !== null) {
|
||
var layerName = layerCenterInfo.layerName;
|
||
var 花样图层X = layerCenterInfo.centerX;
|
||
var 花样图层Y = layerCenterInfo.centerY;
|
||
|
||
// $.writeln("图层名称:" + layerName);
|
||
//$.writeln("中心坐标:(" + centerX + ", " + centerY + ")");
|
||
} else {
|
||
$.writeln("无法获取当前图层中心坐标。");
|
||
}
|
||
历史记录回退();
|
||
var 裁片组名称 = name + "-大货裁片";
|
||
var 裁片组 = app.activeDocument.layerSets.getByName(裁片组名称);
|
||
app.activeDocument.activeLayer = 裁片组;
|
||
对裁片进行大小排序();
|
||
app.activeDocument.activeLayer = 裁片组;
|
||
var centerCoordinates = 获取图层组中心坐标();
|
||
if (centerCoordinates !== null) {
|
||
var 空白裁片组X = centerCoordinates[0];
|
||
var 空白裁片组Y = centerCoordinates[1];
|
||
|
||
app.activeDocument.activeLayer.translate(
|
||
花样图层X - Number(空白裁片组X),
|
||
花样图层Y - Number(空白裁片组Y)
|
||
); //全局单位设置为mm即可
|
||
|
||
//$.writeln("图层组中心坐标:(" + centerX + ", " + centerY + ")");
|
||
} else {
|
||
$.writeln("无法获取图层组中心坐标。");
|
||
}
|
||
}
|
||
} else {
|
||
// 如果图层组中不存在图层,执行其他操作或退出程序
|
||
alert("当前大货裁片内未抓取裁片!!!");
|
||
}
|
||
} else {
|
||
// 如果没有找到匹配的图层组,退出程序
|
||
alert("当前文档未设置大货裁片组!!!");
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
function 选择蒙版() //选择蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 应用图层蒙版() //应用图层蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("apply"), true);
|
||
executeAction(stringIDToTypeID("delete"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
function 获取当前图层中心坐标() {
|
||
var currentDocument = app.activeDocument;
|
||
var currentLayer = currentDocument.activeLayer;
|
||
|
||
if (currentLayer) {
|
||
var bounds = currentLayer.bounds;
|
||
var centerX = bounds[0] + (bounds[2] - bounds[0]) / 2;
|
||
var centerY = bounds[1] + (bounds[3] - bounds[1]) / 2;
|
||
|
||
return {
|
||
layerName: currentLayer.name,
|
||
centerX: centerX,
|
||
centerY: centerY
|
||
};
|
||
} else {
|
||
$.writeln("没有当前图层。");
|
||
return null;
|
||
}
|
||
}
|
||
|
||
function 历史记录回退() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putOffset(stringIDToTypeID("historyState"), -1);
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 获取图层组中心坐标() {
|
||
var currentDocument = app.activeDocument;
|
||
var currentLayer = currentDocument.activeLayer;
|
||
|
||
if (currentLayer.typename === "LayerSet") {
|
||
var layers = currentLayer.layers;
|
||
|
||
if (layers.length > 0) {
|
||
var firstLayer = layers[0];
|
||
var bounds = firstLayer.bounds;
|
||
|
||
var centerX = bounds[0] + (bounds[2] - bounds[0]) / 2;
|
||
var centerY = bounds[1] + (bounds[3] - bounds[1]) / 2;
|
||
|
||
return [centerX, centerY];
|
||
} else {
|
||
$.writeln("图层组没有任何图层。");
|
||
}
|
||
} else {
|
||
$.writeln("当前图层不是图层组。");
|
||
}
|
||
|
||
// 如果无法获取图层组的中心坐标,则返回 null
|
||
return null;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
function 对裁片进行大小排序() {
|
||
var currentDocument = app.activeDocument;
|
||
var currentLayer = currentDocument.activeLayer;
|
||
|
||
if (currentLayer.typename === "LayerSet") {
|
||
var layers = currentLayer.layers;
|
||
|
||
if (layers.length > 0) {
|
||
var layerArray = [];
|
||
|
||
// 遍历图层组的每个图层,将图层和它们的宽度、高度存储到数组中
|
||
for (var i = 0; i < layers.length; i++) {
|
||
var layer = layers[i];
|
||
if (layer.kind === LayerKind.NORMAL && layer.bounds) {
|
||
var width = layer.bounds[2] - layer.bounds[0];
|
||
var height = layer.bounds[3] - layer.bounds[1];
|
||
layerArray.push({
|
||
layer: layer,
|
||
width: width,
|
||
height: height
|
||
});
|
||
}
|
||
}
|
||
|
||
// 按照宽度和高度从大到小排序图层数组
|
||
layerArray.sort(function(a, b) {
|
||
if (a.width === b.width) {
|
||
return b.height - a.height;
|
||
}
|
||
return b.width - a.width;
|
||
});
|
||
|
||
// 创建一个临时图层组,用于存放排序后的裁片
|
||
var tempGroup = currentLayer.parent.layerSets.add();
|
||
|
||
// 将排序后的裁片依次移动到临时图层组中
|
||
for (var i = 0; i < layerArray.length; i++) {
|
||
var layerInfo = layerArray[i];
|
||
var layer = layerInfo.layer;
|
||
layer.move(tempGroup, ElementPlacement.INSIDE);
|
||
}
|
||
|
||
// 将临时图层组的裁片移动回原始图层组中
|
||
for (var i = tempGroup.layers.length - 1; i >= 0; i--) {
|
||
var layer = tempGroup.layers[i];
|
||
layer.move(currentLayer, ElementPlacement.PLACEATBEGINNING);
|
||
}
|
||
|
||
// 删除临时图层组
|
||
tempGroup.remove();
|
||
|
||
$.writeln("已对裁片进行大小排序。");
|
||
} else {
|
||
$.writeln("图层组没有任何图层。");
|
||
}
|
||
} else {
|
||
$.writeln("当前图层不是图层组。");
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/////////////////////////////////////#############主函数裁片放置
|
||
|
||
|
||
|
||
////////////////通码延伸
|
||
|
||
|
||
|
||
|
||
function 裁片射出() {
|
||
主文档 = app.activeDocument;
|
||
var 主文档名称 = 主文档.name;
|
||
|
||
// 遍历当前打开的文档
|
||
for (var i = 0; i < app.documents.length; i++) {
|
||
var document = app.documents[i];
|
||
var documentName = document.name;
|
||
|
||
// 判断文档名称是否与主文档名称不相同
|
||
if (documentName !== 主文档名称) {
|
||
app.activeDocument = document;
|
||
遍历图层();
|
||
}
|
||
}
|
||
|
||
function 遍历图层() {
|
||
var layerNames = []; // 用于存储图层名称的数组
|
||
var currentDocument = app.activeDocument;
|
||
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
layerNames.push(layerName);
|
||
}
|
||
|
||
// 逐个处理图层
|
||
for (var k = 0; k < layerNames.length; k++) {
|
||
var 当前图层名称 = layerNames[k];
|
||
// $.writeln("图层名称:" + 当前图层名称);
|
||
// alert(当前图层名称);
|
||
|
||
var parts = 当前图层名称.split("-");
|
||
if (parts.length > 0) {
|
||
var 裁片名称 = parts[0];
|
||
app.activeDocument = 主文档;
|
||
$.writeln(裁片名称);
|
||
初始化模板裁片名称 = 当前图层名称.split("-");
|
||
初始化码数裁片名称 = 当前图层名称.split("_");
|
||
大货组名称 =初始化模板裁片名称[0]+("-大货裁片")
|
||
实际裁片名称 = 初始化模板裁片名称[0]+"-"+初始化码数裁片名称[2]
|
||
$.writeln(大货组名称);
|
||
$.writeln(实际裁片名称);
|
||
var 空白裁片模板 = app.activeDocument.layerSets.getByName(大货组名称).layers.getByName(实际裁片名称 );
|
||
app.activeDocument.activeLayer = 空白裁片模板;
|
||
|
||
载入选区();
|
||
var 裁片 = app.activeDocument.layers.getByName(裁片名称);
|
||
app.activeDocument.activeLayer = 裁片;
|
||
添加图层蒙版()
|
||
应用图层蒙版()
|
||
裁片.copy();
|
||
历史记录回退()
|
||
app.activeDocument = currentDocument;
|
||
图层选择(当前图层名称);
|
||
载入选区();
|
||
粘贴图层();
|
||
|
||
取消选择();
|
||
// app.refresh();
|
||
|
||
|
||
var 裁片名称 = 当前图层名称.split("_");
|
||
if (裁片名称.length > 1) {
|
||
var 角度信息 = 裁片名称[1];
|
||
|
||
if (角度信息 === "180" || 角度信息 === "-180") {
|
||
旋转();
|
||
} else if (角度信息 === "-90") {
|
||
逆时针90旋转()
|
||
|
||
} else if (角度信息 === "90") {
|
||
|
||
顺时针90旋转()
|
||
} else {
|
||
// 如果以上条件都不满足,则执行默认的代码
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
烧花线添加()//alert("当前码拍好")///////////////////////////////////这里可以填写添加烧花线函数
|
||
|
||
}
|
||
//alert("排版完成,请检查文件!!!")
|
||
app.activeDocument = 主文档;
|
||
|
||
|
||
function 粘贴图层() //粘贴图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
executeAction(stringIDToTypeID("paste"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function 复制图层() //复制图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
executeAction(stringIDToTypeID("copyEvent"), 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();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("to"), stringIDToTypeID("ordinal"), stringIDToTypeID("none"));
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 图层选择(当前图层名称) //
|
||
{
|
||
|
||
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(6);
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 自由变换() //自由变换
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("freeTransformCenterState"), stringIDToTypeID("quadCenterState"), stringIDToTypeID("QCSAverage"));
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("distanceUnit"), 0);
|
||
d.putObject(stringIDToTypeID("offset"), stringIDToTypeID("offset"), d1);
|
||
d.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("percentUnit"), -100);
|
||
d.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("percentUnit"), -100);
|
||
d.putBoolean(stringIDToTypeID("linked"), true);
|
||
d.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("transform"), 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(8);
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), 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("channel"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("apply"), true);
|
||
executeAction(stringIDToTypeID("delete"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 拼合所有蒙版() //拼合所有蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("document"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("e805a6ee-6d75-4b62-b6fe-f5873b5fdf20"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 选择蒙版() //选择蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 历史记录回退() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putOffset(stringIDToTypeID("historyState"), -5);
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function 烧花线添加() {
|
||
|
||
app.activeDocument.suspendHistory("烧花线添加", "烧花线()");
|
||
|
||
|
||
function 烧花线() {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// 遍历当前文档图层
|
||
|
||
var doc = app.activeDocument;
|
||
var layers = doc.layers;
|
||
var filteredLayers = [];
|
||
|
||
// 遍历图层,筛选以P开头的图层
|
||
for (var i = 0; i < layers.length; i++) {
|
||
var layer = layers[i];
|
||
if (layer.name.charAt(0) === 'P') {
|
||
filteredLayers.push(layer);
|
||
}
|
||
}
|
||
|
||
空置图层()
|
||
// 输出图层名称
|
||
for (var j = 0; j < filteredLayers.length; j++) {
|
||
var filteredLayer = filteredLayers[j];
|
||
|
||
var 裁片底图名称=filteredLayer.name;
|
||
|
||
多选图层(裁片底图名称);
|
||
|
||
// alert(filteredLayer.name);
|
||
|
||
}
|
||
合并图层();
|
||
置为顶层();
|
||
画布大小();
|
||
var layer = app.activeDocument.activeLayer;
|
||
layer.name = "底图";
|
||
恢复默认颜色()
|
||
矩形选框像素点()
|
||
//色彩范围()
|
||
填充();
|
||
魔棒烧花线()
|
||
新建图层()
|
||
var layer2 = app.activeDocument.activeLayer;
|
||
layer2.name = "剪口";
|
||
扩展2();
|
||
恢复止口线默认颜色()
|
||
填充();
|
||
矩形选框准备删除()
|
||
清除();
|
||
魔棒();
|
||
扩展();
|
||
选择反向();
|
||
清除();
|
||
var 底图 = app.activeDocument.layers.getByName( "底图");
|
||
app.activeDocument.activeLayer=底图;
|
||
矩形选框准备删除()
|
||
清除();
|
||
置为底层()
|
||
图层样式()
|
||
取消选择()
|
||
|
||
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("addToSelection"));
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
var list = new ActionList();
|
||
list.putInteger(4);
|
||
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 空置图层() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("selectNoLayers"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 恢复止口线默认颜色() //取消选择
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("color"), stringIDToTypeID("foregroundColor"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putDouble(stringIDToTypeID("cyan"), 20);
|
||
d1.putDouble(stringIDToTypeID("magenta"), 0);
|
||
d1.putDouble(stringIDToTypeID("yellowColor"), 0);
|
||
d1.putDouble(stringIDToTypeID("black"), 0);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("CMYKColorClass"), d1);
|
||
d.putString(stringIDToTypeID("source"), "photoshopPicker");
|
||
executeAction(stringIDToTypeID("set"), 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();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("distanceUnit"), 0);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("point"), d1);
|
||
d.putInteger(stringIDToTypeID("tolerance"), 6);
|
||
d.putBoolean(stringIDToTypeID("contiguous"), false);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
function 矩形选框像素点() //矩形选框
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("top"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("left"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("bottom"), stringIDToTypeID("distanceUnit"), 0.48);
|
||
d1.putUnitDouble(stringIDToTypeID("right"), stringIDToTypeID("distanceUnit"), 0.48);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("rectangle"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 置为底层() //置为底层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var r1 = new ActionReference();
|
||
r1.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("back"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("move"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 置为顶层() //置为顶层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var r1 = new ActionReference();
|
||
r1.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("front"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("move"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
function 色彩范围() //色彩范围
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
d.putInteger(stringIDToTypeID("fuzziness"), 40);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putDouble(stringIDToTypeID("luminance"), 0);
|
||
d1.putDouble(stringIDToTypeID("a"), 0);
|
||
d1.putDouble(stringIDToTypeID("b"), 0);
|
||
d.putObject(stringIDToTypeID("minimum"), stringIDToTypeID("labColor"), d1);
|
||
var d2 = new ActionDescriptor();
|
||
d2.putDouble(stringIDToTypeID("luminance"), 0);
|
||
d2.putDouble(stringIDToTypeID("a"), 0);
|
||
d2.putDouble(stringIDToTypeID("b"), 0);
|
||
d.putObject(stringIDToTypeID("maximum"), stringIDToTypeID("labColor"), d2);
|
||
d.putInteger(stringIDToTypeID("colorModel"), 0);
|
||
executeAction(stringIDToTypeID("colorRange"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 新建图层() //新建图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putClass(stringIDToTypeID("layer"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putInteger(stringIDToTypeID("layerID"), 33);
|
||
executeAction(stringIDToTypeID("make"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 扩展2() //扩展
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
d.putUnitDouble(stringIDToTypeID("by"), stringIDToTypeID("pixelsUnit"), 1);
|
||
d.putBoolean(stringIDToTypeID("selectionModifyEffectAtCanvasBounds"), false);
|
||
executeAction(stringIDToTypeID("expand"), 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();
|
||
d.putBoolean(stringIDToTypeID("relative"), true);
|
||
d.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("distanceUnit"), 40);
|
||
d.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("distanceUnit"), 40);
|
||
d.putEnumerated(stringIDToTypeID("horizontal"), stringIDToTypeID("horizontalLocation"), stringIDToTypeID("center"));
|
||
d.putEnumerated(stringIDToTypeID("vertical"), stringIDToTypeID("verticalLocation"), stringIDToTypeID("center"));
|
||
executeAction(stringIDToTypeID("canvasSize"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 魔棒() //魔棒
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 3);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("pixelsUnit"), 3);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("point"), d1);
|
||
d.putInteger(stringIDToTypeID("tolerance"), 6);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 矩形选框准备删除() //矩形选框
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("top"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("left"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("bottom"), stringIDToTypeID("distanceUnit"), 0.96);
|
||
d1.putUnitDouble(stringIDToTypeID("right"), stringIDToTypeID("distanceUnit"), 0.96);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("rectangle"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 扩展() //扩展
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
d.putUnitDouble(stringIDToTypeID("by"), stringIDToTypeID("pixelsUnit"), 25);
|
||
d.putBoolean(stringIDToTypeID("selectionModifyEffectAtCanvasBounds"), false);
|
||
executeAction(stringIDToTypeID("expand"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 选择反向() //选择反向
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
executeAction(stringIDToTypeID("inverse"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 清除() //清除
|
||
{
|
||
app.activeDocument.selection.clear();
|
||
|
||
|
||
}
|
||
|
||
|
||
function 图层样式() //图层样式
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("layerEffects"));
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("scale"), stringIDToTypeID("percentUnit"), 12);
|
||
var d2 = new ActionDescriptor();
|
||
d2.putBoolean(stringIDToTypeID("enabled"), true);
|
||
d2.putBoolean(stringIDToTypeID("present"), true);
|
||
d2.putBoolean(stringIDToTypeID("showInDialog"), true);
|
||
d2.putEnumerated(stringIDToTypeID("style"), stringIDToTypeID("frameStyle"), stringIDToTypeID("outsetFrame"));
|
||
d2.putEnumerated(stringIDToTypeID("paintType"), stringIDToTypeID("frameFill"), stringIDToTypeID("solidColor"));
|
||
d2.putEnumerated(stringIDToTypeID("mode"), stringIDToTypeID("blendMode"), stringIDToTypeID("normal"));
|
||
d2.putUnitDouble(stringIDToTypeID("opacity"), stringIDToTypeID("percentUnit"), 100);
|
||
d2.putUnitDouble(stringIDToTypeID("size"), stringIDToTypeID("pixelsUnit"), 16);
|
||
var d3 = new ActionDescriptor();
|
||
d3.putDouble(stringIDToTypeID("red"), 255);
|
||
d3.putDouble(stringIDToTypeID("green"), 0);
|
||
d3.putDouble(stringIDToTypeID("blue"), 0);
|
||
d2.putObject(stringIDToTypeID("color"), stringIDToTypeID("RGBColor"), d3);
|
||
d2.putBoolean(stringIDToTypeID("overprint"), false);
|
||
d1.putObject(stringIDToTypeID("frameFX"), stringIDToTypeID("frameFX"), d2);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("layerEffects"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 取消选择() //取消选择
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("to"), stringIDToTypeID("ordinal"), stringIDToTypeID("none"));
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
/////////////////////////////////////// 删除指定名称蒙版主函数体
|
||
|
||
function 删除指定名称蒙版() {
|
||
var currentDocument = app.activeDocument;
|
||
var matchCount = 0; // 匹配到的数值计数
|
||
var existingPatternSet = false;
|
||
var layerNames = []; // 保存匹配到的图层名称的数组
|
||
|
||
// 遍历图层
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
|
||
// 检查图层名称是否以P开头并且后面跟着数字
|
||
if (/^P\d+$/.test(layerName)) {
|
||
matchCount++;
|
||
layerNames.push(layer); // 将匹配到的图层添加到数组中
|
||
}
|
||
}
|
||
|
||
// 输出匹配到的数值个数
|
||
$.writeln("匹配到的数值个数:" + matchCount);
|
||
|
||
// 遍历匹配到的图层名称
|
||
for (var i = 0; i < layerNames.length; i++) {
|
||
var layerName = layerNames[i].name;
|
||
// $.writeln("匹配到的图层名称:" + layerName);
|
||
var 当前花样图层 = app.activeDocument.layers.getByName(layerName);
|
||
app.activeDocument.activeLayer = 当前花样图层;
|
||
选择蒙版();
|
||
删除图层蒙版()
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
function 选择蒙版() //选择蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 删除图层蒙版() //删除图层蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("delete"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
/////////////////////////////////////// 删除指定名称蒙版主函数体
|
||
|
||
|
||
/////////////////////////////////////// 信息写入主函数体
|
||
|
||
function 信息写入() {
|
||
app.activeDocument.suspendHistory("信息写入", "信息写入2()");
|
||
}
|
||
|
||
function 信息写入2() {
|
||
// 修改后的遍历图层代码
|
||
app.preferences.rulerUnits = Units.MM; // 修改指定单位为毫米
|
||
var currentDocument = app.activeDocument;
|
||
var layerNames = []; // 保存匹配到的图层名称的数组
|
||
|
||
// 遍历图层
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
|
||
// 检查图层名称是否以P开头并且后面跟着数字
|
||
if (/^P\d+$/.test(layerName)) {
|
||
layerNames.push(layerName); // 将匹配到的图层名称添加到数组中
|
||
}
|
||
}
|
||
|
||
// 创建一个新的图层组来保存信息
|
||
var infoGroup = currentDocument.layerSets.add();
|
||
infoGroup.name = "图层基础信息";
|
||
|
||
// 遍历匹配到的图层,输出宽度和高度,并创建图层保存信息
|
||
for (var i = 0; i < layerNames.length; i++) {
|
||
var 当前裁片名称 = layerNames[i];
|
||
var 裁片 = app.activeDocument.layers.getByName(当前裁片名称);
|
||
app.activeDocument.activeLayer = 裁片;
|
||
载入蒙版选区();
|
||
var 选区尺寸 = 获取当前选区宽高();
|
||
|
||
// 检查是否有有效选区,并输出宽度和高度
|
||
if (选区尺寸.宽度 !== undefined && 选区尺寸.高度 !== undefined) {
|
||
// 输出宽度和高度
|
||
$.writeln("选区宽度:" + 选区尺寸.宽度 + " 毫米");
|
||
$.writeln("选区高度:" + 选区尺寸.高度 + " 毫米");
|
||
|
||
// 创建文本图层,并将宽度和高度信息写入图层
|
||
var textLayer = infoGroup.artLayers.add();
|
||
var 当前图层=app.activeDocument.activeLayer
|
||
当前图层.name=当前裁片名称 + "_" + 选区尺寸.宽度 + "_" + 选区尺寸.高度 ;
|
||
} else {
|
||
$.writeln("当前没有有效选区。");
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
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("mask"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 获取当前选区宽高() {
|
||
app.preferences.rulerUnits = Units.MM; // 修改指定单位为毫米
|
||
|
||
// 获取当前的活动文档
|
||
var currentDocument = app.activeDocument;
|
||
|
||
// 获取当前的选区
|
||
var currentSelection = currentDocument.selection;
|
||
|
||
// 检查是否有有效选区
|
||
if (currentSelection !== null && !currentSelection.bounds.isNull) {
|
||
// 获取选区的边界坐标
|
||
var bounds = currentSelection.bounds;
|
||
|
||
// 计算选区的宽度和高度并保留两位小数
|
||
var selectionWidth = parseFloat(bounds[2] - bounds[0]).toFixed(2);
|
||
var selectionHeight = parseFloat(bounds[3] - bounds[1]).toFixed(2);
|
||
|
||
// 返回选区的宽度和高度
|
||
return { 宽度: selectionWidth, 高度: selectionHeight };
|
||
} else {
|
||
// 返回空对象表示当前没有有效选区
|
||
return {};
|
||
}
|
||
}
|
||
|
||
/////////////////////////////////////// 信息写入主函数体
|
||
|
||
|
||
/////////////////////////////////////// 裁片射出缩放主函数体
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function 裁片射出缩放() {
|
||
app.preferences.rulerUnits = Units.PIXELS
|
||
var 主文档 = app.activeDocument;
|
||
var 主文档名称 = 主文档.name;
|
||
|
||
// 遍历当前打开的文档
|
||
for (var i = 0; i < app.documents.length; i++) {
|
||
var document = app.documents[i];
|
||
var documentName = document.name;
|
||
|
||
// 判断文档名称是否与主文档名称不相同
|
||
if (documentName !== 主文档名称) {
|
||
app.activeDocument = document;
|
||
遍历图层();
|
||
}
|
||
}
|
||
|
||
function 遍历图层() {
|
||
var layerNames = []; // 用于存储图层名称的数组
|
||
var currentDocument = app.activeDocument;
|
||
|
||
for (var j = 0; j < currentDocument.layers.length; j++) {
|
||
var layer = currentDocument.layers[j];
|
||
var layerName = layer.name;
|
||
layerNames.push(layerName);
|
||
}
|
||
|
||
// 逐个处理图层
|
||
for (var k = 0; k < layerNames.length; k++) {
|
||
var 当前图层名称 = layerNames[k];
|
||
// $.writeln("图层名称:" + 当前图层名称);
|
||
// alert(当前图层名称);
|
||
|
||
var parts = 当前图层名称.split("-");
|
||
if (parts.length > 0) {
|
||
var 裁片名称 = parts[0];
|
||
app.activeDocument = 主文档;
|
||
$.writeln(裁片名称);
|
||
初始化模板裁片名称 = 当前图层名称.split("-");
|
||
初始化码数裁片名称 = 当前图层名称.split("_");
|
||
大货组名称 =初始化模板裁片名称[0]+("-大货裁片")
|
||
实际裁片名称 = 初始化模板裁片名称[0]+"-"+初始化码数裁片名称[2]
|
||
$.writeln(大货组名称);
|
||
$.writeln(实际裁片名称);
|
||
var 空白裁片模板 = app.activeDocument.layerSets.getByName(大货组名称).layers.getByName(实际裁片名称 );
|
||
app.activeDocument.activeLayer = 空白裁片模板;
|
||
载入选区()
|
||
|
||
var 边距 = 获取当前选区四边距();
|
||
var 当前选区高度=边距.bottom-边距.top
|
||
var 当前选区宽度=边距.right-边距.left
|
||
var 高度转毫米 = pixelsToMillimeters(当前选区高度);
|
||
var 宽度转毫米 = pixelsToMillimeters(当前选区宽度);
|
||
|
||
|
||
选择反向()
|
||
|
||
var 裁片缩放定位点 = app.activeDocument.layers.getByName("缩放定位点");
|
||
app.activeDocument.activeLayer = 裁片缩放定位点;
|
||
|
||
|
||
清除()
|
||
|
||
|
||
|
||
var 搜索词 = 裁片名称;
|
||
var 匹配图层数组 = 匹配图层名(搜索词);
|
||
|
||
// 显示匹配的图层列表
|
||
if (匹配图层数组.length > 0) {
|
||
var 图层列表文本 = "匹配的图层列表:";
|
||
for (var i = 0; i < 匹配图层数组.length; i++) {
|
||
if (i !== 0) {
|
||
图层列表文本 += " ";
|
||
}
|
||
图层列表文本 += 匹配图层数组[i].name;
|
||
}
|
||
var 数据解析分割=图层列表文本.split("_");
|
||
//var 实际套花名称=名称部分[0]
|
||
var 基码图层宽度 = parseFloat(数据解析分割[1]);
|
||
var 基码图层高度 = parseFloat(数据解析分割[2]);
|
||
var 缩放比例=高度转毫米/基码图层高度*100
|
||
|
||
// alert(基码图层宽度);
|
||
} else {
|
||
alert("没有找到匹配的图层。");
|
||
}
|
||
|
||
|
||
|
||
|
||
/*
|
||
$.writeln("上边距:" + 边距.top);
|
||
$.writeln("左边距:" + 边距.left);
|
||
$.writeln("下边距:" + 边距.bottom);
|
||
$.writeln("右边距:" + 边距.right);
|
||
*/8
|
||
// 示例用法:
|
||
var 毫米 = 300;
|
||
var 每英寸像素数 = app.activeDocument.resolution; // 获取当前文档的分辨率(每英寸像素数)
|
||
var 扩展像素 = 毫米转像素(毫米, 每英寸像素数);
|
||
|
||
var 裁切上边距= 边距.top-扩展像素
|
||
var 裁切左边距= 边距.left-扩展像素
|
||
var 裁切下边距= 边距.bottom+扩展像素
|
||
var 裁切右边距= 边距.right+扩展像素
|
||
$.writeln(裁切上边距);
|
||
$.writeln(裁切左边距);
|
||
$.writeln(裁切下边距);
|
||
$.writeln(裁切右边距);
|
||
裁切图层(裁切上边距,裁切左边距,裁切下边距,裁切右边距)
|
||
|
||
var 裁片缩放定位点 = app.activeDocument.layers.getByName("缩放定位点");
|
||
app.activeDocument.activeLayer = 裁片缩放定位点;
|
||
载入选区()
|
||
var 缩放定位点的中心坐标=获取当前缩放定位点选区四边距()
|
||
var 缩放定位点的Y轴坐标=缩放定位点的中心坐标.top2
|
||
var 缩放定位点的X轴坐标=缩放定位点的中心坐标.left2
|
||
$.writeln("Y轴中心坐标"+缩放定位点的Y轴坐标);
|
||
$.writeln("X轴中心坐标"+缩放定位点的X轴坐标);
|
||
|
||
var 裁片 = app.activeDocument.layers.getByName(裁片名称);
|
||
app.activeDocument.activeLayer = 裁片
|
||
//var 空白裁片模板 = app.activeDocument.layerSets.getByName(大货组名称).layers.getByName(实际裁片名称 );
|
||
//app.activeDocument.activeLayer = 空白裁片模板;
|
||
取消选择()
|
||
图层按照缩放定位点进行缩放(缩放定位点的X轴坐标,缩放定位点的Y轴坐标,缩放比例)
|
||
|
||
// var 裁片 = app.activeDocument.layers.getByName(裁片名称);
|
||
// app.activeDocument.activeLayer = 裁片;
|
||
|
||
var 空白裁片模板 = app.activeDocument.layerSets.getByName(大货组名称).layers.getByName(实际裁片名称 );
|
||
app.activeDocument.activeLayer = 空白裁片模板;
|
||
载入选区()
|
||
var 裁片 = app.activeDocument.layers.getByName(裁片名称);
|
||
app.activeDocument.activeLayer = 裁片
|
||
添加图层蒙版()
|
||
应用图层蒙版()
|
||
裁片.copy();
|
||
历史记录回退()
|
||
app.activeDocument = currentDocument;
|
||
图层选择(当前图层名称);
|
||
载入选区();
|
||
粘贴图层();
|
||
|
||
取消选择();
|
||
// app.refresh();
|
||
|
||
|
||
var 裁片名称 = 当前图层名称.split("_");
|
||
if (裁片名称.length > 1) {
|
||
var 角度信息 = 裁片名称[1];
|
||
|
||
if (角度信息 === "180" || 角度信息 === "-180") {
|
||
自由变换()
|
||
} else if (角度信息 === "-90") {
|
||
逆时针90旋转()
|
||
|
||
} else if (角度信息 === "90") {
|
||
|
||
顺时针90旋转()
|
||
} else {
|
||
// 如果以上条件都不满足,则执行默认的代码
|
||
}
|
||
|
||
|
||
//历史记录回退缩放函数()
|
||
}
|
||
app.activeDocument = 主文档;
|
||
历史记录回退缩放函数()
|
||
}
|
||
|
||
|
||
}
|
||
app.activeDocument = currentDocument;
|
||
烧花线添加()//alert("当前码拍好")///////////////////////////////////这里可以填写添加烧花线函数
|
||
|
||
}
|
||
//alert("排版完成,请检查文件!!!")
|
||
app.activeDocument = 主文档;
|
||
}
|
||
|
||
|
||
// 将像素转换为毫米
|
||
function pixelsToMillimeters(pixels) {
|
||
// 获取当前文档
|
||
var doc = app.activeDocument;
|
||
|
||
// 获取图像的分辨率(像素/英寸)
|
||
var resolution = doc.resolution;
|
||
|
||
// 计算像素转换为毫米
|
||
var inches = pixels / resolution;
|
||
var millimeters = inches * 25.4;
|
||
|
||
return millimeters.toFixed(2); // 保留两位小数
|
||
}
|
||
|
||
|
||
|
||
|
||
// 搜索并处理图层名的函数
|
||
function 匹配图层名(搜索词) {
|
||
// 获取指定图层组中的所有图层
|
||
function 获取组中所有图层(组) {
|
||
var 图层数组 = [];
|
||
var 图层组中图层 = 组.layers;
|
||
|
||
for (var i = 0; i < 图层组中图层.length; i++) {
|
||
var 图层 = 图层组中图层[i];
|
||
图层数组.push(图层);
|
||
if (图层.typename === "LayerSet") {
|
||
var 子图层 = 获取组中所有图层(图层);
|
||
图层数组 = 图层数组.concat(子图层);
|
||
}
|
||
}
|
||
|
||
return 图层数组;
|
||
}
|
||
|
||
// 获取指定名称的图层组
|
||
function 根据名称获取图层组(文档, 组名称) {
|
||
var 组 = null;
|
||
var 所有图层 = 文档.layers;
|
||
|
||
for (var i = 0; i < 所有图层.length; i++) {
|
||
var 图层 = 所有图层[i];
|
||
if (图层.typename === "LayerSet" && 图层.name === 组名称) {
|
||
组 = 图层;
|
||
break;
|
||
}
|
||
}
|
||
|
||
return 组;
|
||
}
|
||
|
||
var 文档 = app.activeDocument;
|
||
var 组名称 = "图层基础信息"; // 指定要匹配的图层组名称
|
||
var 组 = 根据名称获取图层组(文档, 组名称);
|
||
|
||
if (组) {
|
||
var 图层数组 = 获取组中所有图层(组);
|
||
var 模糊匹配图层数组 = [];
|
||
|
||
// 首先进行模糊匹配
|
||
for (var i = 0; i < 图层数组.length; i++) {
|
||
var 图层 = 图层数组[i];
|
||
if (图层.name.indexOf(搜索词) !== -1) {
|
||
模糊匹配图层数组.push(图层);
|
||
}
|
||
}
|
||
|
||
// 在模糊匹配结果中进行图层基础信息数组分割过滤
|
||
var 精确匹配图层数组 = [];
|
||
for (var j = 0; j < 模糊匹配图层数组.length; j++) {
|
||
var 模糊匹配图层 = 模糊匹配图层数组[j];
|
||
// 进行图层基础信息数组分割过滤
|
||
var 图层基础信息数组 = 模糊匹配图层.name.split("_"); // 假设分割符是 "_"
|
||
if (图层基础信息数组[0] === 搜索词) {
|
||
精确匹配图层数组.push(模糊匹配图层);
|
||
}
|
||
}
|
||
|
||
// 返回匹配的图层数组
|
||
return 精确匹配图层数组;
|
||
} else {
|
||
alert('未找到名为"' + 组名称 + '"的图层组。');
|
||
return [];
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
function 毫米转像素(毫米, 每英寸像素数) {
|
||
var 每英寸毫米数 = 25.4;
|
||
var 英寸 = 毫米 / 每英寸毫米数;
|
||
return Math.round(英寸 * 每英寸像素数);
|
||
}
|
||
|
||
function 图层按照缩放定位点进行缩放(缩放定位点的X轴坐标,缩放定位点的Y轴坐标,缩放比例) //自由变换
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("freeTransformCenterState"), stringIDToTypeID("quadCenterState"), stringIDToTypeID("QCSIndependent"));
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 缩放定位点的X轴坐标);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("pixelsUnit"), 缩放定位点的Y轴坐标);
|
||
d.putObject(stringIDToTypeID("position"), stringIDToTypeID("point"), d1);
|
||
var d2 = new ActionDescriptor();
|
||
d2.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d2.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d2.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("pixelsUnit"), 0);
|
||
d.putObject(stringIDToTypeID("offset"), stringIDToTypeID("offset"), d2);
|
||
d.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("percentUnit"), 缩放比例);
|
||
d.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("percentUnit"), 缩放比例);
|
||
d.putBoolean(stringIDToTypeID("linked"), true);
|
||
d.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("transform"), d, DialogModes.NO);
|
||
}
|
||
|
||
|
||
function 裁切图层(裁切上边距,裁切左边距,裁切下边距,裁切右边距) //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("top"), stringIDToTypeID("pixelsUnit"), 裁切上边距);
|
||
d1.putUnitDouble(stringIDToTypeID("left"), stringIDToTypeID("pixelsUnit"), 裁切左边距);
|
||
d1.putUnitDouble(stringIDToTypeID("bottom"), stringIDToTypeID("pixelsUnit"),裁切下边距);
|
||
d1.putUnitDouble(stringIDToTypeID("right"), stringIDToTypeID("pixelsUnit"), 裁切右边距);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("rectangle"), d1);
|
||
d.putUnitDouble(stringIDToTypeID("angle"), stringIDToTypeID("angleUnit"), 0);
|
||
d.putBoolean(stringIDToTypeID("delete"), true);
|
||
d.putEnumerated(stringIDToTypeID("cropAspectRatioModeKey"), stringIDToTypeID("cropAspectRatioModeClass"), stringIDToTypeID("pureAspectRatio"));
|
||
d.putBoolean(stringIDToTypeID("constrainProportions"), false);
|
||
executeAction(stringIDToTypeID("crop"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
function 获取当前缩放定位点选区四边距() {
|
||
var currentDocument = app.activeDocument;
|
||
var selectionBounds = currentDocument.selection.bounds;
|
||
|
||
var top2 = selectionBounds[1].value;
|
||
var left2 = selectionBounds[0].value;
|
||
var bottom2 = selectionBounds[3].value;
|
||
var right2 = selectionBounds[2].value;
|
||
|
||
return {
|
||
top2: top2,
|
||
left2: left2,
|
||
bottom2: bottom2,
|
||
right2: right2
|
||
};
|
||
}
|
||
|
||
function 获取当前选区四边距() {
|
||
var currentDocument = app.activeDocument;
|
||
var selectionBounds = currentDocument.selection.bounds;
|
||
|
||
var top = selectionBounds[1].value;
|
||
var left = selectionBounds[0].value;
|
||
var bottom = selectionBounds[3].value;
|
||
var right = selectionBounds[2].value;
|
||
|
||
return {
|
||
top: top,
|
||
left: left,
|
||
bottom: bottom,
|
||
right: right
|
||
};
|
||
}
|
||
|
||
function 历史记录回退缩放函数() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putOffset(stringIDToTypeID("historyState"), -7 );
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 粘贴图层() //粘贴图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
executeAction(stringIDToTypeID("paste"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
function 复制图层() //复制图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
executeAction(stringIDToTypeID("copyEvent"), 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();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("to"), stringIDToTypeID("ordinal"), stringIDToTypeID("none"));
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 图层选择(当前图层名称) //
|
||
{
|
||
|
||
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(6);
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 自由变换() //自由变换
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("freeTransformCenterState"), stringIDToTypeID("quadCenterState"), stringIDToTypeID("QCSAverage"));
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("distanceUnit"), 0);
|
||
d.putObject(stringIDToTypeID("offset"), stringIDToTypeID("offset"), d1);
|
||
d.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("percentUnit"), -100);
|
||
d.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("percentUnit"), -100);
|
||
d.putBoolean(stringIDToTypeID("linked"), true);
|
||
d.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("transform"), 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(8);
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), 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();
|
||
executeAction(stringIDToTypeID("inverse"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 清除() //清除
|
||
{
|
||
|
||
app.activeDocument.selection.clear();
|
||
}
|
||
|
||
function 应用图层蒙版() //应用图层蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("apply"), true);
|
||
executeAction(stringIDToTypeID("delete"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 拼合所有蒙版() //拼合所有蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("document"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("e805a6ee-6d75-4b62-b6fe-f5873b5fdf20"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 选择蒙版() //选择蒙版
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("channel"), stringIDToTypeID("channel"), stringIDToTypeID("mask"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function 历史记录回退() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putOffset(stringIDToTypeID("historyState"), -5);
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function 烧花线添加() {
|
||
|
||
app.activeDocument.suspendHistory("烧花线添加", "烧花线()");
|
||
|
||
|
||
function 烧花线() {
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// 遍历当前文档图层
|
||
|
||
var doc = app.activeDocument;
|
||
var layers = doc.layers;
|
||
var filteredLayers = [];
|
||
|
||
// 遍历图层,筛选以P开头的图层
|
||
for (var i = 0; i < layers.length; i++) {
|
||
var layer = layers[i];
|
||
if (layer.name.charAt(0) === 'P') {
|
||
filteredLayers.push(layer);
|
||
}
|
||
}
|
||
|
||
空置图层()
|
||
// 输出图层名称
|
||
for (var j = 0; j < filteredLayers.length; j++) {
|
||
var filteredLayer = filteredLayers[j];
|
||
|
||
var 裁片底图名称=filteredLayer.name;
|
||
|
||
多选图层(裁片底图名称);
|
||
|
||
// alert(filteredLayer.name);
|
||
|
||
}
|
||
合并图层();
|
||
置为顶层();
|
||
画布大小();
|
||
var layer = app.activeDocument.activeLayer;
|
||
layer.name = "底图";
|
||
恢复默认颜色()
|
||
矩形选框像素点()
|
||
//色彩范围()
|
||
填充();
|
||
魔棒烧花线()
|
||
新建图层()
|
||
var layer2 = app.activeDocument.activeLayer;
|
||
layer2.name = "剪口";
|
||
扩展2();
|
||
恢复止口线默认颜色()
|
||
填充();
|
||
矩形选框准备删除()
|
||
清除();
|
||
魔棒();
|
||
扩展();
|
||
选择反向();
|
||
清除();
|
||
var 底图 = app.activeDocument.layers.getByName( "底图");
|
||
app.activeDocument.activeLayer=底图;
|
||
矩形选框准备删除()
|
||
清除();
|
||
置为底层()
|
||
图层样式()
|
||
取消选择()
|
||
|
||
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("addToSelection"));
|
||
d.putBoolean(stringIDToTypeID("makeVisible"), false);
|
||
var list = new ActionList();
|
||
list.putInteger(4);
|
||
|
||
d.putList(stringIDToTypeID("layerID"), list);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 空置图层() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("selectNoLayers"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 恢复止口线默认颜色() //取消选择
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("color"), stringIDToTypeID("foregroundColor"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putDouble(stringIDToTypeID("cyan"), 20);
|
||
d1.putDouble(stringIDToTypeID("magenta"), 0);
|
||
d1.putDouble(stringIDToTypeID("yellowColor"), 0);
|
||
d1.putDouble(stringIDToTypeID("black"), 0);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("CMYKColorClass"), d1);
|
||
d.putString(stringIDToTypeID("source"), "photoshopPicker");
|
||
executeAction(stringIDToTypeID("set"), 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();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("distanceUnit"), 0);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("point"), d1);
|
||
d.putInteger(stringIDToTypeID("tolerance"), 6);
|
||
d.putBoolean(stringIDToTypeID("contiguous"), false);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
function 矩形选框像素点() //矩形选框
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("top"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("left"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("bottom"), stringIDToTypeID("distanceUnit"), 0.48);
|
||
d1.putUnitDouble(stringIDToTypeID("right"), stringIDToTypeID("distanceUnit"), 0.48);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("rectangle"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 置为底层() //置为底层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var r1 = new ActionReference();
|
||
r1.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("back"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("move"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 置为顶层() //置为顶层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var r1 = new ActionReference();
|
||
r1.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("front"));
|
||
d.putReference(stringIDToTypeID("to"), r1);
|
||
executeAction(stringIDToTypeID("move"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
function 色彩范围() //色彩范围
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
d.putInteger(stringIDToTypeID("fuzziness"), 40);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putDouble(stringIDToTypeID("luminance"), 0);
|
||
d1.putDouble(stringIDToTypeID("a"), 0);
|
||
d1.putDouble(stringIDToTypeID("b"), 0);
|
||
d.putObject(stringIDToTypeID("minimum"), stringIDToTypeID("labColor"), d1);
|
||
var d2 = new ActionDescriptor();
|
||
d2.putDouble(stringIDToTypeID("luminance"), 0);
|
||
d2.putDouble(stringIDToTypeID("a"), 0);
|
||
d2.putDouble(stringIDToTypeID("b"), 0);
|
||
d.putObject(stringIDToTypeID("maximum"), stringIDToTypeID("labColor"), d2);
|
||
d.putInteger(stringIDToTypeID("colorModel"), 0);
|
||
executeAction(stringIDToTypeID("colorRange"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 新建图层() //新建图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putClass(stringIDToTypeID("layer"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putInteger(stringIDToTypeID("layerID"), 33);
|
||
executeAction(stringIDToTypeID("make"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 扩展2() //扩展
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
d.putUnitDouble(stringIDToTypeID("by"), stringIDToTypeID("pixelsUnit"), 2);
|
||
d.putBoolean(stringIDToTypeID("selectionModifyEffectAtCanvasBounds"), false);
|
||
executeAction(stringIDToTypeID("expand"), 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();
|
||
d.putBoolean(stringIDToTypeID("relative"), true);
|
||
d.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("distanceUnit"), 40);
|
||
d.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("distanceUnit"), 40);
|
||
d.putEnumerated(stringIDToTypeID("horizontal"), stringIDToTypeID("horizontalLocation"), stringIDToTypeID("center"));
|
||
d.putEnumerated(stringIDToTypeID("vertical"), stringIDToTypeID("verticalLocation"), stringIDToTypeID("center"));
|
||
executeAction(stringIDToTypeID("canvasSize"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 魔棒() //魔棒
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("horizontal"), stringIDToTypeID("pixelsUnit"), 3);
|
||
d1.putUnitDouble(stringIDToTypeID("vertical"), stringIDToTypeID("pixelsUnit"), 3);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("point"), d1);
|
||
d.putInteger(stringIDToTypeID("tolerance"), 6);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
function 矩形选框准备删除() //矩形选框
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("top"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("left"), stringIDToTypeID("distanceUnit"), 0);
|
||
d1.putUnitDouble(stringIDToTypeID("bottom"), stringIDToTypeID("distanceUnit"), 0.96);
|
||
d1.putUnitDouble(stringIDToTypeID("right"), stringIDToTypeID("distanceUnit"), 0.96);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("rectangle"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 扩展() //扩展
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
d.putUnitDouble(stringIDToTypeID("by"), stringIDToTypeID("pixelsUnit"), 25);
|
||
d.putBoolean(stringIDToTypeID("selectionModifyEffectAtCanvasBounds"), false);
|
||
executeAction(stringIDToTypeID("expand"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 选择反向() //选择反向
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
executeAction(stringIDToTypeID("inverse"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 清除() //清除
|
||
{
|
||
app.activeDocument.selection.clear();
|
||
|
||
|
||
}
|
||
|
||
|
||
function 图层样式() //图层样式
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("layerEffects"));
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("scale"), stringIDToTypeID("percentUnit"), 12);
|
||
var d2 = new ActionDescriptor();
|
||
d2.putBoolean(stringIDToTypeID("enabled"), true);
|
||
d2.putBoolean(stringIDToTypeID("present"), true);
|
||
d2.putBoolean(stringIDToTypeID("showInDialog"), true);
|
||
d2.putEnumerated(stringIDToTypeID("style"), stringIDToTypeID("frameStyle"), stringIDToTypeID("outsetFrame"));
|
||
d2.putEnumerated(stringIDToTypeID("paintType"), stringIDToTypeID("frameFill"), stringIDToTypeID("solidColor"));
|
||
d2.putEnumerated(stringIDToTypeID("mode"), stringIDToTypeID("blendMode"), stringIDToTypeID("normal"));
|
||
d2.putUnitDouble(stringIDToTypeID("opacity"), stringIDToTypeID("percentUnit"), 100);
|
||
d2.putUnitDouble(stringIDToTypeID("size"), stringIDToTypeID("pixelsUnit"), 16);
|
||
var d3 = new ActionDescriptor();
|
||
d3.putDouble(stringIDToTypeID("red"), 255);
|
||
d3.putDouble(stringIDToTypeID("green"), 0);
|
||
d3.putDouble(stringIDToTypeID("blue"), 0);
|
||
d2.putObject(stringIDToTypeID("color"), stringIDToTypeID("RGBColor"), d3);
|
||
d2.putBoolean(stringIDToTypeID("overprint"), false);
|
||
d1.putObject(stringIDToTypeID("frameFX"), stringIDToTypeID("frameFX"), d2);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("layerEffects"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
function 取消选择() //取消选择
|
||
{
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("channel"), stringIDToTypeID("selection"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
d.putEnumerated(stringIDToTypeID("to"), stringIDToTypeID("ordinal"), stringIDToTypeID("none"));
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/////////////////////////////////////// 裁片射出缩放主函数体
|
||
|
||
|
||
|
||
|
||
/////////////////////////////////////// 加缩放定位点主函数体
|
||
|
||
|
||
|
||
|
||
function 添加缩放定位点(){
|
||
addMarkerLayer()
|
||
select_41598510742188()
|
||
select_197021484375()
|
||
applyLocking_97616577148438()
|
||
set_90863037109375()
|
||
|
||
|
||
}
|
||
|
||
|
||
function addMarkerLayer() {
|
||
var doc = app.activeDocument;
|
||
var markerLayerName = "缩放定位点";
|
||
var markerLayer = null;
|
||
|
||
// 检查是否存在名为"定位点"的图层
|
||
for (var i = 0; i < doc.artLayers.length; i++) {
|
||
if (doc.artLayers[i].name === markerLayerName) {
|
||
markerLayer = doc.artLayers[i];
|
||
break;
|
||
}
|
||
}
|
||
|
||
// 如果不存在,添加"定位点"图层
|
||
if (markerLayer === null) {
|
||
markerLayer = doc.artLayers.add();
|
||
markerLayer.name = markerLayerName;
|
||
alert("已添加定位点标记图层,请将画笔大小调整为一个像素点进行标记");
|
||
} else {
|
||
alert("定位点标记图层已存在,请将画笔大小调整为一个像素点进行标记");
|
||
}
|
||
|
||
// 显示特征码信息
|
||
// alert("定位点标记特征码是一个小方块");
|
||
}
|
||
|
||
|
||
function select_41598510742188() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putClass(stringIDToTypeID("pencilTool"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
|
||
}
|
||
|
||
|
||
|
||
function select_197021484375() //移动
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putName(stringIDToTypeID("brush"), "硬边圆");
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
executeAction(stringIDToTypeID("select"), d, DialogModes.NO);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function applyLocking_97616577148438() //锁定图层
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putBoolean(stringIDToTypeID("protectPosition"), true);
|
||
d.putObject(stringIDToTypeID("layerLocking"), stringIDToTypeID("layerLocking"), d1);
|
||
executeAction(stringIDToTypeID("applyLocking"), d, DialogModes.NO);
|
||
|
||
|
||
}
|
||
|
||
|
||
function set_90863037109375() //
|
||
{
|
||
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("color"), stringIDToTypeID("foregroundColor"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putUnitDouble(stringIDToTypeID("hue"), stringIDToTypeID("angleUnit"), 0);
|
||
d1.putDouble(stringIDToTypeID("saturation"), 100);
|
||
d1.putDouble(stringIDToTypeID("brightness"), 100);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("HSBColorClass"), d1);
|
||
d.putString(stringIDToTypeID("source"), "photoshopPicker");
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
}
|
||
|
||
function 名称赋予(new_value) //
|
||
{
|
||
|
||
var doc = app.activeDocument;
|
||
var selectedLayer = doc.activeLayer;
|
||
selectedLayer.name = "P"+new_value
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
"""
|