191 lines
6.1 KiB
Python
191 lines
6.1 KiB
Python
dxf12_jscode = """
|
||
|
||
|
||
|
||
|
||
|
||
批量套数写入()
|
||
|
||
function 批量套数写入() {
|
||
app.preferences.rulerUnits = Units.CM;
|
||
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;
|
||
|
||
var 匹配图层数组 = 遍历图层查找P1();
|
||
|
||
// 遍历匹配图层数组
|
||
for (var j = 0; j < 匹配图层数组.length; j++) {
|
||
var 当前匹配图层 = 匹配图层数组[j];
|
||
}
|
||
// 选中当前匹配图层
|
||
|
||
|
||
// 获取当前选区
|
||
var currentSelection = app.activeDocument.selection;
|
||
|
||
// 确保当前选区不为空且为矩形选区
|
||
if (currentSelection != null && currentSelection.hasOwnProperty('bounds')) {
|
||
// 进行缩放操作
|
||
|
||
app.activeDocument.activeLayer = 当前匹配图层;
|
||
|
||
// 载入选区
|
||
载入选区();
|
||
// 获取当前选区的坐标
|
||
var bounds = currentSelection.bounds;
|
||
|
||
// 获取当前选区的宽度和高度(以 cm 为单位)
|
||
var resolution = app.activeDocument.resolution;
|
||
var widthInCM = (bounds[2].as("cm") - bounds[0].as("cm"));
|
||
var heightInCM = (bounds[3].as("cm") - bounds[1].as("cm"));
|
||
var 当前P1图层宽高信息 = "宽度:" + widthInCM.toFixed(2) + "cm,高度:" + heightInCM.toFixed(2) + "cm";
|
||
|
||
// 获取当前裁片套数
|
||
var 搜索关键词 = "P1";
|
||
var 匹配的图层数量 = 获取匹配图层数量(搜索关键词);
|
||
var 当前裁片套数 = "一段" + 匹配的图层数量 + "件";
|
||
|
||
// 创建新图层并设置名称
|
||
/// var 新图层 = 主文档.artLayers.add();
|
||
// var 新图层 = "当前文档宽度缩水" + 宽度值 + "高度缩水" + 高度值;
|
||
|
||
// 移动选区到新图层
|
||
// currentSelection.cut();
|
||
// app.activeDocument.paste();
|
||
// alert(当前裁片套数);
|
||
// alert( 当前P1图层宽高信息);
|
||
// 文件简介写入
|
||
文件简介写入(当前裁片套数, 当前P1图层宽高信息 );
|
||
|
||
// 这里删除了文件简介的写入将缩水值修改按钮
|
||
// 调整图像尺寸(宽度值, 高度值);
|
||
////这里取消了保存功能 为了防止运行的时候变卡
|
||
//activeDocument.save();
|
||
} else {
|
||
// alert("没有找到匹配的图层。");
|
||
}
|
||
|
||
}
|
||
}
|
||
app.activeDocument=主文档
|
||
// alert("写入信息成功","来自左威的提醒");
|
||
}
|
||
|
||
function 文件简介写入(当前裁片套数, 当前P1图层宽高信息) {
|
||
var d = new ActionDescriptor();
|
||
var r = new ActionReference();
|
||
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("fileInfo"));
|
||
r.putEnumerated(stringIDToTypeID("document"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
|
||
d.putReference(stringIDToTypeID("null"), r);
|
||
var d1 = new ActionDescriptor();
|
||
d1.putString(stringIDToTypeID("caption"), 当前裁片套数);
|
||
d1.putString(stringIDToTypeID("keywords"), 当前P1图层宽高信息);
|
||
d.putObject(stringIDToTypeID("to"), stringIDToTypeID("fileInfo"), d1);
|
||
executeAction(stringIDToTypeID("set"), d, DialogModes.NO);
|
||
}
|
||
|
||
|
||
|
||
|
||
function 调整图像尺寸(宽度值, 高度值) {
|
||
var 动作描述 = new ActionDescriptor();
|
||
动作描述.putUnitDouble(stringIDToTypeID("width"), stringIDToTypeID("percentUnit"), 100 + 宽度值);
|
||
动作描述.putUnitDouble(stringIDToTypeID("height"), stringIDToTypeID("percentUnit"), 100 + 高度值);
|
||
动作描述.putEnumerated(charIDToTypeID("Intr"), stringIDToTypeID("interpolationType"), stringIDToTypeID("nearestNeighbor"));
|
||
executeAction(stringIDToTypeID("imageSize"), 动作描述, 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 遍历图层查找P1() {
|
||
var 匹配图层数组 = [];
|
||
var 文档 = app.activeDocument;
|
||
|
||
// 遍历所有图层
|
||
function 遍历所有图层(图层) {
|
||
if (图层.typename === "LayerSet") {
|
||
for (var i = 0; i < 图层.layers.length; i++) {
|
||
遍历所有图层(图层.layers[i]);
|
||
}
|
||
} else {
|
||
var 图层名分割数组 = 图层.name.split("-"); // 假设分割符是 "_"
|
||
if (图层名分割数组[0] === "P1") { // 精确匹配
|
||
匹配图层数组.push(图层);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 开始遍历
|
||
for (var j = 0; j < 文档.layers.length; j++) {
|
||
遍历所有图层(文档.layers[j]);
|
||
}
|
||
|
||
return 匹配图层数组;
|
||
}
|
||
|
||
|
||
function 获取匹配图层数量(搜索关键词) {
|
||
var 匹配图层数量 = 0;
|
||
|
||
// 递归遍历图层及其子图层
|
||
function 遍历图层(图层) {
|
||
if (图层.typename === "LayerSet") {
|
||
for (var i = 0; i < 图层.layers.length; i++) {
|
||
遍历图层(图层.layers[i]);
|
||
}
|
||
} else {
|
||
// 进行模糊匹配和精确分割匹配
|
||
if (图层.name.indexOf(搜索关键词) !== -1 && 精确分割匹配图层(图层.name, 搜索关键词)) {
|
||
匹配图层数量++;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 精确分割匹配图层名
|
||
function 精确分割匹配图层(图层名, 搜索词) {
|
||
var 图层名分割数组 = 图层名.split("-"); // 假设分割符是 "_"
|
||
return 图层名分割数组[0] === 搜索词;
|
||
}
|
||
|
||
var 当前文档 = app.activeDocument;
|
||
var 所有图层 = 当前文档.layers;
|
||
|
||
for (var i = 0; i < 所有图层.length; i++) {
|
||
遍历图层(所有图层[i]);
|
||
}
|
||
|
||
return 匹配图层数量;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
""" |