论坛帮助 |
社区圈子 |
日历事件 |
2024-01-29, 21:47 | 只看该作者 #41 | |||
|
||||
正式会员
等级: 七袋长老
|
1 新增单角线 2 新增双角线 3 新增日式角线 4 新增十字线 5 新增文件名 6 新增日期 7 新增咬口 8 新增字体选择 …… 【极速拼版V1.7】新增颜色拉规等功能,近期推出,敬请期待! |
|||
回复时引用此帖 |
右列会员因为此帖价值甚高向 tiantian1998 表示感谢: |
Callmetait (2024-02-01)
|
2024-02-02, 13:11 | 只看该作者 #44 | ||
|
|||
正式会员
等级: 一袋长老
|
// 获取当前活动画板的尺寸,并减去17毫米 var activeArtboard = doc.artboards[doc.artboards.getActiveArtboardIndex()]; var artboardBounds = activeArtboard.artboardRect; // [左, 上, 右, 下] var paperWidth = (artboardBounds[2] - artboardBounds[0]) - (17 * 2.83464567); var paperHeight = (artboardBounds[1] - artboardBounds[3]) - (17 * 2.83464567); 下面是完整脚本------------------------------------------------------------------------------- #target illustrator function main() { if (app.documents.length === 0) { alert("没有打开的文档。"); return; } var doc = app.activeDocument; if (doc.selection.length === 0) { alert("没有选中的对象。"); return; } // 获取选中对象的尺寸 var selectedItem = doc.selection[0]; var bounds = selectedItem.geometricBounds; // [左, 上, 右, 下] var objectWidth = bounds[2] - bounds[0]; var objectHeight = bounds[1] - bounds[3]; // 获取用户定义的间距(单位:毫米转换为点) var horizontalSpacing = parseFloat(prompt("请输入水平间距(毫米):", "4")) * 2.83464567; var verticalSpacing = parseFloat(prompt("请输入垂直间距(毫米):", "4")) * 2.83464567; if (isNaN(horizontalSpacing) || isNaN(verticalSpacing)) { alert("请输入有效的数字。"); return; } // 获取当前活动画板的尺寸,并减去17毫米 var activeArtboard = doc.artboards[doc.artboards.getActiveArtboardIndex()]; var artboardBounds = activeArtboard.artboardRect; // [左, 上, 右, 下] var paperWidth = (artboardBounds[2] - artboardBounds[0]) - (17 * 2.83464567); var paperHeight = (artboardBounds[1] - artboardBounds[3]) - (17 * 2.83464567); // 计算每行和每列能放置多少对象 var columns = Math.floor((paperWidth + horizontalSpacing) / (objectWidth + horizontalSpacing)); var rows = Math.floor((paperHeight + verticalSpacing) / (objectHeight + verticalSpacing)); // 创建一个组来包含所有拼版对象 var tilingGroup = doc.groupItems.add(); // 创建并排列对象的副本 for (var y = 0; y < rows; y++) { for (var x = 0; x < columns; x++) { var posX = x * (objectWidth + horizontalSpacing); var posY = y * (objectHeight + verticalSpacing); duplicateObject(selectedItem, posX, posY, tilingGroup); } } // 居中拼版对象群组 centerGroup(tilingGroup, activeArtboard, paperWidth, paperHeight); // 删除原先所选的对象 selectedItem.remove(); } function duplicateObject(item, x, y, group) { var duplicate = item.duplicate(group, ElementPlacement.PLACEATEND); var bounds = duplicate.geometricBounds; // [左, 上, 右, 下] var deltaX = x - bounds[0]; var deltaY = y - bounds[1]; duplicate.translate(deltaX, deltaY); } function centerGroup(group, artboard, paperWidth, paperHeight) { var artboardBounds = artboard.artboardRect; var groupBounds = group.geometricBounds; var groupCenterX = groupBounds[0] + (groupBounds[2] - groupBounds[0]) / 2; var groupCenterY = groupBounds[1] - (groupBounds[1] - groupBounds[3]) / 2; var artboardCenterX = artboardBounds[0] + paperWidth / 2; var artboardCenterY = artboardBounds[1] - paperHeight / 2; group.translate(artboardCenterX - groupCenterX, artboardCenterY - groupCenterY); } main(); |
||
回复时引用此帖 |
2024-02-02, 16:09 | 只看该作者 #45 | |||
|
||||
正式会员
等级: 七袋长老
|
引用:
此帖于 2024-02-02 17:15 被 tiantian1998 编辑. |
|||
回复时引用此帖 |