◆- Adobe插件与脚本区 主要讨论Adobe插件开发与软件脚本撰写

发表新主题 关闭主题
 
只看楼主 主题工具
旧 2018-10-10, 14:06     #1
栾绍帅 栾绍帅 当前离线
正式会员
等级: 三袋长老
级别:22 | 在线时长:578小时 | 升级还需:43小时级别:22 | 在线时长:578小时 | 升级还需:43小时级别:22 | 在线时长:578小时 | 升级还需:43小时级别:22 | 在线时长:578小时 | 升级还需:43小时
 
Uid: 595986
注册日期: 2017-12-30, 08:46
帖子: 170
感谢: 13
11 个帖子获得 11 次感谢
现金: 150金币
资产: 230金币
声望: 10 栾绍帅 向着好的方向发展
栾绍帅 栾绍帅 当前离线
正式会员
等级: 三袋长老
级别:22 | 在线时长:578小时 | 升级还需:43小时级别:22 | 在线时长:578小时 | 升级还需:43小时级别:22 | 在线时长:578小时 | 升级还需:43小时级别:22 | 在线时长:578小时 | 升级还需:43小时
 
Uid: 595986
注册日期: 2017-12-30, 08:46
帖子: 170
感谢: 13
11 个帖子获得 11 次感谢
现金: 150金币
资产: 230金币
声望: 10 栾绍帅 向着好的方向发展
默认 哪位朋友帮忙吧这个改一下,画板离内容上下左右各偏移7mm   



var doc = app.activeDocument;
var theSelect = doc.selection;
var objGBCheck = false; //几何边界与可视边界 切换 //true //false

if (theSelect.length > 0) {
for (i = theSelect.length - 1; i > -1; i--) {
var bound = NO_CLIP_BOUNDS(theSelect[i]);
doc.artboards.add(bound);//转换为画板
}doc.artboards.remove(0);
} else {
alert("唉吆!\n必须先选择物件哦!!", "错误提示");
}

