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

发表新主题 回复
 
查看全部 主题工具
旧 2024-11-16, 17:58     #1
cpclgw cpclgw 当前在线
中级会员
等级: 七袋长老
帅哥 级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时
 
Uid: 333099
注册日期: 2013-03-11, 13:56
帖子: 2466
感谢: 757
427 个帖子获得 705 次感谢
现金: 42金币
资产: 4042金币
声望: 10 cpclgw 向着好的方向发展
cpclgw cpclgw 当前在线
中级会员
等级: 七袋长老
帅哥 级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时级别:87 | 在线时长:8003小时 | 升级还需:93小时
 
Uid: 333099
注册日期: 2013-03-11, 13:56
帖子: 2466
感谢: 757
427 个帖子获得 705 次感谢
现金: 42金币
资产: 4042金币
声望: 10 cpclgw 向着好的方向发展
默认   



我在AI中执行你原来的代码,查看线条是单位就是mm.

请用这个AI修改的代码测试看看:

if (app.selection.length === 0) {
alert("未选择对象!");
} else {
app.executeMenuCommand("copy");
var newDoc = app.documents.add();
newDoc.activate();
app.executeMenuCommand("paste");
var artboard = newDoc.artboards[0];
artboard.artboardRect = newDoc.visibleBounds;
}

var SELECTION = activeDocument.selection;
if (SELECTION.length > 0) {
var VIEW = app.activeDocument.activeView;
var zoom = VIEW.zoom;

// 将 zoom 暂时重置为 1,以准确计算可见范围的尺寸
VIEW.zoom = 1;
var bounds = VIEW.bounds;
var ViewW = (bounds[2] - bounds[0]) * 0.3527777778; // 转换为毫米
var ViewH = (bounds[1] - bounds[3]) * 0.3527777778; // 转换为毫米
VIEW.zoom = zoom;

// 初始化边界值
var LeftX, TopY, RightX, BottomY;

for (var num = 0; num < SELECTION.length; num++) {
var SELECTED = SELECTION[num].geometricBounds;
LeftX = (LeftX == undefined) ? SELECTED[0] : Math.min(LeftX, SELECTED[0]);
TopY = (TopY == undefined) ? SELECTED[1] : Math.max(TopY, SELECTED[1]);
RightX = (RightX == undefined) ? SELECTED[2] : Math.max(RightX, SELECTED[2]);
BottomY = (BottomY == undefined) ? SELECTED[3] : Math.min(BottomY, SELECTED[3]);
}

// 计算选区的尺寸和中心点(转换为毫米)
var WidthX = (RightX - LeftX) * 0.3527777778;
var HeightY = (TopY - BottomY) * 0.3527777778;
var CenterX = ((RightX + LeftX) / 2) * 0.3527777778;
var CenterY = ((TopY + BottomY) / 2) * 0.3527777778;

// 根据视窗比例计算适当的缩放值
var Zoom = (ViewW / ViewH < WidthX / HeightY) ? ViewW / WidthX : ViewH / HeightY;
VIEW.zoom = Zoom * 0.9; // 设置缩放比例,留一些边距
VIEW.centerPoint = [CenterX / 0.3527777778, CenterY / 0.3527777778]; // 将毫米单位转换回点单位
}

此帖于 2024-11-16 18:13 被 cpclgw 编辑.
cpclgw 当前在线   回复时引用此帖回复时引用此帖
发表新主题 回复


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

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


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


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

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