You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Illustrator脚本在指定画板上绘制对象?

嘿Fransua,我懂你碰到的麻烦了——在Illustrator脚本里,单单设置activeArtboardIndex只是把目标画板设为当前显示的“活动”状态,但新创建的对象并不会自动归到这个画板上。这是因为Illustrator的对象坐标是基于文档全局坐标系的,和活动画板的视觉选中状态是分开的~

具体解决方法

1. 创建对象后移动到目标画板范围内

先获取目标画板的坐标边界,再把新对象的位置调整到这个边界里,这样对象就会显示在目标画板上了:

var doc = app.activeDocument;
// 选中第2个画板(索引从0开始,所以1对应第二个画板)
var targetArtboard = doc.artboards[1];
doc.artboards.setActiveArtboardIndex(1);

// 示例:创建一个100x100的矩形
var newRect = doc.pathItems.rectangle(0, 0, 100, 100);

// 获取目标画板的坐标:格式为 [左边界, 上边界, 右边界, 下边界]
var artboardBounds = targetArtboard.artboardRect;
// 将矩形移动到目标画板的左上角位置(可根据需求调整坐标)
newRect.position = [artboardBounds[0], artboardBounds[1]];

2. 创建对象时直接指定目标画板位置

如果你清楚目标画板的位置,也可以在创建对象时直接把坐标设到画板范围内,省掉后续移动的步骤:

var doc = app.activeDocument;
var targetArtboard = doc.artboards[1];
doc.artboards.setActiveArtboardIndex(1);

var artboardBounds = targetArtboard.artboardRect;
// 注意:Illustrator的rectangle方法参数是(上边界, 左边界, 宽度, 高度),和position的[左, 上]顺序相反
var newRect = doc.pathItems.rectangle(artboardBounds[1], artboardBounds[0], 100, 100);

额外:指定对象到特定图层

如果需要把对象放到某个指定图层里,可以先获取目标图层,再在创建对象时关联它:

var doc = app.activeDocument;
var targetArtboard = doc.artboards[1];
// 替换成你的目标图层名称
var targetLayer = doc.layers.getByName("MyTargetLayer");

doc.artboards.setActiveArtboardIndex(1);
var artboardBounds = targetArtboard.artboardRect;

// 创建矩形时指定父图层为目标图层
var newRect = targetLayer.pathItems.rectangle(artboardBounds[1], artboardBounds[0], 100, 100);

内容的提问来源于stack exchange,提问作者fransua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:15:10