- 精华
- 活跃值
-
- 积分
- 2911
- 违规
-
- 印币
-
- 鲜花值
-
- 在线时间
- 小时
累计签到:207 天 连续签到:5 天
|
AI JavaScripts 中心对齐替换,昨晚写的。
今早又改了一下,减少计算获取中心点的次数,感觉效率有提高
- // 拼版中心对齐
- function replace_align_center() {
- var docRef = activeDocument;
- // 判断选择物件2个以上
- if (docRef.selection.length > 1) {
- // 定义选择物件
- mySelection = docRef.selection;
- // 最上层物件为替换源
- var sourceObj = docRef.selection[0];
- // 定义数组用来保存选择物件的中心坐标 # 计算中心坐标
- // x = (left + right) / 2 // y = (top + bottom) / 2
- var alterObjectArray = new Array();
- for (var i = 0; i < mySelection.length; i++) {
- var bound = NO_CLIP_BOUNDS(mySelection[i]);
- var sel_xy = new Array((bound[0] + bound[2]) / 2, (bound[1] + bound[3]) / 2);
- alterObjectArray.push(sel_xy);
- }
- // 删除用来定位的下层物件
- for (var i = 1; i < mySelection.length; i++) {
- mySelection[i].remove();
- }
- // 获得替换源物件中心坐标
- var bound = NO_CLIP_BOUNDS(sourceObj);
- var src_xy = new Array((bound[0] + bound[2]) / 2, (bound[1] + bound[3]) / 2);
- // PageItem.duplicate 复制对象, 需要一个相对对象定位
- var newGroup = sourceObj.parent.groupItems.add();
- for (var i = 1; i < alterObjectArray.length; i++) {
- var newobj = sourceObj.duplicate(newGroup, ElementPlacement.PLACEATEND);
- var move_xy = new Array(alterObjectArray[i][0] - src_xy[0], alterObjectArray[i][1] - src_xy[1]);
- newobj.translate(move_xy[0], move_xy[1]);
- }
- sourceObj.remove();
- }
- }
复制代码
昨晚旧版,要每次计算中心点
- // PageItem.duplicate 复制对象, 需要一个相对对象定位
- var newGroup = sourceObj.parent.groupItems.add();
- for (var i = 1; i < alterObjectArray.length; i++) {
-
- var bound = NO_CLIP_BOUNDS(sourceObj);
- var src_xy = new Array((bound[0] + bound[2]) / 2, (bound[1] + bound[3]) / 2);
- var move_xy = new Array(alterObjectArray[i][0] - src_xy[0], alterObjectArray[i][1] - src_xy[1]);
- sourceObj.translate(move_xy[0], move_xy[1]); // 移动到中心对齐位置
- sourceObj.duplicate(newGroup, ElementPlacement.PLACEATEND);
- }
复制代码
|
评分
-
查看全部评分
2
赠人玫瑰,手有余香!如单纯感谢,请送花!凡是以文字形式感谢,即被视为水帖,会扣币处理!
鲜花榜单
-
+1
对你表示感谢!
-
+1
对你表示感谢!
|