function NO_CLIP_BOUNDS(the_obj) {
var NO_CLIP_OBJECTS_AND_MASKS = new Array();
GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj);
var v_left = new Array();
var g_left = new Array();
var v_top = new Array();
var g_top = new Array();
var v_right = new Array();
var g_right = new Array();
var v_bottom = new Array();
var g_bottom = new Array();
for (var i = 0; i < NO_CLIP_OBJECTS_AND_MASKS.length; i += 1) {
g_left[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[0];
v_left[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[0];
g_top[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[1];
v_top[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[1];
g_right[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[2];
v_right[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[2];
g_bottom[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[3];
v_bottom[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[3];
}
var GV_Bounds = objGBCheck ? "true": "false";
switch (GV_Bounds) {
case "true":
var g_L = MIN_IN_ARRAY(g_left);
var g_T = MAX_IN_ARRAY(g_top);
var g_R = MAX_IN_ARRAY(g_right);
var g_B = MIN_IN_ARRAY(g_bottom);
return [g_L, g_T, g_R, g_B];
break;

case "false":
var v_L = MIN_IN_ARRAY(v_left);
var v_T = MAX_IN_ARRAY(v_top);
var v_R = MAX_IN_ARRAY(v_right);
var v_B = MIN_IN_ARRAY(v_bottom);
return [v_L, v_T, v_R, v_B];
break;
}

function GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj) {
if (IS_CLIP(the_obj)) {
NO_CLIP_OBJECTS_AND_MASKS.push(the_obj.pageItems[0]);
return;
}
if (the_obj.constructor.name == "GroupItem") {
try {
var N_sub_obj = the_obj.pageItems.length;
for (var i = 0; i < N_sub_obj; i += 1) {
GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj.pageItems[i]);
}
} catch(error) {

}
return;
}
NO_CLIP_OBJECTS_AND_MASKS.push(the_obj);
return;
}
}

function IS_CLIP(the_obj) {
try {
if (the_obj.constructor.name == "GroupItem") {
if (the_obj.clipped) {
return true;
}
}
} catch(error) {

}
return false;
}

function MAX_IN_ARRAY(the_array) {
var MAX = the_array[0];
for (var i = 0; i < the_array.length; i += 1) {
if (the_array[i] > MAX) {
MAX = the_array[i]
}
}
return MAX;
}

function MIN_IN_ARRAY(the_array) {
var MIN = the_array[0];
for (var i = 0; i < the_array.length; i += 1) {
if (the_array[i] < MIN) {
MIN = the_array[i]
}
}
return MIN;
}
上传的图像
文件类型: jpg QQ截图20181010140501.jpg (9.5 KB, 5 次查看)
栾绍帅 当前离线  
旧 2018-10-10, 14:34   只看该作者   #2
4800173 的头像
4800173 4800173 当前离线
全球最帅的印前佬
等级: 五袋长老
级别:52 | 在线时长:2946小时 | 升级还需:75小时级别:52 | 在线时长:2946小时 | 升级还需:75小时级别:52 | 在线时长:2946小时 | 升级还需:75小时级别:52 | 在线时长:2946小时 | 升级还需:75小时
 
Uid: 483439
注册日期: 2015-10-27, 18:12
帖子: 731
感谢: 49
112 个帖子获得 177 次感谢
现金: 653金币
资产: 653金币
声望: 10 4800173 向着好的方向发展
4800173 4800173 当前离线
全球最帅的印前佬
等级: 五袋长老
级别:52 | 在线时长:2946小时 | 升级还需:75小时级别:52 | 在线时长:2946小时 | 升级还需:75小时级别:52 | 在线时长:2946小时 | 升级还需:75小时级别:52 | 在线时长:2946小时 | 升级还需:75小时
4800173 的头像
 
Uid: 483439
注册日期: 2015-10-27, 18:12
帖子: 731
感谢: 49
112 个帖子获得 177 次感谢
现金: 653金币
资产: 653金币
声望: 10 4800173 向着好的方向发展
默认

我也挺想要你说的这个效果的脚本的,但是没有找到,我现在是用两个脚本,做的动作达到的这种效果。自己用起来觉得还行。
4800173 当前离线  
旧 2018-10-10, 15:49   只看该作者   #3
yige yige 当前离线
正式会员
等级: 六袋长老
级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时
 
Uid: 168723
注册日期: 2010-06-17, 20:48
帖子: 1265
感谢: 288
48 个帖子获得 60 次感谢
现金: 21金币
资产: 154金币
声望: 10 yige 向着好的方向发展
yige yige 当前离线
正式会员
等级: 六袋长老
级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时级别:53 | 在线时长:3108小时 | 升级还需:24小时
 
Uid: 168723
注册日期: 2010-06-17, 20:48
帖子: 1265
感谢: 288
48 个帖子获得 60 次感谢
现金: 21金币
资产: 154金币
声望: 10 yige 向着好的方向发展
默认

这个脚本的内容可以参考一下....
上传的附件
文件类型: rar 外扩-(画板).rar (565 字节, 44 次查看)
yige 当前离线  
右列会员因为此帖价值甚高向 yige 表示感谢:
sxan8249 (2019-09-20)
旧 2018-10-10, 21:00   只看该作者   #4
dhow 的头像
dhow dhow 当前在线
正式会员
等级: 四袋长老
级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时
 
Uid: 103325
注册日期: 2009-07-05, 15:47
帖子: 204
感谢: 9
84 个帖子获得 219 次感谢
现金: 488金币
资产: 618金币
声望: 10 dhow 向着好的方向发展
dhow dhow 当前在线
正式会员
等级: 四袋长老
级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时级别:43 | 在线时长:2077小时 | 升级还需:35小时
dhow 的头像
 
Uid: 103325
注册日期: 2009-07-05, 15:47
帖子: 204
感谢: 9
84 个帖子获得 219 次感谢
现金: 488金币
资产: 618金币
声望: 10 dhow 向着好的方向发展
默认

引用:
作者: 栾绍帅 查看帖子
var doc = app.activeDocument;
var theSelect = doc.selection;
var objGBCheck = false; //几何边界与可视边界 切换 //true //false

if (theSelect.length > 0) {
for (i = theSelect.length - 1; i > -1; i--) {
var bound = NO_CLIP_BOUNDS(theSelect[i]);
doc.artboards.add(bound);//转换为画板
}doc.ar...
参考以下代码
具体偏移数值是否准确,可能需改变 var objGBCheck = false; 值的真假
代码:
var doc = app.activeDocument;
var theSelect = doc.selection;
var objGBCheck = false; //几何边界与可视边界 切换 //true //false
var Offset = 7*(72/25.4);//偏移距离mm  负值加-符号
if (theSelect.length > 0) {
for (i = theSelect.length - 1; i > -1; i--) {
var bound = NO_CLIP_BOUNDS(theSelect[i]);
doc.artboards.add(bound);//转换为画板
}doc.artboards.remove(0);
} else {
alert("唉吆!\n必须先选择物件哦!!", "错误提示");
}

function NO_CLIP_BOUNDS(the_obj) {
var NO_CLIP_OBJECTS_AND_MASKS = new Array();
GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj);
var v_left = new Array();
var g_left = new Array();
var v_top = new Array();
var g_top = new Array();
var v_right = new Array();
var g_right = new Array();
var v_bottom = new Array();
var g_bottom = new Array();
for (var i = 0; i < NO_CLIP_OBJECTS_AND_MASKS.length; i += 1) {
g_left[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[0]- Offset;
v_left[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[0] - Offset;
g_top[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[1] + Offset;
v_top[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[1] + Offset;

g_right[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[2] + Offset;
v_right[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[2] + Offset;
g_bottom[i] = NO_CLIP_OBJECTS_AND_MASKS[i].geometricBounds[3] - Offset;
v_bottom[i] = NO_CLIP_OBJECTS_AND_MASKS[i].visibleBounds[3] - Offset;
}
var GV_Bounds = objGBCheck ? "true": "false";
switch (GV_Bounds) {
case "true":
var g_L = MIN_IN_ARRAY(g_left);
var g_T = MAX_IN_ARRAY(g_top);
var g_R = MAX_IN_ARRAY(g_right);
var g_B = MIN_IN_ARRAY(g_bottom);
return [g_L, g_T, g_R, g_B];
break;

case "false":
var v_L = MIN_IN_ARRAY(v_left);
var v_T = MAX_IN_ARRAY(v_top);
var v_R = MAX_IN_ARRAY(v_right);
var v_B = MIN_IN_ARRAY(v_bottom);
return [v_L, v_T, v_R, v_B];
break;
}

function GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj) {
if (IS_CLIP(the_obj)) {
NO_CLIP_OBJECTS_AND_MASKS.push(the_obj.pageItems[0]);
return;
}
if (the_obj.constructor.name == "GroupItem") {
try {
var N_sub_obj = the_obj.pageItems.length;
for (var i = 0; i < N_sub_obj; i += 1) {
GET_NO_CLIP_OBJECTS_AND_MASKS(the_obj.pageItems[i]);
}
} catch(error) {

}
return;
}
NO_CLIP_OBJECTS_AND_MASKS.push(the_obj);
return;
}
}

function IS_CLIP(the_obj) {
try {
if (the_obj.constructor.name == "GroupItem") {
if (the_obj.clipped) {
return true;
}
}
} catch(error) {

}
return false;
}

function MAX_IN_ARRAY(the_array) {
var MAX = the_array[0];
for (var i = 0; i < the_array.length; i += 1) {
if (the_array[i] > MAX) {
MAX = the_array[i]
}
}
return MAX;
}

function MIN_IN_ARRAY(the_array) {
var MIN = the_array[0];
for (var i = 0; i < the_array.length; i += 1) {
if (the_array[i] < MIN) {
MIN = the_array[i]
}
}
return MIN;
}

此帖于 2018-10-10 21:23 被 dhow 编辑.
dhow 当前在线  
右列会员因为此帖价值甚高向 dhow 表示感谢:
栾绍帅 (2018-10-11)
发表新主题 关闭主题


发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


律师声明:本站内容,均具有版权,未经书面授权,禁止转载,严禁镜像,违者承担一切后果!
论坛广告报价   广告联系及办理企业会员服务QQ:57880388 站务管理QQ:35529388


所有时间均为 +8, 现在的时间是 2025-01-04 15:14.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
 
Copyright © 2004-2022